基于改进SM3的配电网络安全网关系统研究与实现
2022-06-24封保占赵学智王世林邓思阳
封保占,张 喆,赵学智,姜 帆,王世林,邓思阳
(1.国网思极网安科技(北京)有限公司,北京 102211;2.国网信息通信产业集团有限公司,北京 100052)
0 引言
随着电力需求的不断增长,电网系统蓬勃发展。智能电网步入了飞速发展时期[1-2]。通信网络[3-4]是实现智能配电网络的关键部分。只有通过安全的通信网络,配电网络才能将控制中心的命令准确地传送到众多远程终端设备。然而,通信网络也带来了许多潜在的危险,如现有配电终端的安全性不足,而待投资的新终端的安全性无法保证。目前,配电网络的通信方式有光纤网络通信、无线网络通信等[5-6]。其中,光纤网络应用广泛、开放性强。数据传输在封闭环境中,不易被攻击,因此安全性强。但是,光纤网络的布线工作量大,物理电路容易损坏,成本也更高。无线网络能灵活调整组网要求,工作量小,改造成本低,移动性和灵活性高于光纤网络。
长期以来,配电网络安全防护措施相对薄弱,网络黑客的攻击手段层出不穷,使得配电网络安全受到极大的威胁。
为此,国内外众多学者对配电网络安全防护进行了研究,并取得了众多成果。陈来军等[7]探讨了信息网络安全对电力系统生存性的影响,并提出了加强智能电网信息安全的具体建议。李增鹏等[8]提出了基于全同态加密技术的加密系统,通过公钥加密保护智能电网的安全。杨鹏等[9]提出了针对智能电网的态势评估模型,可以有效地描述网络安全的态势发展情况。
面对网络安全泄密或随机的黑客网络攻击,单纯的网络安全防护很难保障配电网络的安全。为此,本文提出了一种基于改进SM3的配电网络安全网关系统。
1 配电网络方案设计
配电网络安全网关系统适用于10 kV及以下中低压电网的远程监控和配电网络的安全保护,包括配电主站、垂直通信、配电终端安全防护措施等。其中,配电终端安全防护措施包括安全分区、横向隔离、物理安全防护等。
1.1 系统架构
配电网络安全网关系统架构如图1所示。系统主要包括3个子系统:配电网络防护终端子系统、配电网络交互网关接入区子系统、配电网络主站防护区子系统。
图1 配电网络安全网关系统架构Fig.1 Distribution network security gateway system architecture
配电网络防护终端子系统通过配电加密认证算法,对网络中传输的数据进行加密处理,以确保系统数据安全。配电网络交互网关接入区子系统利用计算机防火墙、数据网关等将配电网络防护终端与配电网络主站相连,保证数据流通的安全性要求。配电网络主站防护区子系统采用基于数字证书的认证技术和基于国内商用密码算法的加密技术,对接收到的数据进行过滤,从而达到安全防护的目的。
1.2 系统功能
配电网络防护终端中发送的所有数据均采用改进SM3加密算法进行加密,从而确保数据流通的安全性要求。
在配电网络交互网关接入区子系统配置功率专用的水平单向安全隔离装置(正、反向隔离装置),在安全分区配置数据服务器,并基于认证算法提升系统安全性要求。通过操作系统、用户名/强密码、动态密码、物理设备、生物特征识别、数字证书等方式,可实现用户身份认证和账户管理。
此外,配电网络防护终端与配电网络主站之间通过物理隔离方式满足网络通信要求,即采用专用光纤网络或无线网络通信。
2 配电网络终端加密数据流
配电网络安全网关系统利用安全芯片实现主站与终端之间的双向传输,从而在物理上满足数据传输的安全性要求。身份验证过程主要是防止以恶意破坏和攻击配电主站系统等为目的、以伪造终端身份和重放攻击为形式的非法操作,从而防止由此引发的配电网络事故。
2.1 核心加密认证硬件方案
在配电网络安全网关系统中集成了加密认证安全模块,且终端主控芯片与安全芯片之间采用串行外设接口(serial peripheral interface,SPI)通信。通信速度在10 Mbit/s以上,且TTL串口稳定通信速度不低于500 kbit/s;在配电网络终端软件中增加了安全芯片的驱动接口和应用接口,使安全芯片可以通过网络端口接收和解密配电网络主站的下行数据,并将解密后的数据通过SPI或晶体管-晶体管逻辑(transistor-transistor logic,TTL)发送到配电网络终端主控芯片。同时,配电网络终端主控芯片向SPI或TTL串口发送上行数据。安全芯片对上行数据进行签名和加密,并将签名和加密后的数据通过网络端口发送给配电网络主站。
2.2 配电网络终端数据流
配电网络终端支持国密算法。此外,在接入区内建立专用通道,实现双向身份认证。主站的控制命令和远程参数设置采用数字签名及数据校验,从而确保数据的唯一性及可靠性。
3 改进的SM3算法
经典SM3算法中,压缩函数主要用于在数据寄存器中完成数据变量的赋值、数据移位和数据读写等操作。然而,随着中间变量和寄存器个数的增加,读写数据寄存器所耗费的时间将呈几何倍数增长。为此,本文将优化中间变量、减少读写数据寄存器的次数,从而减少压缩函数的运算时间。需注意:该方法在提高运行效率的同时不会改变压缩函数的结构。算法具体过程如下所述。
3.1 操作函数
定义布尔函数F(X,Y,Z)和G(X,Y,Z),以及位移函数P0(X,Y,Z)和P1(X,Y,Z),如式(1)~式(4)所示。
F(X,Y,Z)=
(1)
G(X,Y,Z)=
(2)
P0(X)=X⊕(X<<<9)⊕(X<<<17)
(3)
P0(X)=X⊕(X<<<15)⊕(X<<<23)
(4)
式中:X、Y和Z均为32 位的字符串。
3.2 数据填充
为归一化数据,需要对数据进行填充。首先,在数据最后的位置上添加1。接着,在数据中引入k个0。需注意:k为一非负整数,根据式(5)求得。接下来,在数据中添加长度为l的64位二进制字符串数组,最终将数据长度填充为512的倍数。
l+1+k≡448mod512
(5)
3.3 迭代压缩
填充的消息被分组,每组长度为512位。分组消息的编号为B(0)B(1)…B(n-1)。其中,n=(l+l+65)÷512。分组填充的消息按以下方式进行迭代。
for i=0 to n-1
V(i+1)=CF(V(i),B(i))//CF为程序中是压缩函数,V0是初始值,长度为256位
end for
3.4 消息扩展
for j=16 to 67
Wj=P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕
(Wj-13<7)⊕Wj-6
end for
for j=0 to 63
end for
3.5 压缩函数
压缩函数执行过程如下所示。其中:A~H为压缩函数的中间变量;SS1、SS2、TT1、TT2为数据寄存器。256位的输出哈希值为y=ABCDEFGH。
TT1←FFj(A,B,C)+D+((((A<<<12)+E+(Tj<< if j≥16 TT2←GGj(E,F,G)+H+(((A<<<12)+E+(Tj<< else TT2←GGj(E,F,G)+H+(((A<<<12)+E+(Tj<< D←C C←B<<<9 … 本文采用Go语言提供的测试工具对SM3算法性能进行了测试。采用Go语言中内置的性能分析工具pprof显示性能测试过程。首先,在SM3算法的5个函数(即操作函数、数据填充函数、迭代压缩函数、消息扩展函数、压缩函数)中,压缩函数由于存在大量寄存器变量读写操作,故耗时最大。如果压缩函数仅执行单次,考虑到其他函数与压缩函数运行时间不在同一量级,故函数总耗时可忽略其他函数;若多次执行,则函数总耗时不可忽略其他函数运行时间,且随着压缩函数执行次数增多,函数总耗时不断增长。此外,算法总执行时间定义为函数总耗时其他耗时之和。其中,其他耗时包括函数之间相互调用与寄存器间变量读写耗时。为此,研究选取单次压缩函数耗时、函数总耗时以及算法总执行时间为指标,对经典SM3算法和改进SM3算法进行对比分析。研究测试了30次算法执行结果。在测试结束后,使用top命令获取耗时和耗资源排名前8的函数。经典SM3算法与改进SM3算法的性能统计如表1所示。 表1 不同算法的性能统计 与经典SM3算法的运行情况相比,改进SM3算法的总运行时间减少了约26.9%,压缩函数的耗时减少了约28.7%。仿真结果证明,改进方案能有效提高SM3算法的运行效率。 本文通过模拟网络攻击(黑客入侵、木马病毒等),对该系统安全性能进行测试。由于系统运行过程中的认证码及密文都是由改进SM3算法明文生成的,故假定攻击者会同时截获密文和身份认证。如果认证码与改进SM3算法密文之间存在某种相关性,攻击者可以通过统计分析猜测明文。因此,在测试中对密文进行了不同程度的篡改攻击,并利用统计方法分析了密文与认证码的相关性。具体操作如下。 首先,对长度为1 326 B的信息进行篡改测试,每次篡改50 B的密文,直到密文完全被篡改为止。认证码变化曲线如图2所示。 图2 认证码变化曲线Fig.2 Authentication code change curve 由图2可知,改进SM3算法受输入长度的限制,无法一次性完成消息认证操作。因此,本文采用4个并行算法完成认证操作。由于4个并行操作不允许相互关联,所以图2中的曲线显示为逐步上升。每个步骤之间的数据关联越小,数据就越安全。 然后,应用各种网络攻击来验证系统的安全性。 最后,对比了正常通信情况及存在网络安全威胁情况下,系统运行时主站和终端分别发送和接收验证包的数量。网络安全威胁情况下攻击方式包括伪造主站、伪造终端以及数据截获这3种。网络安全验证包的比较如表2所示。 由表2可知,正常数据情况下,主站和终端可有效进行通信。当存在网络安全威胁时,由于加密算法及数字认证机制,使得主站与终端无法进行数据传输,从而保证了网络数据信息安全。 表2 网络安全验证包的比较 本文研究了配电网络中通信网络的安全问题,并提出基于改进SM3算法的配电网络安全网关系统,以提高配电系统的网络安全性。该系统结合光纤网络和无线网络的通信优点,并通过改进的国密算法对通信内容进行加密,以确保数据的机密性和完整性。通过测试分析,改进SM3算法的总运行时间减少了约26.9%,压缩函数的耗时减少了约28.7%,证明了改进方案能有效提高SM3算法的运行效率。同时,本文对比了正常通信情况及网络安全威胁情况下,系统运行时主站和终端发送和接收验证包的数量,证明所提系统能够应对网络攻击来验证系统的安全性。测试结果验证了所提系统在安全方面的有效性及改进SM3算法的运行效率提升。4 验证及评估
4.1 算法运行效率测试
4.2 系统安全性能测试
5 结论