配电网数据加密认证方案的设计与分析

2017-09-23 21:53邓伟闻楷张浩张鹍
软件 2017年6期
关键词:子站公钥密码

邓伟+闻楷+张浩+张鹍

引言

配电网是智能电网整体架构中最关键的组成部分,是连接配电主站和配电终端并实现配电自动化业务的重要桥梁。随着信息化与工业化的融合,配电网建设和运行管理自动化水平大幅度提升,无线通信等新技术迅猛发展,也给配电自动化系统引入更多安全漏洞,加之攻击手段不断升级,配电网面临的安全风险也在不断增加,信息安全形势日益严峻。而配电数据作为配电网的基础,需要有效的安全防护措施来保障配电自动化业务正常运行。

1配电网数据安全防护现状

为了满足电力行业关于配电网信息安全防护的要求,在数据的安全防护方面,目前采取的主要措施是通过对称密码算法实现对敏感数据的加密、以及使用非对称密码算法实现数据加密密钥的协商、数字签名认证,以增强对数据的机密性、认证性的安全防护;在网络安全协议的方面,文献分别提出了使用安全套接字(SSL)协议,IPSec协议来实现数据的安全封装与传输。上述的安全方案和协议,无论是非对称加密算法还是数字签名技术,均属于传统的公钥密码体制(Public-Key Cryptog.raphy,PKC),在实际的应用中,都需要解决公钥的管理问题。目前,针对PKC密码体制的通常做法是通过建立一个公钥基础设施(Public Key Infra.structure,PKI)来为合法的网络节点颁发数字证书,以实现节点身份与其公钥的绑定。但是PKI本身是一个十分庞大而复杂的系统,特别是当网络节点数目急剧增长时,就会给PKI证书的存储和管理带来极大的负担。在配电网中,当主站和终端的通信距离较远时,证书的上传下载、验证等过程就会造成较大的通信开销,从而影响配电业务的实时性。

基于身份的密码体制(Identity-Based Cryptog.raphy,IBC)的出现,解决了PKC密码体制的公钥管理问题,原因在于IBC密码体制保证了节点身份与其公钥的自然一致性。但在IBC密码体制中,存在密钥托管和密钥分发的问题,这在一定程度上限制了IBC密码体制的大规模使用。但对于小型的配电区域,如子站和终端的通信网络,目前已经提出了基于IBC密码体制的配电终端设备认证方案。目前,国家密码管理局于2016年正式发布了基于IBC体制的SM9密码算法标准,这意味着使用IBC密码体制设计配电网安全通信方案满足了电力行业推荐使用国密算法的需求。

本文拟根据配电网的网络结构和通信方式的特征,并结合PKC体制较为成熟的优点和IBC体制公钥管理方便的优点,设计一个基于PKC和IBC体制的数据加密认证方案,预期应满足节点身份的认证性、数据的机密性、完整性、不可否认性的安全性目标。

2配电网数据加密认证方案的设计

2.1配电网加密认证方案的总体设计

目前,配电自动化网络采用了三层的网络结构,即配电主站、配电子站、配电终端3个层次。其中,配电子站属于可选项,位于配电网的中间层,在配电网中起着承上接下作用。在由配电主站直接管控的区域(下称“主站所辖区域”),直接采用“主站.终端”的通信方式,对于非主站直接管控的区域(下称“子站所辖区域”),采用了“主站-子站-终端”的通信方式。

根据配电网结构以及通信方式的特点,本文提出了基于“PKC+IBC”的数据加密认证方案来实现配电业务数据的安全防护。该方案的特点是:在主站与其所辖区域内的终端以及所有的子站采用了PKC密码体制来实现节点间的数据加密认证;对于设置有配电子站的区域,采用了IBC密码体制来实现该区域子站和终端的数据加密认证。则基于“PKC+IBC”的数据加密认证方案的总体架构如图1所示:

图1实际上给出了两种终端配电的情形,对于主站所辖区域内的终端,直接采用基于PKC的数据加密认证方式;对于子站所辖区域内的终端,采用了如图1所示的基于PKI+IBC的两层加密认证结构:第一层是主站和子站(或主站所辖终端)的加密认证,采用的是基于PKC的加密认证技术;第二层是子站和终端的加密认证,采用的是基于IBC的加密认证技术。可以预见,由于第二层加密认证方式采用了基于IBC的密码体制,不需要使用数字证书来保证终端身份和公钥的一致性,将显著减轻PKI系统的数字证书的管理负担。

