基于非对称数字签名技术的配电终端授时安全防护方法

2015-05-04 09:16张志华陈军刘润苗刘明祥王俊仁王文轩国电南瑞科技股份有限公司江苏南京06南京南瑞集团公司信息通信技术分公司江苏南京00
电气自动化 2015年5期
关键词:数字签名非对称报文

张志华, 陈军, 刘润苗, 刘明祥, 王俊仁, 王文轩(.国电南瑞科技股份有限公司,江苏 南京 06; .南京南瑞集团公司信息通信技术分公司,江苏 南京 00)

基于非对称数字签名技术的配电终端授时安全防护方法

张志华1, 陈军2, 刘润苗1, 刘明祥1, 王俊仁1, 王文轩1
(1.国电南瑞科技股份有限公司,江苏 南京 211106; 2.南京南瑞集团公司信息通信技术分公司,江苏 南京 211100)

随着配电自动化技术的发展,越来越多诸如配电自动化系统设备互操作、自描述等基于系统时标一致性的智能化功能正在推广应用,所以配电自动化系统时标的准确性和安全性就变得尤为重要,综合考虑对时的准确性、安全性及算法易于实现等因素,选择基于SM2非对称数字签名技术的SNTP(简单网络对时协议)来完成配电自动化系统设备的时钟校核,以保障配电自动化系统的安全、可靠运行。

SNTP;SM2 数字签名;配电自动化;配电终端;授时安全

0 引 言

随着配电自动化建设的推进,为了进行快速故障隔离及非故障区域恢复供电,缩短因故障造成的停电时间,保障供电的稳定性及可靠性,提高供电质量,越来越多的诸如智能分布式FA(馈线自动化)、配电自动化设备互操作等更加智能化的功能正在配电自动化系统进行推广和应用,这就要求配电自动化系统各设备之间需要进行相互配合及联动,配电自动化设备之间的相互通信及交流越来越密切。而系统各设备之间的相互配合完成相关的智能化功能必须建立在各参与设备均具有统一、精确的时标系统的基础上,所有设备响应及动作方案必须以精确可靠的时标作为基础,因此,传统诸如IEC60870-5-104、IEC60870-5-101等配电自动化系统常用规约所定义的时钟校核方法在授时精度及授时的安全性上均已无法满足配电自动化系统智能化的要求。使用授时精度的授时协议及研究能够保障授时安全的授时系统安全防护方法在今后的配电自动化的建设过程中就显得尤为重要。

1 SNTP时钟校核协议

1.1 SNTP简单网络对时协议

NTP对时协议是目前Internet上实现高精度网络授时的一种工程化实用方法,但是在实际应用时其算法实现较为复杂,SNTP简单网络对时协议为NTP网络授时协议的简化版本,使用UDP协议的123端口进行数据传输,它不需要实现NTP(网络对时协议)协议的所有功能,大大简化了控制过程中复杂的时间控制,SNTP协议的功能是在控制网络内使其它系统时钟与标准时钟源保持同步,其精度一般可到达1 ms~50 ms[1],因此,SNTP简单网络对时协议在配电自动化系统建设中具有较大的推广意义。

1.2 SNTP简单网络对时协议实现原理

图1 SNTP实现原理图

SNTP对时协议的实现原理如图1,本文只讨论客户端/服务器模式,客户端向服务器请求对时的本地时刻记记为Orig_T,服务器收到客户端请求时服务器本地时间记为Recv_T,服务器开始向客户端回复应答报文时服务器本地时间记为Tran_T,客户端收到服务器应答报文时客户端本地时刻记为Dest_T,当客户端在收到服务器返回含有相关时间戳的报文后,可以简单的计算出传输延时d和时钟偏差t,其计算方法为[2]:

d= (Dest_T - Orig_T) - (Recv_T - Tran_T)

t=((Recv_T - Orig_T) + (Tran_T - Dest_T))/2

根据以上计算可知,客户端与服务器的时间偏差只与Recv_T、 Orig_T差值及Tran_T 、Dest_T差值有关,而与服务器处理数据所需时间或者响应延时Recv_T 、Tran_T这两个时间的差值无关,因此客户端只需要在本地时钟的基础上按照偏差t对本地时钟进行修正即可实现本地时钟的校准。

2 SM2非对称数字签名技术

