发明内容
本发明的目的在于提供一种适用于网络加密认证环境的配电主站测试***及方法,使传统的主站注入测试法在双向身份认证和报文加密传输的配电主站安全防护环境下同样适用;采用“中间代理”方式的双向协议匹配方法,使得基于原主站注入测试法的测试***无需经过改造即可接入配电主站进行测试;提出硬件虚拟化的方法解决多模拟配电终端接入中的安全芯片集成和软硬件融合问题,并通过了中国电科院的第三方验证测试。单装置可模拟48个加密通道,以及另外至少48个非加密通道;***装置间可通过级联扩展测试规模,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种适用于网络加密认证环境的配电主站测试***,包括硬件设备和软件设备,其中,硬件设备包括:
电源模块,为整个装置提供供电电源,输入AC 220V,输出DC 5V,分别ARM模块和交换接口模块提供电源;
交换接口模块,完成外部接口通信和内部6块ARM模块之间数据交换,其中网口1为外部网口,与主站连接,完成与主站的数据通信,网口2为外部管理维护接口,完成设备参数配置,内部数据导入导出等功能。内部交换模块完成主站数据和6组ARM模块之间的数据交换;
ARM模块,包括6组ARM模块,每个模块可单独虚拟8台配电终端,完成8台终端数据处理过程;
软件设备由嵌入式平台软件以及调试工具软件两部分组成,其中:
嵌入式平台软件由调度程序、上行通道管理程序、下行通道管理程序组成。
进一步地,所述ARM模块包括ARM主控模块,CPLD及8颗硬件加密芯片。
进一步地,所述ARM主控模块为核心处理单元,包括一个对外网口1,与交换接口模块连接,进行数据交互。
进一步地,所述CPLD与ARM主控模块通过数据总线连接,与加密芯片通过SPI连接。
进一步地,所述硬件设备还包括交换机、配网终端、加密通讯测试仪网口、EM9278板、加密芯片及后台,交换机通过网络连接于配网终端和后台,交换机的加密通讯测试仪网口通过内部IO连接EM9278板,所述EM9278板通过内部IO连接加密芯片。
进一步地,所述嵌入式平台软件基于Windows操作***,通过PC机的网卡绑定多IP,模拟多个终端仿真配电网馈线场景。
本发明要解决的另一种技术方案为:提供一种适用于网络加密认证环境的配电主站测试的方法,包括如下步骤:
S101:ARM主控模块通过网口1接收配电主站发送的数据,根据TCP链路IP判断不同终端连接,将数据发送给对应的虚拟终端进行安全报文解析,解析后数据分为:安全认证报文,加密数据报文,不加密短帧报文;
S102:将安全认证报文及加密数据报文重新组包为加密芯片报文格式,通过数据接口发送给CPLD,CPLD将数据转为SPI数据包,发送给该虚拟终端对应的加密芯片进行安全认证的解析及数据的解密,完成后返回给CPLD,CPLD再将解析后的数据送给ARM模块,ARM对返回的数据按照主站安全报文格式重新组包,通过网口发送给配电主站;
S103:对于不加密的短帧报文,ARM直接进行规约解析,返回确认帧,按安全报文格式组包直接发送给配电主站。
进一步地,配电主站通过104或101规约与配电终端间进行通信,传输过程中的通信规约报文内容经过加密,加密算法为国密SM1算法。
与现有技术相比,本发明的有益效果是:本适用于网络加密认证环境的配电主站测试***及方法,使传统的主站注入测试法在双向身份认证和报文加密传输的配电主站安全防护环境下同样适用;采用“中间代理”方式的双向协议匹配方法,使得基于原主站注入测试法的测试***无需经过改造即可接入配电主站进行测试;提出硬件虚拟化的方法解决多模拟配电终端接入中的安全芯片集成和软硬件融合问题,并通过了中国电科院的第三方验证测试。单装置可模拟48个加密通道,以及另外至少48个非加密通道;***装置间可通过级联扩展测试规模。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,一种适用于网络加密认证环境的配电主站测试***,包括硬件设备和软件设备,其中,硬件设备包括:
电源模块1,为整个装置提供供电电源,输入AC 220V,输出DC 5V,分别ARM模块2和交换接口模块3提供电源。
交换接口模块3,完成外部接口通信和内部6块ARM模块2之间数据交换,其中网口1为外部网口,与主站连接,完成与主站的数据通信,网口2为外部管理维护接口,完成设备参数配置,内部数据导入导出等功能。内部交换模块31完成主站数据和6组ARM模块2之间的数据交换。
ARM模块2,包括6组ARM模块,每个模块可单独虚拟8台配电终端,完成8台终端数据处理过程。
如图2,ARM模块2包括ARM主控模块,CPLD及8颗硬件加密芯片。ARM主控模块为核心处理单元,包括一个对外网口1,与交换接口模块3连接,进行数据交互。ARM主控模块主要完成8路终端设备的虚拟,通信规约协议的解析以及数据处理。与CPLD通过数据总线连接,将解析后的需要加解密的数据发送给CPLD。
CPLD与ARM主控模块通过数据总线连接,与加密芯片通过SPI连接。一般情况下SPI接口在一条SPI数据线上同时接多个SPI设备,通过片选信号CS进行选择。然而本发明为提高加解密的速度,增强ARM主控模块的数据吞吐量,独立模拟8路SPI,分别与8颗加密芯片进行数据通信。
如图3,硬件设备还包括交换机、配网终端、加密通讯测试仪网口、EM9278板、加密芯片及后台,交换机通过网络连接于配网终端和后台,交换机的加密通讯测试仪网口通过内部IO连接EM9278板,所述EM9278板通过内部IO连接加密芯片。
如图4,软件设备由嵌入式平台软件以及调试工具软件两部分组成,其中:
嵌入式平台软件由调度程序、上行通道管理程序、下行通道管理程序组成。
调度程序包括建立调试程序子进程、建立硬件看门口子进程、调度下行通道程序、上行通道程序启停以及状态监视、建立上行通道转发子进程、建立下行通道转发子进程及定时发送总召唤。
上行通道管理程序包括控制侦听TCP客户端程序的连接、控制104链路、读取socket中的缓存字节并转化为msg,存入下行通道共享内存中,从上行通道共享内存中读取msg,转化为104报文发送socket缓存以及定时喂狗。上行通信模块主要负责与配电自动化***主站进行交互,将从下行通道接收的数据汇集处理后上送至主站端,以及主站端下发数据经分析处理后转发给下行通道。数据汇集处理涉及到数据加密,数据分析处理涉及到数据解密,上行通信模块定义并实现了身份认证和数据加解密接口。上行通信模块与主站端的通信采用符合加密要求的标准104规约。
下行通道管理程序包括控制向TCP服务器发起连接过程,控制104链路,从下行通道共享内存中读取msg,转化为104报文下发至socket,读取socket中的原始报文,并转化为msg,存入上行通道共享内存中。下行通信模块主要负责与注入端进行交互,通过向主站注入测试***请求配电网场景仿真数据得到消息,再将消息转存至共享内存中,下行通信模块与注入端的通信采用非加密标准104规约。
调度模块、上行通信模块、下行通信模块分别在不同进程中实现。进程间的通信采用共享内存与信号量的方式,共享内存同时也作为缓存使用。为便于管理,对共享内存进行了分区,分为调试通道共享内存、上行通道共享内存、下行通道共享内存、看门狗共享内存4部分。其中上行通道共享内存与下行通道共享内存主要是为数据转发服务,调试通道共享内存是为后台调试与配置工具服务,看门狗共享内存则用于与硬件看门狗的通讯。
嵌入式平台软件中的调度程序是本***嵌入式平台的核心软件,主要实现的功能有:后台调试配置工具建立连接并通信、控制通道程序的起停、处理硬件看门狗的信息、建立共享内存、初始化其他与***相关的参数信息。嵌入式平台软件流程图5。
本***共享内存主要由上行通道共享内存、下行通道共享内存、调试通道共享内存、看门狗共享内存组成。其中上行通道共享内存与下行通道共享内存主要是为数据转发服务,调试通道共享内存是为后台调试与配置工具服务,看门狗共享内存主要是与硬件看门狗通讯用。下图6是共享内存分区示意图。
共享内存采用循环队列数据结构,缓存先定义结构体数组,同时定义写入游标(队列头指针)与读出游标(队列尾指针),通过不断移动写入游标与读出游标实现数据的先进先出。共享数据结构如图7。
共享内存的所有数据存储单位是“消息”,“消息”是根据本***的特点专门设计的,“消息”的具体结构体定义如图8。
嵌入式平台软件中的上行通道程序是与后台交互的主程序,所有数据信息汇集于此上送至后台,其主要功能为下行通道数据汇集,后台下发数据分析下发,同时预留接口负责数据的加密解密。上行通道程序与后台接口:采用加密标准104与后台通信,实现数据信息与后台的通信。与共享内接口:采用自定义消息结构体。上行通道主要流程如图9。
嵌入式平台软件中的下行通道程序是与仿真测试仪交互的主程序,通过向仿真测试仪请求数据得到数据信息,再将数据信息转存至共享内存中。下行通道程序与仿真接口:采用标准104与仿真测试仪通信。与共享内接口:采用自定义消息结构体。下行通道主要流程如图10。
本发明***的软件部分在实现“配电网场景仿真”这一核心功能的基础上,还要与硬件部分接口对虚拟化的数字终端进行统一调度管理。
由于量测、遥信等采集量和控制量均由“配电网场景模拟器”仿真,虚拟终端无需实现真实终端的采集、控制等部分,仅需负责通过安全芯片实现与配电主站(网关)之间的双向身份认证和传输内容加解密。由各装置的核心单元统一调度虚拟终端和其一一对应的网络接口,并负责与其他装置级联。***架构如图11。
配电终端与配电主站间通过104或101规约进行通信,在新的网络安全防护体制下,传输过程中的通信规约报文内容都是经过加密的,加密算法为国密SM1算法。注入端为DATS-1000配电自动化主站注入测试***,该***软件基于Windows操作***,通过PC机的网卡绑定多IP,模拟多个终端仿真配电网馈线场景。每台测试***内置48个安全芯片,对外双网口。其中一个网口负责与注入端连接,测试***模拟主站侧,此时注入端为服务端监听连接,装置的模拟主站侧模块为客户端发起连接;另一个网口负责与主站端连接,测试***模拟终端侧,此时装置的模拟终端侧模块为服务端监听连接,主站端为客户端发起连接。装置与注入端、装置与主站端的通信均采用104规约。***内部模拟主站侧模块和模拟终端侧模块间的数据为内部交换,不走网络通信协议。模拟终端侧模块接收的注入端注入数据经安全芯片进行认证和加解密后与主站交互。装置与装置间可以通过级联扩展测试规模。数据流如图12。
在本发明中,特别是安全芯片中主要涉及三种密码算法,分别是SM1、SM2、SM3。
1)SM1算法
本发明中SM1算法用于对配电终端和配电主站间通信规约报文内容的加解密。
SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度和密钥长度都为128比特,该算法不公开,仅以IP核(Intellectual Property Core)的形式存在于芯片中。其算法安全保密强度及相关软硬件实现性能与AES(Advanced EncryptionStandard)相当。
2)SM2算法
本项目中SM2算法用数字证书实现配电主站侧的认证网关和配电终端之间的双向身份认证。
SM2算法基于ECC(Elliptic Curve Cryptography,椭圆曲线加密)非对称公钥密码算法,一般采用素数域256位椭圆曲线,椭圆曲线方程为y 2=x 3+ax+b。SM2算法用于替代RSA算法。
3)SM3算法
本发明中SM3算法应用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,SM3算法为密码杂凑算法,经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。SM2算法中的密码杂凑函数通常采用SM3算法。
若考虑测试***在配电终端MAC地址与IP地址绑定的接入环境下的适应性,就需要每个硬件模拟的配电终端都有一个同时具备MAC(链路层)与PHY(物理层)的网络接口控制器(俗称网卡)与之对应。每个终端的MAC地址都不同。用硬件来实现每个终端都有唯一的MAC地址,增加了测试***的开发难度,无法有效控制测试***的体积。一个测试***要模拟48个终端,目前常见的开发小板最多有6个以太网口,这样一个装置中就需要放入8块开发板,同时还要集成50口的交换机(芯片)。然而经调研,市场上并无满足要求的紧凑型交换机成品,此外还需解决48个网卡到交换机的接线问题。
虚拟化是将计算机资源(包括硬件和软件)抽象后重新按需分配的过程,虚拟资源具有很高的可伸缩性和可利用率。通过少量的计算资源虚拟出多个终端,这些终端均具有采集和通信功能,且终端数量可根据需要进行增减。
测试***软件与硬件间的调用接口可以通过两种方式实现:
(1)直接调用
完全由测试***软件实现对测试***硬件的管理和调用。这种方式硬件开发的难度小、工作量少。但软件侧要重新开发,如开发支持104规约扩展内容的新版规约库并实现通过安全芯片的认证加密内容处理。这种方式软件开发的难度大,周期长。
(2)规约转发
测试***硬件内嵌程序实现从模拟主站到虚拟终端再到真实主站的规约转发。
a.模拟主站侧。模拟主站前置服务器,通过104规约与软件侧模拟的终端进行通信。
软件可以完全复用电科院主站注入测试软件,可将测试***硬件视为配电主站直接按传统方式连接。主站注入测试软件采用的104规约为一个小子集,支持的规约内容有限,规约转发功能模拟的主站侧仅需实现对应站端的规约内容即可。
b.虚拟终端侧。与真实主站通过虚拟终端连接,将从模拟主站侧收发的内容经转换处理后转发给真实主站。规约转发功能虚拟的终端侧要实现104规约终端侧内容。软件侧仅需新开发终端配置功能界面,而且合作单位有终端开发的经验,硬件开发难度相对较小。故最终确定采用第二种方式——规约转发。
网络通信调试时需要通过网络报文分析通信过程来确定问题出在哪一环节,依靠网络监听的方式能够获取网络报文。电科院主站注入测试软件的载体是PC机,在PC机上安装Sniffer软件可以实现对测试软件与测试***间的通信内容进行抓包监听。因采用了由测试***实现规约转发的方式,测试***与真实主站之间、测试***互相之间的通信内容无法在测试软件载体机上直接监听获得。测试***的交换机模块需要支持端口镜像(PortMirroring)功能,将待监听端口的网络数据包复制到指定端口,连接该端口就可以获取网络报文了。
本发明***间如果采用并行的方式扩展测试规模,就需要在测试***的注入端和主站端各放置一台接口数与测试***数相匹配的交换机,分别进行连接。势必造成外部接线繁琐、内部实现复杂,不易现场实施。如测试385个终端规模的配电网,假设每台装置模拟48个终端,需要9个测试***,2个16端***换机,20根网线。采用串行级联的方式扩展测试规模,接线方便,现场实施简单易行,如图13所示。同样测试385个终端规模的配电网,仅需9个测试***和10根网线即可。装置间级联扩展能力的上限与每台测试***无关,仅取决于注入端注入规模(模拟终端数)、主站端接入能力以及通信路径上的网络设备性能等其中的瓶颈。
每台装置模拟48个终端,如果全部由一块大的工业主板来实现,难以满足对性能和可靠性的要求。从设计角度来看,装置内采用小板堆叠的方式是比较合理的:
1)装置内置交换模块,选择8端***换模块,无论从体积、重量、功耗、性能、散热等方面都比16端***换模块合适;
2)8个端口中,1个端口用于注入端方向的连接,1个端口用于主站方向的连接,剩余6个端口全用于虚拟终端板卡(VTB)的连接;
3)每装置最多容纳6块VTB,每块VTB与一个交换模块接口连接;
4)每块VTB需要虚拟8个终端;
5)从市场调研来看,符合这些要求的开发板选择余地较大。
测试***内部板卡的布局如图14所示。
测试***内的每块VTB应该是各自独立的,也就是说当任意一块或多块VTB不能正常工作时,剩余VTB仍能正常工作,这样可以做到VTB现场更换、即插即用。
测试***内无需再另外配置一块调度管理专用板卡,又由于VTB的独立性,从开发角度,只用实现一种统一的VTB软硬件方案即可进行简单复制,从而降低了开发难度、提高了开发效率。
虚拟终端:通过VTB来实现对终端的虚拟,基于独立小板的实现有利于装置的模块化,能够提高稳定性、可靠性,易于维护、便于扩展。VTB从架构上能实现与真实终端的核心板一样的功能和性能,除了虚拟采集和网络通信外可以按需添加功能和***设备。
注入端侧:注入端为原本的主站注入测试软件,该软件与配电主站通过TCP/IP协议连接。由主站注入测试软件模拟配电终端,并在建立网络连接时作为服务端进行监听(Listening),由配电主站作为客户端向服务端发起连接。正常情况下,终端与主站是n:1的关系。当主站采用分布式前置时,这个关系就变成了n:m(m≥2)。对于普通终端来说,它与主站的关系始终是1:1,但对于主站注入测试软件来说,因为它要模拟多个终端,则需要具备n:m的连接能力。终端的协议端口都是固定的,处在同一网段内的终端和主站可以通过Source IP、SourcePort对与Destination IP、Destination Port对建立Socket连接。不同的Socket连接可以有不同的源地址或目的地址,对于现有主站注入测试软件,如在Socket建立后未对主站端地址进行引用,则无需更改代码就可以实现同时与多个主站相连。对于VTB,则可以在作为模拟主站端与注入端连接时,不同的VTB使用不同的IP地址模拟主站,相当于分布式前置多个接入的情形。从而解决了所有VTB无法共用一个模拟主站地址的问题。
VTB与主站端相连,对于主站来说,可将VTB视为终端:
(1)由主站发起与VTB的连接请求,该请求到达安全网关处,由网关先发起与VTB的连接请求。网关与VTB建立TCP连接后,开始双向身份认证。
(2)网关与VTB的双向身份认证通过后,由网关向主站返回与VTB的认证成功结果。
(3)主站再直接建立与VTB的TCP连接,并发起与VTB的双向身份认证请求。
(4)在完成主站与VTB的双向身份认证后,VTB将所模拟终端的序列号(此序列号在安全芯片中)和当前密钥版本返回给主站。
(5)VTB除要按规范先后实现与网关的双向身份认证和配电主站的双向身份认证外,还要维持终端与主站的正常业务往来。
在实现中,可将VTB与注入端和主站端的功能和业务分离,不需要同步阻塞式交互。当VTB与注入端或VTB与主站端两侧中的任一侧连接尚未建立、业务尚未开展时,另一侧仅需将连接建立并保持该连接,如通过收发测试帧、应答总召等手段保持有效连接,待两侧的连接都建立后,再将两侧的业务进行同步。
规约转发:测试***与主站注入测试软件和配电主站的通信均采用TCP/IP协议以及104规约。主站注入测试软件支持104规约,I格式(InformationTransmit Format)报文用到的类型标识符(TI,Type Identification)和传送原因(COT,Causes ofTransmission)如表2-1、表2-2所示。
表2-1类型标识符
表2-2传送原因
编号 |
传送原因说明 |
传送方向 |
1(0x01) |
周期、循环 |
监视方向 |
2(0x02) |
突发(自发) |
监视方向 |
3(0x03) |
突发(自发) |
控制方向 |
4(0x04) |
被初始化 |
监视方向 |
5(0x05) |
被请求 |
监视方向 |
5(0x05) |
请求 |
控制方向 |
6(0x06) |
激活 |
控制方向 |
7(0x07) |
激活确认 |
监视方向 |
8(0x08) |
停止激活 |
控制方向 |
9(0x09) |
停止激活确认 |
监视方向 |
10(0x0A) |
激活终止 |
监视方向 |
11(0x0B) |
远方命令引起的返送信息 |
监视方向 |
12(0x0C) |
当地命令引起的返送信息 |
监视方向 |
20(0x14) |
相应站召唤 |
监视方向 |
44(0x67) |
未知的类型标识 |
监视方向 |
45(0x2C) |
未知的传送原因 |
监视方向 |
46(0x2E) |
未知的应用服务数据单元公共地址 |
监视方向 |
47(0x2F) |
未知的信息对象地址 |
监视方向 |
《配电自动化***应用DL/T634.5104-2009实施细则对DL/T 634.5104-2009规定的内容进行了扩展,主要增加了参数整定、文件传输、电量采集等具体过程。测试***与配电主站间通信采用该扩展版规约,在进行规约转换时,需要注意遥信变位过程和故障事件过程的变化。
遥信变位过程:配电终端发生一次状态变位事件后,向配电主站传带时标的遥信报文(TI=30或31)配电主站在收到带时标的遥信报文后自动产生COS(状态变化,Changeof State)和SOE(事件顺序记录,Sequence of Event)数据。
故障事件过程:故障发生时上送故障事件信息,主要包含故障对应的遥信编号及故障时刻的相关测量值信息。发明内新增的类型标识符和传送原因如表2-3、表2-4所示。
表2-3新增类型标识符
表2-4新增传送原因
测试***并不是简单地实现规约转发即可,原有主站注入测试软件无法不经修改就直接与经认证加密的配电主站连接。为降低开发难度和工作量,采用“中间代理”的方式,由测试***作为注入测试软件和配电主站之间的“代理人”,测试***作为“代理主站”与注入软件连接通信,同时测试***也作为“代理终端”与配电主站通信连接。
与配电主站相连时,测试***符合认证加密的安全防护接入要求,与注入软件相连时,测试***是无认证加密的,注入软件无需任何修改即可按原工作方式接入。
为了更好的展现适用于网络加密认证环境的配电主站测试的流程,本实施例现提出一种适用于网络加密认证环境的配电主站测试***的方法,包括如下步骤:
S101:ARM主控模块通过网口1接收配电主站发送的数据,根据TCP链路IP判断不同终端连接,将数据发送给对应的虚拟终端进行安全报文解析,解析后数据分为:安全认证报文,加密数据报文,不加密短帧报文;
S102:将安全认证报文及加密数据报文重新组包为加密芯片报文格式,通过数据接口发送给CPLD,CPLD将数据转为SPI数据包,发送给该虚拟终端对应的加密芯片进行安全认证的解析及数据的解密,完成后返回给CPLD,CPLD再将解析后的数据送给ARM模块,ARM对返回的数据按照主站安全报文格式重新组包,通过网口发送给配电主站;
S103:对于不加密的短帧报文,ARM直接进行规约解析,返回确认帧,按安全报文格式组包直接发送给配电主站。
通过测试***上下行端口间的串联来实现级联扩展测试规模。在最初设想时装置内部采用一枚16端口的交换机芯片通过划分VLAN完成内部通信和旁路转发。测试***对网络带宽没有特殊要求,芯片支持100Base-TX即可,考虑到未来如果安全防护措施增加对设备进行端口和MAC地址绑定的要求,应该采用每端口PHY+MAC的交换机芯片。
在开发测试***的过程中,考虑到上下行通信IP在不同网段以及安全隔离的需要,实际采用了2枚IP178G芯片分别绑定上行和下行通信。IP178G芯片为8端口,支持IEEE802.1Q协议,能够实现基于端口或标签的VLAN。
一般主站侧的VLAN ID各不相同,为了简化现场测试配置以适应不同主站的网络接入环境,测试***采用基于端口的方式实现VLAN。
对于IP178G,端口01分别连接上行通道和下行通道,端02-0分别连接测试***。内的每块VTB,端口08则连接装置内的另一枚IP178G的08端口从而将测试***内部级联。
本适用于网络加密认证环境的配电主站测试***及方法,使传统的主站注入测试法在双向身份认证和报文加密传输的配电主站安全防护环境下同样适用;采用“中间代理”方式的双向协议匹配方法,使得基于原主站注入测试法的测试***无需经过改造即可接入配电主站进行测试;提出硬件虚拟化的方法解决多模拟配电终端接入中的安全芯片集成和软硬件融合问题,并通过了中国电科院的第三方验证测试。单装置可模拟48个加密通道,以及另外至少48个非加密通道;***装置间可通过级联扩展测试规模。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。