因此,对于主站所辖区域内的终端配电业务,应采用基于PKC的加密认证方式;对于子站所辖区域的终端配电业务,采用了PKC+IBC的加密认证方式,相应地,子站应同时配置基于PKC的安全模块和基于IBC的安全模块。下面将对这两种通信方式分别设计相应的加密认证方案。

2.2基于PKC的加密认证方案的设计

该方案适用于使用PKC密码体制和PKI数字证书的主站与其所辖区域内终端以及子站之间的安全通信场景中。所涉及的密码算法有:对称密码算法,包括加密算法E1与相应的解密算法D1;非对称密码算法,包括加密算法E2与相应的解密算法D2;数字签名算法,包括签名算法S与相应的验证算法V,相应地,对于节点U,其加密证书和签名证书分别为Certtn,Certm,加密公私钥对和签名公私钥{QUl,Su1}和{QU2,Su2)。设该方案通信过程的发送方(通常指主站)和接收方(通常指子站或终端)分别记作A和B,则其加密认证过程如下:

(1)A向B发送配电控制请求信息M,请求内容包括B的加密证书和签名证书;

(2)B向A发送回应消息,其中,是B签名的时间戳,是B的签名;

(3)A先验证的有效性,然后验证的有效性;验证通过后,使用随机产生的密钥K加密配電指令M得到Cl=E1(K,M),并使用B的公钥Q1加密K得到C2=E2(Q2,K);最后,使用A的私钥S2对密文C=(C2,C2)以及A证书CertA2、时间戳T进行签名得到并将数据发送给B;

(4)B验证C和T的有效性,然后判断tagA的有效性;验证通过后,则使用私钥S1解密C2,得到K=D2(S1,C2),最后,使用K解密C,得到M=D2(K,CI),通信结束。endprint

对该方案的补充说明如下:

i.以上过程涉及到数字证书的验证,应包括离线的证书信息的正确性检查和在线的证书状态的有效性检查;

