电力系统远程监控的安全通信方案
2011-07-03徐迎晖徐晓晖
徐迎晖,徐晓晖
(1.广东工业大学 自动化学院,广州 510006;2.北京华电云通电力技术有限公司,北京 100069)
0 引言
电力系统需要进行远程监控的对象已经构成了一个复杂的网络,通信过程中传输的消息通常是明文形式,监控命令和数据可能会遭到窃听、篡改和恶意伪造等攻击,存在许多安全隐患,有必要采取措施保障通信的安全。
目前大部分智能装置未进行加密处理,它们能够适应的远程监控通信速度约为20Kbps~30Kbps,可供升级利用的冗余资源不多。为尽可能的利用现有投资,安全通信方案应尽量降低升级或附加设备所需的成本,这就要求安全通信所需的额外数据传输开销和运算量要尽可能地小。此外,由于远程监控对象的数量众多且分布广泛,单个对象的功能较为单一,因此在实际应用中,安全通信方案应当进行一定的简化。
这方面已经有许多研究,文献[1]提出一时一密的非对称算法,但是终端需要向主站端请求密钥,存在被窃听的可能。文献[2]提出对104规约进行加密的对称算法,而安全通信要求密钥能经常修改。文献[3,4]分析了应用日趋广泛的GPRS的加密方案,需要认证服务器,投资较大,应用也较为复杂。文献[5]提出用于变电站的加密模块的实现方案,主要用于以太网通信,对于线路上的智能设备和低速通信,可以进行一定的简化。
本文提出一种非对称和对称式结合的安全通信方案,可解决当前电力系统远程监控通信中常见的安全问题。 本方案可在8~16位微控制器上实现,且不更改现有系统的基本结构,具有成本较低和易于升级的特点。
1 系统结构
在现有的电力系统远程监控方案中,一般由主站对各个远程设备进行状态查询,采集遥测量和遥信量,进行分析后向远程设备发送必要的控制命令。改进的系统结构如图1所示,改进的系统尽量保持了现有的系统结构,附加了少量的软硬件资源,用来解决实际应用中常见的若干通信安全隐患。
图1 安全通信系统结构
改进的系统在主站端增加了安全服务器,负责处理一些复杂工作,包括消息的加密和解密、消息认证、以及密钥管理和分发等。远程设备端则附加了安全模块,其性能有限,完成的工作包括消息的加密和解密、消息认证和密钥接收等。主站端的安全服务器和远程端的安全模块之间的通信信道传输的是加密后的信息,其它设备仍保持原有的工作方式,因此对于上层用户来说,安全通信过程是透明的。通信密钥的传输可以通过其它安全信道,如GSM网络、互联网等。考虑到远程监控通信规约中存在许多冗余信息,也可以将通信密钥隐藏在冗余信道中传输。在具体的实现上,本安全通信方案在实现重要功能的前提下,进行了一定的简化。
远程端附加的安全模块硬件性能有限,不能进行高强度的计算,存储容量也较小。为提高运算速度,本方案对监控数据采用对称加密方案,该对称加密方案中的私钥经过非对称加密后进行传输和更换,通信的保密性依赖于非对称方案中的私钥。远程监控端所需的“公钥—私钥”对则由主站系统产生和管理。由于其更换并不频繁,为降低系统的复杂性,非对称方案中私钥可以通过其它安全通信信道发送,或者采取信息隐藏技术利用现有的冗余信道进行传输。
为防止未授权用户的非法操作,远程监控端可对主站所发出的重要指令进行认证。考虑到安全问题的危害性,为降低实现的复杂度,只针对主站发送的消息进行认证。在主站端的安全服务器上设置密钥分发中心,认证过程使用Feige-Fiat-Shamir协议加速认证过程。
为保证数据的完整性,采用数据校验方法检测错误和篡改的发生,对加密数据附加循环冗余码CRC。对于较短的数据帧,将数据和CRC码同时分为多个部分再进行合并。
另外,在主站系统中设计相应的监控记录软件,记录重要的通信数据,并制定一定的操作规范来记录和管理主站的历史操作。
2 加密
本方案中,采用对称加密方案加密监控数据,对称加密采用3DES 64位分组密码算法降低运算量。由于远程监控数据对安全性的要求不十分高,在实际应用中使用2个64位的密钥,密钥的有效长度为112位。3DES密码算法的运算速度快,能够适应监控数据的传输速度。3DES密码算法中所使用的密钥由非对称椭圆曲线密码体制进行加密,并通过主站系统发送给远程监控端,该密钥可随加密的监控数据一起传输,密钥更换可以相对频繁。椭圆曲线密码方案中的“公钥—私钥”密钥对的计算量大,更新周期较长。椭圆曲线密码的计算虽然需要消耗较长时间,但是它的发生频率低,可以将其安排在数据监控的间隙。此加密方案已能够满足实际的保密需求,而且适合低性能低成本的微控制器实现。
通信的保密性依赖于椭圆曲线密码方案中的私钥。定义在有限素整数域GF(p)(p≠2,3)上的椭圆曲线E,其方程描述为:E:y2= x3+ ax+b(mod p)
其中4a3+ 27b2(mod p)≠0。伴随一个附加的点O,称为无穷远点,点集合E可以构成一个有限交换群,而O为该群加法单位元。GF(p)上椭圆曲线点群加法规则可利用“正切与弦”规则给出。
设 P=(x1, y1)∈GF(p),是椭圆曲线E上一个点, 则 -P=(x1,-y1)。
设 Q=(x2, y2)∈GF(p)且Q≠-P,则点加R=P+Q=(x3, y3)的计算公式为:
乘法则定义为重复相加。
ECC建立在基于椭圆曲线离散对数的问题:给定一条定义在有限域GF(p)上椭圆曲线E,一个阶为n的点P ∈E及一个点Q=kP,其中0 ≤ k ≤n-1,确定k。
椭圆曲线密码涉及到的主要算法归结为两类:1)椭圆曲线上点运算,主要为点加、倍点和点积运算;2)有限域上算术运算,主要为模乘与模逆运算。
为有效计算点加,可以利用仿射坐标映射与射影坐标的不同映射关系给出其改进[6]。设xi=Ii及yi=yi=1,2),将它们代入点加的计算式进行计算,则可得新的射影坐标点加公式。1)当P≠±Q时,点加公式为:
2)当P=±Q时,倍点公式为:
计算kP的有效方法是减少k的二进制表示中非零个数。可以将k转换成一个带符号、规范(NAF)的没有任何二相邻接数字是1的二进制形式。然后再将其转换成2w进制形式,称为窗口宽为w的NAF方法,进一步减少整数k中非零系数数量。对于1..2w-1 之间的点乘运算,可以事先计算并存贮,以提高点乘运算速度。根据不同终端内存情况,可选取适当的w值。一个窗口宽度为w的整数k,其表示形式为
通过这种方法,k中非零系数数量可减少约n/(w+1)。
3 认证
考虑到实现的复杂性和安全问题导致的后果作了简化,只针对主站发送的信息进行身份认证,远程监控端可对主站发送的重要指令进行身份认证。在安全服务器端设置密钥分发中心,使用Feige-Fiat-Shamir协议加速认证过程。安全服务器担当两个角色,它包含了可信授权方和将被认证的主站信息方两套软件,软件的操作由不同的权限设置限制。
令I为一个包含了主站信息方身份信息的数据,采用公开的散列函数SHA生成消息摘要。授权方选取两个大素数的乘积n=pq,然后取5个小的j值附加在I后面计算SHA(I:j)。于是授权方利用它所知道的p和q可以确定SHA(I:j)中哪些数有模n的平方根,然后计算出这些数的平方根,这就得到了数v1=SHA(I:j1), …, v5=SHA(I:j5)和它们各自的平方根s1, …, s5。I, n, j1, …, j5这些数是公开的。授权方把s1, …, s5交给主站信息方,主站信息方将它们保密。授权方在计算出平方根和移交了s1, …, s5后,便可以将素数p, q和s1, …, s5废弃。
当远程监控端接收到了一条重要指令,需要对发送方进行身份认证时,它先从授权方获取n, j1,…, j5,然后等待主站信息方发来的身份信息I,收到后计算所有vi=SHA(I:ji), 1≤i≤5。接着主站信息方和远程监控端按照Feige-Fiat-Shamir协议的过程迭代4次,以证实主站信息方知道s1, …, s5。当远程监控方证实了发送方的身份后才开始执行之前收到的重要指令。
相对于远程监控端安全模块的有限计算资源,这个身份认证过程将消耗较多的时间,因此本安全通信方案中远程监控端只对一些重要的指令进行身份认证。
4 密钥分发
本安全通信方案的保密性依赖于椭圆曲线密码方案中的私钥,3DES密码算法中的私钥经过椭圆曲线密码方案加密后进行传输和更换。远程监控端所需的“公钥—私钥”对由主站系统产生和管理。由于其更换并不频繁,为降低系统的复杂性,椭圆曲线密码方案中的私钥可以通过其它安全通信信道发送,如GSM、互联网等。或者采取信息隐藏技术利用现有信道进行传输,如利用通信规约中的冗余信息进行隐蔽传输;
如有以下三种隐藏途径:
1)各种规约(DNP,101)都有链路复位命令,类似握手信号,一般无数据或命令传输时就定期进行链路复位,周期约为10sec~5min。握手验证数据可以设计为一串随机数,平时也是随机数,密钥传输时这个随机数就是密钥;
2)设置定值,如:电流、时间、几种定值同时设置等,因为每次定值设置的数据长度不确定,所以定值长度无规律,信息隐藏存在可能。如:设置几个定值:电流、电压、时间,并附加密钥;
3)对时信息。可将ms域作为密钥传输字节,对于大多数智能设备,一般秒级时间精度可以满足要求,而且密钥传输不是经常进行,大部分时间的对时还是有ms的,对设备运行的影响不大。但是ms最多只能占用16bits,可能不够。这时可将这16bits作为密钥修改的增量,这样保密性有所降低,通信双方的程序也会复杂一些。
以上三种途径可以结合使用,这些冗余信息构成了一个逻辑上的隐蔽信道。
关于密钥的分发过程,远程监控端的初始“公钥—私钥”密钥对由主站通过其它安全信道发送,之后可以利用信息隐藏方式传输新的密钥对。主站先向隐蔽信道发送同步序列,接着发送远程监控端所需的新的密钥对,该密钥对信息使用远程监控端最近一次所使用的公钥加密。然后等待远程监控端的响应,若主站未收到远程监控端的响应,则再重复一次以上过程,若仍不成功则不更改远程监控端当前使用的密钥对,等待下次密钥对更新周期的到来,同时主站端记录此次密钥对更新失败事件。
另一方面,远程监控端则持续检测同步序列,检测到同步序列后,利用最近一次所使用的私钥进行解密获得新的“公钥—私钥” 密钥对。接着向主站发送两次响应信息,该响应信息使用当前主站端公钥加密,并且在其之前先发送同步序列。
5 实现
本方案将涉及复杂计算和管理的功能分配到主站端的安全服务器集中完成,安全服务器的资源容易根据系统规模得到扩充。鉴于成本和复杂性上的考虑,远程监控设备只涉及相对较少的处理。整个安全通信系统易于实现和安装调试。
远程监控设备的安全模块的硬件设计基于8位高性能低成本的XC886微控制器,兼容标准8051处理器,开发成本低,器件可工作于工业级和汽车级温度范围。其计算能力可达到12MIPS,可以满足本方案的需求。对XC886经过一般优化的3DES算法处理速度可适应超过20kbps的数据速率,满足实时数据传输的需求。在实现中为获得较好的性能,对关键步骤采用了汇编语言编程。在对算法进行高级优化后,XC886尚有足够的余量用来处理遥控监测帧的分析和格式转换。
由于XC886性能上的限制,身份认证、椭圆曲线的加密、解密等过程耗时较长,随不同的工作条件在约2s~10s的范围内变动。实际应用中可以利用遥控监测间隙来降低这些方面的影响。在对响应时间要求较高的场合,可在安全模块中采用性能更好的16位微控制器。
另外,此安全模块可附加在已有的智能设备上实现透明的数据传输,最大节省了现有设备的投资。
6 结束语
针对电力系统远程监控通信中常见的安全问题,本文在现有系统的主站端附加了安全服务器,在远程监控端附加了安全模块。采用非对称和对称式加密相结合的安全通信方案,并结合实际需求进行了简化,能够实现安全通信的透明化。本方案可适用于8~16位微控制器,成本较低,易于升级。
[1] 林功平.配电网馈线自动化技术及其应用[J].电力系统自动化,1998,22(4):64-68.
[2] 孙晨.对GPRS在电力系统应用的分析[J].电力系统通信,2003,24(11):38-41.
[3] 宋磊,罗其亮,罗毅,等.电力系统实时数据通信加密方案[J].电力系统自动化,2004,28(14):76-81.
[4] 李惠宇,罗小莉,于盛林.一种基于GPRS的配电自动化系统方案[J].电力系统自动化,2003,27(24):63-65,77.
[5] FRTU P100 User's Guide,P&C Technologies Co.,Ltd.,Korea,2005.
[6] 卢忱,董秀珍,田春鸣,等.基于椭圆曲线密码的分组网通信安全与保密[J].计算机工程,2006,32(21):133-135.