配网终端Web通信安全架构设计

2022-12-23 13:42魏学明
自动化仪表 2022年12期
关键词:通信安全加密算法密钥

李 露,魏学明,李 峰

(1.长园深瑞继保自动化有限公司,广东 深圳 518057; 2.TCL华星光电技术有限公司,广东 深圳 518131;3.深圳市峰泳科技有限公司,广东 深圳 518115)

0 引言

随着信息安全技术的快速发展和国家《能源生产和消费革命战略2016—2030》的逐步推进,配网终端的接入形式呈现出快速多元化的发展特点,开放互动网络环境已形成。同时,配网终端的通信安全面临着前所未有的挑战。目前,配网终端位于现场的各个角落,分布零散,存在较大的集中管理问题,迫切需要一种高效且安全的就地运维Web管理系统,为产品运维管理提供便利。基于传输层安全(transport layer security,TLS)的连接,可以提供Web客户端和服务端之间的保密通信和安全认证。然而,在安全协议设计之初,安全测例覆盖不完全,安全逻辑判断存在缺陷。

1994年,Netscape公司提出安全套接层(secure socket layer,SSL)协议。国内外的专家学者花费了20多年时间对SSL/TLS协议设计和实现问题作出深入研究和总结,提出了旧版本的SSL 2.0协议存在严重的重放攻击和消息完整性认证缺陷[1]。2014年,谷歌发现了在降级时填充Oracle旧版加密,会导致攻击者可以解密加密数据[2]。浏览器在进行SSL握手连接失败后,服务器会进行握手协议版本的重协商,从而导致选择低版本SSL漏洞协议。谷歌再次发现了Poodle攻击,会导致SSL 3.0协商出的会话密钥被劫持[3]。浏览器将生成的预主密钥和随机数通过服务端的公钥加密发送给服务端,而服务端用自己的私钥解密后得到和客户端一样的预主密钥和随机数。中间人攻击能够通过会话劫持将密文劫持,并利用Poodel攻击解密通信密钥。

AlFardan和Holloway提出了针对TLS 1.0改进版本的一种有效的Padding oracle 填充攻击。其中,由错误填充的明文产生的错误消息被用作旁道[4]。通过修改和改进Bleichenbacher在公钥加密算法(rivest shamir adleman algorithm,RSA)PKCS#1.5的填充,给出了新的密码分析,最终能够顺利进行错误信息返回的旁道攻击。Mantin和Fluhrer提出了用于TLS 1.0/2.0/3.0流加密算法(rivest cipher 4,RC4)的对称加密偏差问题,发现字节的偏移存在规律性和周期性[5-6]。这就造成密文数据可以通过规律性和周期性被逆向破解。但目前的难点是攻击获取收集的样品数据需要长达几年的时间。Mantin再次提出了RC4的加密攻击。在某种程度上,此加密算法的破解时间在逐渐缩短,不断靠近RC4算法的时间边界,因此RC4算法是可以破解的[7]。练俊君和魏琳提出了一种电网Web准实时数据的静态安全分析方法,但未对Web的通信安全接入作安全分析[8]。

针对SSL/TLS协议深入研究,本文设计一种受TLS和国密算法保护的配网终端Web安全通信架构。该架构通过国密算法的安全性征求意见稿(request for comments,RFC)标准密钥分发和数据加密的高效性,弥补了未来RFC安全标准的不确定性,重点提高了Web安全通信架构在抵抗消息篡改、中间人、违法窃听、重放攻击等方面的能力。

1 相关研究

密码算法的发展和应用尤为重要,我国也提出了较为安全的密码算法。表1为典型算法列举。密码算法主要分为三类:对称加密算法实现应用报文的加密,解决Web交互报文的安全性;非对称加密算法实现密钥协商分发加密、SSL证书签名和验签使用;摘要算法实现数据完整性,防止消息被篡改。

表1 典型算法列举

1.1 消息认证

1.1.1 国密算法SM3与安全哈希算法-256

国密算法通过SM3进行消息摘要生成。RFC5246通过安全哈希算法(secure Hash algorithm,SHA)-256进行消息认证。SM3算法采用512位的消息分组,消息摘要长度为256位,需进行多次迭代和填充。而RFC5246是通过伪随机函数、哈希函数、密钥共同生成摘要信息。通过定义数据扩展函数,P_hash(key,data)使用单个哈希函数将密钥和种子扩展为任意数量的输出。

P_hash(key,data) = HMAC_hash(key,A(1)+ seed)+

HMAC_hash(key,A(2)+ seed)+

HMAC_hash(key,A(3)+ seed)+...

HMAC_hash(key,A(n)+ seed)