ii.在对称加密算法的选择上,宜采用国密算法,如SMl,SM4以及祖冲之算法(ZUC),其中,SMl和SM4属于分组密码算法,ZUC属于序列密码算法[1引。在加密模式的选择上,宜采用计数器模式(CTR),以提高加解密效率并增强语义安全性;

iii.非对称加密算法和数字签名算法宜采用基于ECC机制的密码算法,如SM2加密算法和SM2签名算法。采用ECC机制的密码算法时,目前推荐的安全的密钥长度至少为160比特;

iv.对于上述步骤(3,4),可以加入一个整数Ⅳ作为该通信过程的警戒阈值,若验证失败的次数达到了Ⅳ,则认为存在DoS攻击,此时应终止本次通信,并发出告警信息。

2.3基于IBC的加密认证子方案的设计

该方案仅适用于采用IBC密码体制的子站与其所辖区域内终端的安全通信场景中,由于配电业务需要主站参与,因此本方案需要结合2.2基于PKC的加密认证方案一起使用,因此这里设计的仅仅是2.4基于PKC+IBC加密认证方案的子方案。

本方案涉及的密码算法有:对称密码算法,包括加密算法且与相应的解密算法D1;基于身份的加密算法(以下简称IBE),包括加密算法E2与相应的解密算法D;基于身份的签名算法(以下简称IBS),包括签名算法S与相应的验证算法V。此外,本方案还涉及一个可信的PKG(Private Key Gen.erator),并配备有严格的安全防护措施,为便于设备管理,可将PKG置于子站侧,并设置物理隔离,防止子站获取PKG的非法权限。则PKG的初始化和节点密钥的生成过程如下:

(1)系统参数的生成。以安全的参数作为输入,生成系统主密钥MSK和系统公钥PK,该过程由PKG完成,对外公开系统公钥PK,并秘密地保存系统主密钥MSK;

(2)节点公私钥的生成。节点公钥由节点ID和公开的公钥计算函数计算得到,设IBE公钥计算函数为H,IBS公钥计算函数为H2。则节点U的IBE公钥为Qul=H(ID),IBS公钥为Qu2=H2(IDU)。而节点U的IBE私钥S1和IBS私钥S2由PKG秘密生成,并通过安全的方式返回给对应的节点。则节点U拥有两个公私钥对,即。

设配电通信的发送方(通常指子站)记为A,接收方(通常指终端)记为B,则通信过程如下:

(1)A先产生一个随机的密钥K,对配电指令M加密得到;然后计算B的公钥Q并加密K得到C2=,最后,使用A的私钥S2对密文C=(C1,C2)以及A的签名时间戳T进行签名得到tagA=s,并将数据发送给B;

(2)B先验证时间戳T的有效性,然后验證tagA的有效性,验证通过后,则使用B的私钥S解密C2得到K=D2,并使用K解密Cl,得到M=D,通信结束。

对该方案的补充说明如下:

i.终端节点身份的注册问题。当终端节点部署到子站所辖区域时,应向子站提出注册申请,再由子站代理向主站提出终端注册申请。该过程由专职的运维人员离线完成。

ii.PKG系统参数的生成和节点私钥的分发过程由专职的运维人员离线完成。而公钥不需要在在线传送,节点可以根据身份ID自行计算;

iii-在IBE、IBS的选择上,宜采用国密标准SM9加密算法和SM9签名算法;

iv.在对称加密算法的选择上,宜采用国密算法,如SM1,SM4以及祖冲之算法(ZUC),其中,SMl和SM4属于分组密码算法,ZUC属于序列密码算法。在加密模式的选择上,宜采用计数器模式(CTR),以提高加解密效率并增强语义安全性;

V.对于上述步骤(2),可以加入一个整数Ⅳ作为该通信过程的警戒阈值,若验证失败的次数达到了Ⅳ,则认为存在DoS攻击,此时应终止本次通信,并发出告警信息。

2.4基于PKC+IBC的加密认证方案的设计

此方案适用于配置有子站作为中间节点的主站与终端的通信过程。该方案是对2.2和2.3的结合。设主站、子站、终端分别为A、B、c;则主站到终端的配电通信过程如下:

(1)A向B发送配电请求消息;

(2)B向A发送回应消息,该消息包括B的公钥证书及B的签名值;

(3)A使用基于PKC的加密认证方案封装配电控制命令,并发送给B;

(4)B对A发来的数据进行验证.解密,得到配电控制命令,然后使用基于IBC的加密认证方案封装该配电控制命令,并发送给c;

(5)c采用基于IBC的加密认证方案对子站发来的报文进行验证一解密等过程,得到来自主站的配电控制命令,通信结束。

上述步骤是对方案2.2和2.3的结合,为避免重复做了简化叙述,步骤(1,2,3)和(4,5)应分别按照方案2.2和2.3严格执行。

3配电网数据加密认证方案的分析

本部分将结合配电网的具体应用环境对第2部分提出的加密认证方案进行安全性与通信效率分析。

3.1安全性分析

这里从节点身份的认证性,数据的机密性、完整性和不可否认性等角度来讨论本方案的安全性。

3.1.1节点身份的认证性

对于节点身份的认证,本文采用了签名认证的方式。方案2.2和2.4采用的公钥密码体制不同,其签名认证的过程也有区别。

首先,分析方案2.2基于PKC的加密认证式。该方案有两次签名认证的过程:①B签名A认证的过程(方案2.2的第二、三步);②A签名B认证的过程(方案2.2的第三、四步)。下面以签名认证过程为例,说明节点身份认证的安全性。

对签名认证过程而言,攻击者E的目标是冒充B的身份和A取得后续的通信,E可以通过截获篡改的方式来达到该目的。endprint

该过程B发给A的数据为A在接收到该数据后,会检查B的证书有效性,包括证书持有者身份的检查,CA签名值的验证等过程。故攻击者E为了冒充B的身份,只能提供B的合法证书,否则就会在证书检查阶段被A发现。接着A验证B的签名值有效性,由于E没有B的私钥,故不能伪造B的合法签名。因此,该签名认证过程是安全的,A能确信数据(CertRl llCertB2 II%lltagB)确实来自B,故该过程实现了A对B的单向认证。

同理,签名认证过程②实现了B对A的单向认证,因此,该方案提供了节点A和B身份的双向认证。

然后分析基于PKC+IBC的加密认证方案。基于PKC+IBC的加密认证方案以方案2.2为子方案,因此下面重点讨论2.3基于IBC的加密认证子方案的身份认证性。

在基于IBC的加密认证方案中,签名认证的过程只有一个,即A签名B认证的过程。该过程A发给B的数据为(C1 Il C2 llIDAll玖lltagA),B接收到数据会检验ID字段是否是A的IDA,然后计算A的IBS公钥乏lA2,然后验证签名值tagA的正确性。同样,在此过程中,攻击者Eve的目标是冒充A的身份,因此,攻击者E只能发送A的身份IDA,但由于E没有A的IBS私钥瓯:,故无法伪造A的合法签名。因此,B能确信数据(q ll C2 llIDAll曩lltagA)确实来自A,故该过程实现了B对A的单向认证。3.1.2数据的不可否认性和完整性

本方案采用了数字签名技术来保证数据的不可否认性和完整性。其中方案2.2有两次基于PKC的签名操作,方案2.3有一次基于IBC的签名操作。尽管两者使用的密码体制不同,但其本质都是一致的,都属于非对称密码体制,只有使用签名者独有的私钥对才能对消息产生合法的签名,并且只有使用签名者的公钥才能验证该签名的正确性。因此,下面仅以方案2.2中节点A签名B验证的过程来说明数据的不可否认性和完整性。

所谓的不可否认性,是指节点在事后不能否认其数据的生成、签发、接收等行为。在A签名B验证的过程中,是由A在时间内生成的用自己特有的私钥对消息的数字签名,由于该私钥只有A知道,因此其他人不能生成该签名,当B接收到该数据时,就可以使用A的公钥验证该签名值的正确性,验证通过后,B就能确定该消息是A在T时间内生成并签发的数据,因此A不能在事后否定自己发送过该消息。关于节点B接收的不可否认性,则需要结合其他非密码学的手段来保证,如日志审计系统等。

对于完整性,攻击者E可以对数据中的任意字段甚至任一比特进行删除、替换或重排序等非法的操作。假设攻击者在不知道签名者A私钥S的情况下,对上述数据进行了篡改,那么B在执行签名验证算法V时,必然会得出FALSE的结果,从而得知当前的数据完整性遭到破坏。反之,若签名验证通过,则B就能确信该数据是完整性的。

3.1.3数据的机密性

本文的方案2.2和2.3均采用了数字信封技术来保证配电控制命令M和对称密钥K的机密性。对消息M采用对称加密算法E1和密钥K加密得到C1,并采用非对称加密算法E2和接收方公钥对K加密得到C2,则数据就构成了一个数字信封。当然,数据的机密性取决于加密算法E1和E2的安全性。对于E1的选择,本方案推荐使用国密标准算法SM1、SM4或ZUC算法,并使用CTR模式以增强明文的语义安全性;对于E2的选择,推荐使用基于ECC的国密标准算法SM2或SM9。

攻击者E的主要目标是获取M的相关信息或者解密C1得到M。

对于获取M的相关信息。由于每次加密使用的密钥K不同,所以M会被加密成不同的密文。且本方案提出CTR模式,使得M的不同明文分组会被加密成不同的密文分组,从而屏蔽了M的结构信息。因此,攻击者E通过若干次通信过程截获的密文C1不能确定M的有效信息。

对于解密C1得到M。此时攻击者E需要获取相应的解密密钥K,E可以通过解密来C获取密钥K,又或者使用穷举密钥攻击来获取K。显然,E没有接收方的私钥S故不能解密G获取密钥K。而当E使用穷举密钥攻击时,当解密结果的语义正确时,才认为攻击成功。然而本方案所推荐的国密算法,SM1、SM4以及ZUC算法,其密钥长度都达到了128位,满足了目前抵抗穷举密钥攻击的安全需求。因此,综上所述,本方案保证了数据的机密性。

事实上,目前数字信封技术已经在安全电子交易协议(Secure Electronic Transaction,SET)中得到应用,并历经了实际应用环境的安全性检验。

3.1.4抗重放攻击和DoS攻击的安全性

关于重放攻击。攻击者E攻击方法是截获发送方A的一段有效的消息,在一段时间后,在向接收方B重新发送此消息,该消息就能通过B的签名验证。在本方案中,通过在被签的消息中加入时间戳T,再进行数字签名,则接收方B在接收到消息之后首先验证T的有效性,才進行后续的验签一解密过程,从而避免重放攻击。

关于拒绝服务攻击(DoS)。攻击者E在消息的传输过程中对其进行篡改或伪造行为都会导致接收方B无法验证签名的正确性。如果攻击者E恶意破坏数据,或向B发送大量无效的数据,就会导致B耗费大量的计算资源,从而达到拒绝服务的目的。在本方案中,通过适当地引入一个警戒阈值N,要求在一定时间内,若签名验证失败的次数超过N,就认为有攻击者在实施DoS攻击,此时就应该放弃本次通信,从而降低DoS的危害。

3.2通信效率分析

由3.1的安全性分析可知,本方案实现了配电网节点身份的认证性,数据的机密性、完整性和不可否认性的安全性目标。且由于本方案对配置有子站区域的终端配电通信过程采用了PKC和IBC结合的加密认证方式,由于不需要维护该类终端的数字证书,将有效降低PKI的证书管理负担。因此,下面在讨论可用性时,重点考虑本方案通信效率。endprint

分两种情况来讨论本方案的通信效率问题,即:(1)对于主站所辖区域内的终端所采用的基于PKC的加密认证方式;(2)对于配置有子站的终端节点所采用的基于PKC+IBC的加密认证方式。

分析第(1)种方式。首先,在通信的轮数上,方案2.2需要3次数据的传送过程,即:A向B发送配电控制请求消息;B向A发送B的数字证书;③A向B发送配电控制命令,接收方通过“验签.解密”的过程来获得相应数据,并将反馈信息签名之后发送给发送方的过程。该通信过程如图2所示:

其次,考虑通信带宽问题。主要分析消息和的数据长度,消息的内容为包含两个证书,一个时间戳和签名值。消息的内容为,包含了一个数字信封、证书、时间戳和签名值。IETF RFC 2459指出DSA证书和RSA证书的大小均不超过700字节。假设上面的数据均采用160比特(模数)的SM2签名算法,则签名值的长度约为320比特(合40字节),假设配电控制命令M的长度为128比特(16字节),时间戳的长度为8字节,并使用160比特(模数)的SM2加密算法,则数字信封的长度约为128+160+256+128=669比特(合84字节)。因此,消息的长度约为1448字节,消息的长度约为832字节。由于消息中的C,是为了给A提供SM2加密密钥,因此可以考虑使用B的公钥Q(约160比特)代替加密证书C的传输,改进后的消息的长度约为768字节。因此,综上所述,本方案的单次通信的数据量不超过1000字节,可以满足通信带宽的要求。

分析第(2)种方式。首先,在通信的轮数上,方案2.4需要4次数据的传送过程,前三次消息的传送和第(1)种方式完全形同,只是接收方B由终端变成了子站,消息则是子站B向终端c发送配电控制命令的过程。该通信过程如图3所示。

显然,相对于第(1)种通信方式,方案2.4的通信的次数并没有明显的增加。

其次,考虑通信带宽问题。前三次通信的过程数据长度和第一种方式的分析完全相同,这里只讨论消息的数据长度。仍假设配电控制命令的长度为128比特(合16字节),且消息的生成使用了160比特(模数)的SM9加密算法和签名算法,并假设D和T都是8个字节,由SM9加密和签名输出长度可知,长度约为576比特(合72字节),数字信封的长度约为128+160+128+256=672比特(合84字节)。因此,消息的长度约为172字节,远远小于基于PKC加密认证方式的通信数据量。

再次,考虑节点数据处理问题。在方案2.2和2.4中,数字信封的生成过程都与时间戳无关,完全可以使用預计算的方式,特别是子站采用的SM9加密算法大量的计算都与被加密的消息无关,因此,通过预计算的方式可以显著降低在线运算量。对于消息M的加密推荐使用CTR模式,该模式的预计算和并行处理特性也能加快数据加解密速度。

事实上,方案2.4也加强了子站的认证功能,在信号容易受到干扰的通信环境中使用方案2.4,子站就可以对主站发来的报文进行完整性检验,若验证失败,就不再将数据转发给终端。因此,子站起到了数据过滤的作用,通过这种方式,性能受限的终端也可以避免接收过多的无效数据,从而提高了网络的稳定性。

4结束语

本文提出了一个基于PKC和IBC的配电数据的加密认证方案,该方案结合了PKC体制成熟和IBC体制公钥管理方便的特性,能有效缓解现有PKI公钥证书的存储、管理负担。本文针对两种通信场景分别设计了配电网数据加密认证方案,加强了子站和终端的数据认证功能,实现了节点的身份认证性,数据的机密性、完整性和不可否认性等安全目标。本文所提出来的方案,只需要3或4次的数据传送即可安全地将配电数据传送到配电终端,且每次发送的数据均不超过1000字节,满足通信带宽的要求,通过预计算的数据处理方式可以进一步提高配电数据的通信效率。endprint

猜你喜欢
子站公钥密码
密码里的爱
液压平推CNG子站改造为标准CNG子站的建议
密码抗倭立奇功
一种基于混沌的公钥加密方案
浅谈10kV配电自动化系统设计
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
夺命密码
基于格的公钥加密与证书基加密
基于IEC 61850的变电站子站系统建模与实现