郭 晶, 季爱明
(苏州大学 城市轨道交通学院, 江苏 苏州 215137)
随着智能电网技术的发展,配电自动化系统规模日益扩大,多种通信方式并存及所有报文均采用明文传输的通信方式导致系统受到各种网络攻击的风险较大[1]。 加上配变终端安装位置分布广,地点分散,形成了设备数量多、运行环境恶劣等特点,部分地区存在搭接、伪造等接入电力信息网的安全风险。 为了保证配电自动化系统的信息传输安全,必须采用高效可靠的加密措施进行数据安全防护[2]。
在供电电压自动采集系统中,电压监测仪作为电压测量终端,将通过GPRS 网络,采用TCP 协议,基于无线虚拟专网方式与CAC 之间进行数据通信,系统如图1 所示。
数据的保密性直接取决于所采用的加密方式、 密码算法[3]。 目前常用的加密方式有软加密和硬加密两种,软加密不依靠特别的硬件设备,通过在程序中嵌入特定的软件加解密包实现加解密,这种方案具有实现方便、兼容性好等优点,但密钥管理难、程序易被跟踪破解。 硬加密则采用专用加密芯片等硬件设备在链路层对数据进行加解密, 其保密性强、加解密速度快。 加密算法则可分为对称密钥算法以及非对称密钥算法两类。 对称密钥算法速度快,密钥不宜维护;非对称密钥算法速度慢,密钥便于维护[4]。 由此组合成的加密方案特性见表1。
表1 不同加密方案特性表Tab. 1 Features of different encryption systems
安全高效的加密系统经常用对称秘钥算法加密大块的数据,用非对称秘钥算法对密钥进行管理、生成数字签名,这种混合加密机制使非对称算法和对称算法的优势充分发挥,既保证了数据安全又提高了效率[5]。 因此在硬件上实现混合加密机制的安全防护方案可以大大提高加密系统的安全和效率。
图1 供电电压采集系统Fig. 1 Diagram of supply voltage acquisition system
NRSEC3000 是南瑞公司自主研发用于电网信息安全防护的专用加密芯片,实现了国家商用密码产品所需的SM1 对称算法、SM2 非对称算法、SM3 杂凑算法等专用加密模块。 同时拥有ISO7816 和SPI 接口并支持多种通信速率, 所提供的包括电压、频率检测机制,程序和数据加密存储以及代码保护等安全机制,可有效对抗物理攻击、剖片探测[6]。 基于NRSEC3000 芯片的SM1、SM2 算法可以较方便的地实现混合加密机制,构造出安全、高效的密码系统,可用于对信息安全有较高要求的应用场合。
NRSEC3000 安全芯片通信采用 “一问一答” 方式,即MCU 发送命令给NRSEC3000 芯片,NRSEC3000 芯片返回应答结果[7]。 芯片支持的每个算法功能都是由一个或多个交互过程完成的,这些交互过程可以分为四种形式:
1)MCU 向芯片发送命令头CMD, 芯片返回应答状态字SW。
2)MCU 向芯片发送命令头CMD, 芯片返回数据和应答状态字SW。
3)MCU 向芯片发送命令头CMD 和数据, 芯片返回应答状态字SW。
4)MCU 向芯片发送命令头CMD 和数据, 芯片返回数据和应答状态字SW。
其中CMD 命令头决定了本次芯片调用的功能与具体操作参数, 由5 个字节组成, 分别是CLA 指令类别,INS 指令码,P1 参数1,P2 参数2,P3 参数3。 状态字SW 标志本次芯片功能调用是否成功,由2 个字节组成,若收到的SW 依次为0x90、0x00,则表示成功,其他则表示失败。
图2 是NRSEC3000 加密芯片在电压监测仪中的应用电路原理图。
图2 NRSEC3000 应用电路原理图Fig. 2 Application circuit schematics of NRSEC3000
图2 中NRSEC3000 与微处理器的接口为SPI 总线,通信主端可采用SPI 模式3(CPOL=1、CPHA=1),时钟频率33MHz,中断模式处理数据收发。 电压监测仪通过电压采集模块获得电压数据后,由加密芯片NRSEC3000 加密成密文,处理器获得该电压密文并通过GPRS 通信接口发送给远方主站。
通过图2 所示的硬件电路,遵循如前所述的芯片操作流程,本文成功实现了NRSEC3000 芯片的底层驱动, 并将各算法功能封装成单独的函数方便调用。由于篇幅所限,图3 仅给出芯片SM1 加密函数的软件操作流程(数据以十六进制表示)。
在图3 中,MCU 发送的5 字节命令头由a0 e0 80 p2 p3组成, 其中a0 e0 表示SM1 功能指令,80 表示加密,p2 p3 表示待加密数据的长度,p2 为高字节,p3 为低字节。发送aa..表示持续发送aa,直到接收到需要的字符;收到..e0 表示持续接收,直到收到的字符为e0。第一次接收到e0 表示芯片已经确认本次调用的功能为SM1 加密, 第二次接收到e0 表示芯片已经确认收到加密数据,最后接收到状态字90 00,标志SM1加密操作成功。
图3 SM1 加密函数流程图Fig. 3 Flowchart of SM1 encryption function
CAC 是供电电压自动采集系统的重要组成部分,在系统中发挥承上启下的枢纽作用[8]。 当电压监测终端接入CAC 之前,需要进行3 个准备工作,它们是:1)硬件初始化,生成SM2 密钥对;2)生成安全芯片的证书请求并提交证书签发机构;3)将签发出的终端自身证书及主站公钥保存本地。 终端的密钥对与最后签发出来的证书是一一对应的,如果重新生成密钥对,则终端原来签发的证书将失效,因此上述准备工作只需要在第一次安全接入之前做一次。
图4 秘钥协商软件流程Fig. 4 Flowchart of key agreement software
完成准备工作,终端将连入GPRS 无线专网与CAC 进行密钥协商,只有双方通过身份认证,才能进行后续的数据通信。 按照报文数据的发送方向与处理过程,整个秘钥协商可分3 个步骤, 第一步终端侧向CAC 发送秘钥协商请求报文A;第二步CAC 侧对报文A 解密,向终端发送秘钥协商应答报文B;第三步终端侧对报文B 解密,向CAC 发送秘钥协商确认报文C, 具体的软件流程图如图4 所示。 图4 中报文帧A、报文帧B、报文帧C 的数据结构如下:
//密钥协商请求报文结构
typedef struct KeyDigReq_Packet_s {
unsigned char type; /* 类型*/
unsigned char s_type; /* 子类*/
unsigned short packetLen; /* 帧长度*/
unsigned char ver_0; /* 版本号*/
unsigned char ver_1; /* 版本号*/
unsigned short sn; /* 序列号*/
unsigned char sim[16]; /*SIM 卡号*/
unsigned char dev_id[18]; /* 装置ID*/
unsigned char *pcert; /* 数字证书指针*/
unsigned char eRand[128]; /* 加密随机数*/
unsigned char sign[64]; /* 签名*/
} KeyDigReq_Packet_t;
//密钥协商请求应答报文结构
typedef struct KeyDigReq_PacketAck_s {
unsigned char type; /* 类型*/
unsigned char s_type; /* 子类型*/
unsigned short packetLen; /* 帧长度*/
unsigned short sn; /* 序列号*/
unsigned char eRand[128]; /* 加密随机数*/
unsigned char sign[64]; /* 签名*/
} KeyDigReq_PacketAck_t;
//密钥协商确认报文结构
typedef struct KeyDigReq_PacketAssure_s {
unsigned char type; /* 类型*/
unsigned char s_type; /* 子类型*/
unsigned short packetLen; /* 帧长度*/
unsigned short sn; /* 序列号*/
unsigned char auth[146]; /* 安全认证*/
unsigned char sessionKeyHash [32]; /* 会 话 密 钥HASH*/
} KeyDigReq_PacketAssure_t;
在协商好会话密钥,进行数据通信的时候,需要对应用层的数据报文用SM1 对称算法进行加解密。 先对原始数据报文填充1-16 字节,使其长度为16 的倍数,对填充后的原始报文和填充报文使用之前协商好的会话密钥DK 进行加密即可。
在实现无线加密功能的基础上,采用LM3S9B96 作为微处理器成功研制了电压监测仪样机,从电压采集、通讯模块、人机接口、数据存储、电源管理等方面设计了系统硬件结构,软件以实时操作系统SAFERTOS 为核心进行任务划分与调度,如图5 所示。
图5 电压监测仪样机Fig. 5 Prototype of voltage monitor
经测试, 电压监测仪通过NRSEC3000 加密芯片可以成功接入CAC,并进行数据传输。 表2 给出了终端发送心跳加密报文的相关数据。
表2 心跳报文数据Tab. 2 Heartbeat packet data
本文详细说明了NRSEC3000 加密芯片的工作原理与操作方法, 在编写NRSEC3000 底层驱动的基础上, 利用NRSEC3000 芯片的SM1、SM2 等算法功能, 实现了基于混合加密机制的通信协议, 有效提高了加密系统的效率与安全。此基础上研制的电压监测仪样机成功接入远方CAC,定时将电压数据加密上传,为供电电压采集系统中电力信息的安全传输提供了有力保障。 NRSEC3000 加密芯片性能可靠,相应的软硬件改造简单方便,因此在电压监测仪安全防护中具有广阔的应用前景。
[1] 张志华,周捷,丁可. 非对称数字签名技术在配电自动化系统的应用[J]. 电气自动化,2012,34(3):39-41.
ZHANG Zhi-hua,ZHOU Jie,DING Ke. The applications of asymmetric encryption of digital signature technology in distribution automation system[J]. Electric Automation,2012,34(3):39-41.
[2] Q/GDW 1819—2012《电压监测装置技术规范》[S].国家电网公司,2013.
[3] (美)帕尔著.深入浅出密码学 常用加密技术原理与应用[M].北京:清华大学出版社,2012.
[4] 俞经善,王晶,杨龙. 基于ECC和AES相结合的加密系统的实现[J]. 信息技术,2006(2):44-46.
YU Jing-shan,WANG Jing,YANG Chuan-long. The realization of encryption system based on ECC and AES[J].Information Technology,2006(2):44-46.
[5] 王红珍, 李竹林. 基于AES和ECC的混合加密系统的设计与实现[J]. 电子设计工程,2012,20(4):9-11.
WANG Hong-zhen,LI Zhu-lin. Design and realization of mixed encrypted system based on AES and ECC [J].Electronic Design Engineering,2012,20(4):9-11.
[6] 南瑞信通. 安全芯片NRSEC3000硬件使用手册v1.5 [Z].2013.7.
[7] 南瑞信通. NRSEC3000安全芯片编程手册v2.0 [Z]. 2013.
[8] 南瑞信通.采集类终端的安全防护v1.7 [Z]. 2013.7.