A(0)=seed

A(n)=HMAC_hash(key,A(n-1))

P_hash同样需要多次迭代,生成所需数量的数据。

1.1.2 比较和分析

SM3是对SHA-256的补充和改进。不同的是,SM3每一轮压缩需要2个消息字。通过表2所示的哈希计算时间可知,两种算法对等量的消息所生成的时间基本相当。

表2 哈希计算时间

1.2 对称加密

1.2.1 SM1与RC4

SM1算法为国密标准的分组密码算法。因SM1算法非公开,仅以知识产权授权的形式存在硬件中,故释放了内存资源,提升了算法安全和效率。RC4作为一种非常高效的加密算法,采用流加密方式,根据明文和种子密钥生成相应的明文流和密钥流。RC4的长度和明文长度是对应的。

RC4算法流程如图1所示。

1.2.2 比较和分析

SM1算法非公开,知识产权授权于硬件,安全性和效率较高。而RC4处理高效,计算简单,二者相结合可相得益彰。

2 安全架构设计

2.1 安全架构概述

安全属性主要在链路层之下和传输层之上实现。安全层完成服务链接、密钥协商、身份认证。国密硬核对协议栈的入口和出口数据进行解密和加密,软硬件加密相结合,为消息的不可窃听提供重要保证。同时,安全架构也保证了消息非法篡改、非法冒充、非法抵赖等安全属性。根据不同的安全属性,可采取不同的安全攻略。通过证书认证、伪随机数、SHA-256、SM1、RC4,可分别解决欺骗、重放、篡改、窃听攻击等问题。

安全架构如图2所示。

2.2 TLS握手协商

TLS协议完成三个方面的功能:首先,允许对等方达成一致记录层的安全参数;其次,实例化协商后的安全参数;最后,进行安全认证并报告错误。握手协议负责协商会话,包括会话识别、实体证书、消息摘要方法、加密规范、主密钥商定等[9]。

统一安全协议版本后,选择加密算法,并允许客户端和服务器验证其对等方是否计算了相同的安全参数。于是,通过公钥加密产生会话的共享主密钥[10-11]。

协商流程如图3所示。

2.2.1 认证流程

证书认证通过第三方认证机构实现,支持证书撤销列表或证书状态更新信息。证书格式采用标准的X.509V3格式,能确保其正确无误地由第三方受信任证书颁发机构签名[12-13]。选择和添加受信任的证书机构(certificate authority,CA)应异常小心,确保用户证书、中间证书、根证书路径的绝对安全。

进行服务器身份验证时,其证书消息必须提供有效的签名。经过身份验证的客户端必须向服务器的每一方负责验证另一方的证书有效且未过期或被吊销,继而保证身份认证,以避免中间人身份攻击。认证流程是通过证书吊销列表(certificate revocation list,CRL)和证书在线状态协议(online certificate status protocol,OCSP)进行身份认证。CRL机制实时性较差,证书吊销或未过期存在空档期。OCSP能够很好地解决CRL的实时性问题,但仍需要多次和CA通信确认证书的有效性。这就造成用户的敏感数据泄漏、验证负荷增加。

Web通信安全架构的OCSP装订技术,能够很好地解决上述隐私数据泄漏和负荷增加问题。Web服务器自行查询并缓存响应带有CA中心签名的结果,有效解决了隐私数据和证书查询负荷问题。

证书认证流程如图4所示。

2.2.2 会话密钥产生

会话密钥的分发尤为关键,能够保证通信实体的会话安全。会话密钥产生如图5所示。

Web通信安全架构为提高密钥分发的效率和安全,协商了可基于RSA或迪菲赫尔曼(Diffie Hellman,DH)算法预主密钥PreMasterKey的产生。基于以上所述的握手协商,通过双方的预主密钥PreMasterKey和伪随机数Random即可算出会话主密钥MasterKey。

2.2.3 加密流程

安全架构采用对称加密和非对称加密两种体制。RC4加密是一种高效的流加密算法,密钥长度可变[14]。因RC4不对明文进行分组,而用密钥生成与明文一样长短的密码流对明文进行加密,具有处理速度快的优点,在通信领域广泛应用。加密/解密流程如图6所示。

专家Fluhrer、Mantin、Shamir也指出RC4密钥调度算法存在缺陷[15]。但该研究仅停留在理论阶段,没有实际的攻击案例,理论和实际还存在较大差距。

RC4加密/解密原理简单。首先,通过密钥调度算法(key scheduling algorithm,KSA)和密钥进行初始化S状态。然后,将伪随机数子密码生成算法(pseudo random generation algorithm,PRGA)通过KSA初始化,生成随机的等长密钥流。