非对称加密技术在实现上发送方只需要公开自己的公钥,私钥由发送方自己保管,签名时发送方使用私钥对数据进行签名,接收方值需要根据发送方公开的公钥就能对签名的合法性进行验证,这就使得密钥被泄露的可能性很低,也就大大提高了信息加密技术的安全性,基于非对称加密算法的信息加密技术在电子商务数字签名中得到了广泛的使用。

2.1 SM2算法简介

SM2非对称数字签名技术属于非对称数字签名技术的椭圆曲线数字签名技术,其原理是应用求解椭圆曲线的离散对数问题来实现数字签名安全防护,其算法除了具备常规非对称数字签名技术的优点外,还较常规依赖大数分解来进行数字签名安全防护的算法在实现上更为简单,运算速度更快,而且相同的安全等级下使用SM2算法所需要的密钥位数更少,有研究表明160位的SM2算法密钥与1024位的RSA密钥安全性相同[3],因此能够更加容易的实现配电自动化系统的安全防护,从而保障配电自动化系统的安全、可靠运行。

2.2 SM2算法安全性

SM2算法根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP[4]。ECDLP是比因子分解问题更难的问题,它是指数级的难度。有数据表明,当使用密钥位数为106 bit的密钥进行数字签名时,SM2算法安全性级别为破解时间104MIPS年;而当使用密钥位数为6 006 bit的密钥进行数字签名时,SM2算法安全性级别为破解时间1078MIPS年[5]。

2.3 SM2非对称数字签名的产生及验证原理

SM2非对称数字签名算法即签名方使用签名算法按照选定的曲线参数产生数字签名,验证方使用同样的曲线参数及签名方分发的公钥验证签名合法性的一个过程,具体过程如下:

(1) 参数确定:在素域Fp上选择一条离散的曲线方程y2=x3+ax+b,其中a,b∈Fp,且(4a3+27b2)modp≠0,确定符合条件的方程参数a、b;然后在曲线上选定基点坐标(Gx,Gy)及基点的阶n以及p等参数;

(2) 密钥对产生:使用符合安全要求的随机数发生器在[1,n-1]区间产生一个随机数d,然后计算P=(Px,Py) = [d](Gx,Gy),即可产生密钥对d和P=(Px,Py),其中d为私钥,P为公钥;

(3) 产生签名:签名方首先将待签名的数据M及签名方描述ID信息使用规定的杂凑函数进行压缩得到e,然后使用随机数发生器在[1,n-1]区间产生随机数k,在选定的椭圆曲线方程上计算点(X1,Y1) =[k]G,然后计算r=(e+X1) mod n,再计算s=((1+d)-1*(k-r*d))modn,即可得到签名(r,s),将M及(r,s)发送给验证方;

(4) 签名验证:验证方首先使用选定的杂凑函数将待验证的消息M及签名方描述ID信息进行运算得到e1,然后将收到的签名(r1,s1)进行t=(r1 +s1)modn运算,若t=0则验证不通过;然后再计算(x2,y2)=[s1]G+ [t]P,然后计算R=(e1+x2) modn,检查R是否等于r1即可验证签名是否合法,相等则签名合法,反之则签名非法。

3 基于SNTP协议的授时系统安全防护方案

为了保证协议版本的兼容性及通用性,使用SM2非对称数字签名对SNTP授时协议进行防护时依然采用原有对时协议报文格式及传输模式,只将原来的安全认证数据区替换成SM2数字签名数据,且只考虑由授时服务器到配电终端的单向认证方式,如图2所示,数字签名认证所需的公钥预装到配电终端,对于不具备数字签名验证功能的客户端,只需要按照常规SNTP协议将其进行解析即可,直接丢弃复合报文中的数字签名数据,保证SNTP协议对所有客户端的兼容性[6]。

图2 单向认证示意图

3.1 带数字签名的SNTP对时协议格式

根据V3版本的SNTP对时协议,其原始对时协议报文格式如表1所示,其中Authenticator即为数字签名信息,本方案采用256位长度的数字签名进行防护,即整个数字签名数据的长度为64字节,最后形成如图3所示所示的带数字签名的SNTP复合报文。

表1 SNTP报文结构

图3 带数字签名的SNTP复合报文结构

3.2 SM2椭圆曲线方程的选定

SM2非对称数字签名算法的安全性不依赖于椭圆曲线本身参数的保密,所以这些参数是可以公开的,按照椭圆曲线算法安全性的要求,曲线方程参数选择如下[7](十六进制):

p=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF

a=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC

b= 28E9FA9E9D9F5E34 4D5A9E4BCF6509A7F39789F5 15AB8F92DDBCBD41 4D940E93

n=FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF409 39D54123

Gx=32C4AE2C1F198119 5F990446 6A39C994 8FE30BBFF2660BE1 715A4589 334C74C7

Gy=BC3736A2F4F6779C59BDCEE3 6B692153D0A9877CC62A4740 02DF32E5 2139F0A0

3.3 客户端实现方法

如图4所示,客户端在发起时钟同步时,首先设置liVnMode字节相关数据,然后获取本地时刻作为Orig_T并按照表1所示协议结构组装报文并将其发给时钟服务器;客户端在收到服务器端回复的信息后,首先获取客户端本地的时钟Dest_T,在报文中解析出Orig_T、Recv_T及Tran_T并保存,然后将图2所示SNTP原始报文中的Tran_T数据置0并将其作为数字签名签名接口的待验证信息M1,再将报文中所携带的签名数据r、s解析出来与M1、服务器描述ID及预装在本地的服务器公钥一起作为数字签名验证接口的输入,根据数字签名验证接口返回的信息即可验证授时报文的安全性,若验证失败,则可能是有人冒充系统授时服务器企图对时钟进行非法篡改或者其它攻击,应拒绝本次时钟校核指令;反之若认证成功,说明时钟校核指令安全可靠,计算出时钟偏差后即可对本地时钟系统进行修正,以达到时钟同步的目的。

3.4 服务器端实现方法

当服务器端在收到客户端发来的时钟请求报文后,从报文中解析出报文中所携带的Orig_T时间戳信息,并记录下此时服务器本地的时间信息Recv_T,然后按照SNTP报文格式组装回复报文,即产生出图2所示的SNTP原始报文,先把Tran_T置为0,此时将长度为48字节的SNTP报文数据作为待签名的明文数据,加上私钥数据、服务器描述ID等信息作为输入,调用SM2数字签名接口即可产生出长度总和为64字节的数字签名数据r和s,将签名数据转换成字符串附加在SNTP原始报文后,此时服务器将本地时刻获取并填入Tran_T字段即可得到带数字签名的SNTP复合报文,然后将该复合报文回复给客户端进行时钟核对。

图4 配电终端时钟校核流程图

3.5 应用实例分析

安全防护所需要的相关参数如下:

服务器描述ID:SNTP Server

签名私钥数据(十六进制):71737451 0A39B816 C89DA53C 5B674A13 F98AF03D 35F6C23F F4DB3147 EEFE9F03

验签公钥数据(十六进制):BCE1191 B83A08F8 A9F94C97 4D5E8ED0 80613CC5 4C85CC55 A20030C8 6CC980386 7B24525D 67DC59F2 5B885282 CBDDDD70 DE82575A 1F6136D4 4339E83F 5DEAD063

1) 客户端请求报文实例(十六进制)

1B 00 00 00 00000000 00000000 00000000 0000000000000000 0000000000000000 0000000000000000 D6F608BA00000000

2) 服务器应答过程实例

服务器在收到上述客户端时间请求报文后,首先形成待签名报文如下:

1C 03 00 F4 00000000 00000000 4C434F4C D6F608BA088601C0 D6F608BA00000000 D6F608BA088601C 00000000000000000(十六进制)

然后调用签名接口将上述待签名数据及服务器描述ID产生签名如下:

7a45857015d66e71f454a310f324cd26fb8da7803c23dcb54e2c3a93a9850ca5b1299cbcc134f8609b403aea17706d023d84e986d1d2ea54f33b089d f6aec7ab(十六进制)

最后以服务器当前时标填充Tran_T即可形成复合报文如下,并发送到客户端:

1C 03 00 F4 00000000 00000000 4C434F4C D6F608BA088601C0 D6F608BA00000000 D6F608BA088601C0 D6F608BA088601C0 7a45857015d66e71f454a310f324cd26fb8da7803c23dcb54e2c3a93a9850ca5b1299cbcc134f8609b403aea17706d023d84e986d1d2ea54f33b089d f6aec7ab(十六进制)

3) 客户端处理过程实例

客户端收到服务器答复的授时报文后,首先获取客户端本地的时钟Dest_T,在报文中解析出Tran_T并保存,然后将原报文中Tran_T置0,得到如下报文:

1C 03 00 F4 00000000 00000000 4C434F4C D6F608BA088601C0D6F608BA00000000 D6F608BA088601C 00000000000000000 7a45857015d66e71f454a310f324cd26fb8da7803c23dcb54e2c3a93a9850ca5b1299cbcc134f8609b403aea17706d023d84e986d1d2ea54f33b089d f6aec7ab(十六进制)

然后调用数字签名验证接口将报文1C 03 00 F4 00000000 00000000 4C434F4C D6F608BA088601C0 D6F608BA00000000 D6F608BA088601C 00000000000000000作为待验签名数据,加上公钥数据及服务器描述ID即可验证授时报文是否是由真实可靠的授时服务器发出,从而保障系统授时的安全性及可靠性。

4 结束语

配电自动化系统设备时标的准确性不仅在系统故障的分析和处理过程中起到非常重要的作用,还是配电自动化系统许多智能化应用的基础,在今后配电自动化的发展过程中,系统对所有参与设备时标准确性的依赖将会越来越高,一旦配电自动化系统授时系统遭受到恶意的攻击机篡改,将会对配电自动化系统的安全运行带来严重的影响,使相关智能化功能无法正确运行,甚至有可能给电力系统带来重大损失。因此,必须使配电自动化系统授时的准确性、安全性及可靠性得到充分的保证。

SNTP简单网络对时协议实现较为简单且其对时精度能够满足配电自动化系统应用要求,但是常规SNTP的身份认证方法安全数据区数据量大且其安全性较非对称数字签名低;SM2非对称数字签名技术具有安全性高、计算量较小,使用该算法对SNTP对时协议进行安全防护所形成的安全数据区数据量较小,能够减轻网络传输负担,且其算法容易在硬件性能相对较低配电终端上得以实现,因此使用SM2非对称数字签名技术实现配电自动化系统SNTP对时协议进行安全防护的方法在配电自动化建设中具有很大的工程意义。

[1] 王飞雪.SNTP 协议在嵌入式Linux 中的实现[J].电脑与信息技术,2007,15(2):11-12.

[2] 胡巨,高新华. SNTP对时方式在数字化变电站中应用[J].电力自动化设备,2009,37(3):143-145.

[3] 王勇,岑荣伟,郭红,等. 国家电子政务外网电子认证系统SM2国密算法升级改造方案研究[J].信息网络安全,2012,12(10):83-85.

[4] 王佳昱. 椭圆曲线与实二次函数域的DLP等价 [D].成都:四川大学,2006.

[5] 张志华.非对称数字签名技术在配电自动化系统的应用[J].电气自动化,2012,34(3):39-41.

[6] 国家电网公司.国家电网调[2011]168[S].北京:国家电网公司,2011.

[7] 国家密码管理局.SM2椭圆曲线公钥密码算法推荐曲线参数[S].北京:国家密码管理局,2010.

Time Service Protection Method for the Distribution TerminalBased on Asymmetric Digital Signature

ZHANG Zhi-hua1, CHEN Jun2, LIU Run-miao1, LIU Ming-xiang1, WANG Jun-ren1, WANG Wen-xuan1
(1.State GridNARI Technology Co., Ltd., Nanjing Jiangsu 211106, China;2.NanjingNARI Group Corporation Information Technology Branch,Nanjing Jiangsu 211100, China)

With the development of distribution automation technology, more and more intelligent functions based on the consistency of the system time scale such as interoperability and self-description of devices of the distribution automation system are put into application so that the accuracy and safety of the time scale of the distribution automation system becomes particularly important. Under consideration of time check accuracy, safety and algorithm implementation, SNTP based on SM2 asymmetric digital signature technology is chosen to perform clock calibration of the devices of the distribution automation system so as to ensure the safe and reliable operation of the system.

SNTP;SM2 digital signature;distribution automation; distribution terminal; time service security

10.3969/j.issn.1000-3886.2015.05.025

TM712

A

1000-3886(2015)05-0078-03

张志华,(1987-)男,云南人,国电南瑞科技股份有限公司农电分公司研发主管,主要从事嵌入式linux操作系统内核裁剪、设备驱动、信息安全及通信软件开发工作。

猜你喜欢
数字签名非对称报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析计算机安全防护中数字签名技术的应用
浅析反驳类报文要点
阀控非对称缸电液伺服系统线性自抗扰控制
非对称干涉仪技术及工程实现
基于数字签名的QR码水印认证系统
ATS与列车通信报文分析
数字签名简述
掌握方法用好数字签名