为解决RC加密所存在的安全性和后门问题[16],Web通信安全架构的最底层添加了国密硬核模块。其目的是通过国密硬核模块的非公开源码,保障Web通信的安全性和高效性。

3 安全性分析

本小节针对Web安全通信架构所面临的消息欺骗、消息篡改、重放攻击、窃听攻击进行深入分析说明。

①消息欺骗。

安全架构采用证书管理方式进行双向认证。证书实体与CA中心进行身份绑定,能够确定唯一通信实体身份。一旦恶意用户闯入,网络安全事件能进行告警并记录日志信息。证书信息通过CA中心签名,并由客户端进行用户证书、中间证书、根证书的链式逐条验证,保证了证书信息的正确性。

②消息篡改。

通信过程中,基于安全协商好的密钥,采用SHA-256算法生成应用数据的信息识别码。攻击方在没有安全密钥的情况下,无法将应用数据生成密钥哈希信息识别码(the keyed-Hash message authentication code,HMAC),从而无法篡改所发送的消息。再者,媒体存储控制(media access control,MAC)位址密钥的长度要远远长于主密钥,即使主密钥被破解,消息仍能保持完整性。

③重放攻击。

安全架构设计为了防止消息的重放攻击,添加64 bit的消息序列号和时间戳机制。接收方通过序号和消息内容的时效性来判断是否存在重放攻击,并进行业务数据流调整。

④窃听攻击。

电网数据尤为重要。因涉及位置开关操作和电网用户用电习惯信息,安全架构通过RC4和SM1加密相结合的方式,保证了数据的绝对安全。黑客在没有会话主密钥和MAC密钥的前提下,无法对应用报文数据信息进行窃取。所以,Web安全通信架构能够完全抵抗窃听攻击。

⑤中间人攻击。

假设中间人能成功潜伏到客户端和服务端通信链路中监听出口数据,但因无法破解国密知识产权授权的SM1的密文,其无法作为中间人正确响应。再者,Web服务端集成的OSCP所缓存的CA签名证书信息,因为有CA签名的安全性保证,中间人无法攻击。

4 比较和验证

本小节从算法的比较测试和安全效率两方面进行阐述。通过相关的数据指标,重点突出通信安全架构的安全性、效率性。

4.1 比较分析

为提高算法比较可靠性,本次测试平台为DSP 138 VxWork平台,硬件主频100 MHz,TLS软件实现版本为1.2。考虑到不同浏览器Http get的最大长度不同,存在2 KB和6 KB的限制区别,故本文选择的算法测试长度分别为1 KB、10 KB、100 KB。

通过测试函数入口和出口的时间戳记录,可以将二者的差值记为加密和解密时间。加密解密时间如表3所示。

通过表3的实测数据可知,随着消息文本的增加,加密时间是递增的,而非线性关系[17]。尤其是在消息文本较大时,更能凸显国密SM1算法的优势。加密和解密算法时间基本持平,体现出算法的对称性。按照Http get的一般数据量不超过2 KB计算,RC4和SM1硬软件混合加密,能够满足Web访问的安全性和访问效率。

4.2 安全验证

根据Web通信安全架构设计,对配网终端PRS-3342 Web进行安全访问验证。其在密钥协商层面体现效率优势。通信测试环境如图7所示。

通过网络协议嗅探器可知,密钥的协商和分发过程仅仅需要6步即可顺利完成,总字节长度在160 B。而相比于专家林楠和陈祚松方案的1 000 B传输长度,其提升了6倍的协商效率[18]。业务交互通过App data数据进行了端到端的加密,能够发挥通信的机密性,防止窃听。协议栈出口数据在国密硬核模块进行二次加密,发挥了国际标准和国密标准安全的双重属性。

5 结论

本文提出了受传输层和国密算法保护的Web通信安全架构。该架构基于对称加密、非对称加密理论,将国密算法和RFC标准算法深度融合,通过高效的密钥协商和安全认证,分析、验证了其安全性和高效性,提高了配网终端Web安全接入能力,保证了通信的完整性、安全性、不可抵赖性。同时,配网终端的批量化商用深受国外用户的好评,为配网终端Web安全和仪表安全接入提供参考。

猜你喜欢
通信安全加密算法密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
基于整数矩阵乘法的图像加密算法
基于混沌系统和DNA编码的量子图像加密算法
TPM 2.0密钥迁移协议研究
数据加密技术在计算机网络通信安全中的应用
一种对称密钥的密钥管理方法及系统
混沌参数调制下RSA数据加密算法研究
浅析电力系统通信安全措施
基于小波变换和混沌映射的图像加密算法