Modbus通信协议是工业控制最为重要的总线协议之一,自1979年开始,PLC一直将其作为工业串行链路的标准,使得不同厂家基于该协议生产的PLC能够互联互通[4]。目前,Modbus TCP通信协议是Modbus的以太网通信协议,其广泛应用在工业、交通、电力、楼宇控制等领域[5,6]。Modbus通信协议作为开放的协议,不涉及到知识产权,因此,在自动化领域得到了广泛应用。然而,在实际应用过程中逐步暴露出了严重的安全隐患[7,8],协议的安全性是其设计之初所没有考虑的因素之一。Modbus通信协议在国内被自动化标准委员会(SAC/TC124)转化为国家标准,进一步促进了其在国内工控领域的普及与应用。由于协议设计之初并没有考虑安全性,因此,攻击者一旦进入工控系统内部的ModbusTCP网络,就可以伪造或篡改协议数据包、窃听网络通信并获取敏感数据[9,10]。本文将基于国产密码算法与国密证书实现ModbusTCP协议的安全防护,从协议的源头杜绝协议数据被伪造、篡改及窃取。
2 Modbus TCP协议安全隐患
Modbus TCP协议工作在TCP/IP的应用层,采用主从通讯模式,其报文格式如图1所示。
图1 Modbus报文结构
Modbus TCP协议是基于TCP/IP协议之上的应用层协议,根据图1可以看出,其安全缺陷有如下几点:
(1)无安全认证机制。任意接入网络的客户端均可以与服务器通信,并可对服务器发送恶意指令。
(2)数据容易被篡改。攻击者可以任意截取数据报文,并篡改相应数据项,实现其攻击目的。
(3)报文无加密机制。Modbus TCP协议以明文方式传输数据,控制类报文及敏感数据容易被攻击者窃取。
(4)容易被重放攻击。Modbus TCP无防重放机制,攻击者可以重复发送截获的数据报文,影响系统的稳定性。
因此,基于以上几方面的安全缺陷,本文提出了基于国密算法与国密数字证书对Modbus TCP协议进行安全防护的解决方案,保证报文信息的完整性和身份的可靠性,实现协议防重放、抗抵赖与防篡改的能力。
3 国产密码及数字证书体系介绍
近几年,我国密码管理局制定了一系列密码算法标准,比较常用的包括SM2、SM3、SM4算法[11~13]等。SM2是非对称算法,SM3是哈希算法,SM4是对称算法。本文基于国密算法实现Modbus TCP协议的安全防护。SM2是数字签名算法,由签名者对数据生成签名数据,并由验证者验证签名数据的可靠性。签名者拥有一个私钥和一个公钥,私钥用来产生签名,公钥用来验证签名。验证者获得签名者的公钥可以验证签名数据。协议的安全认证就需要SM2算法与SM3算法配合实现,可以通过SM3算法对协议数据包计算杂凑值,再利用SM2算法对杂凑值计算签名值。图2是SM2算法数字签名验证过程。
图2 数字签名及验证过程
数字证书系统是PKI体系的重要组成部分,可为工业控制系统中的用户、关键网络设备、服务器提供数字认证服务。数字证书为工控系统与网络关键环节实现高强度的身份认证和安全数据传输提供了安全技术保证。图3为数字证书系统架构。
图3 数字证书体系
基于国产密码算法进行协议安全防护的文献不少,如文献[14]是基于国密SM9算法在变电站通信协议的安全防护,文献[15]是基于SM2算法在变电站站控层协议与过程层协议的安全防护,两者的防护机制类似,都遵循了IEC 62351[16]中的安全机制。而本文采用国密算法与国密证书在Modbus TCP协议层进行轻量级安全防护,对协议的改造比较小,基于国密算法标准自研安全加密组件,不采用及依赖OpenSSL开源安全组件,为后期升级维护提供了极大的便捷。
4 基于国密算法与证书安全协议设计
4.1 Modbus TCP协议安全认证及密钥协商机制
基于Modbus TCP协议通信的客户端与服务端在通信前要进行TCP连接,通常需进行三次TCP握手后完成连接。而基于Modbus TCP协议通信双方也没有身份认证机制,所以本文在客户端与服务端进行业务数据传输前增加安全认证及密钥协商安全流程,为后续的业务数据传输提供机密性、不可抵赖性保护。基于Modbus TCP协议的双向身份认证协议格式设计如下。
(1)认证请求报文
通信双方在建立TCP连接后,客户端向服务端发起认证请求报文,如表1所示。
(2)认证应答报文
服务端收到认证请求报文后,验证通过则向客户端发送应答报文,否则断开连接,如表2所示。
(3)认证确认报文
客户端收到服务端的认证应答报文后,验证通过,则向服务端发送确认报文;否则断开连接,重新建立TCP连接并开始认证过程,如表3所示。
(4)密钥协商请求报文
通信双方完成双向身份认证后,客户端生成随机数利用服务端公钥加密、客户端私钥签名后发送给服务端,如表4所示。
(5)密钥协商应答报文
服务端收到密钥协商请求报文后,对随机数密文验证、解密通过后,将随机数作为双方的会话密钥,密钥协商应答报文格式如表5所示。
图4为客户端与服务端双向身份认证及密钥协商流程设计。
图4 客户端-服务端双向认证与密钥协商
通过上述设计,实现通信双方的双向身份认证、会话密钥协商两个关键流程,正是这两个安全过程保证了后续协议报文传输的机密性和不可抵赖性。
4.2 Modbus TCP协议安全报文传输机制
基于以上Modbus TCP协议完成通信双方的双向身份认证、会话密钥协商流程,杜绝了非法客户端的恶意连接与攻击,而Modbus TCP协议报文的机密性、防重放及防篡改还没有安全保护机制,因此,本文在Modbus TCP协议的基础上增加安全域来保障协议报文的机密性与不可抵赖性,同时应用会话密钥来保护协议报文的机密性。图5为协议增加安全域的报文结构。
图5 Modbus TCP 安全协议
可以看出,对原Modbus TCP协议的协议数据单元采用SM4算法进行加密保护,并在协议的末尾扩展了安全域,安全域采用SM2算法来保证协议报文的完整性、抗抵赖性及防篡改与重放。图6为安全报文交互流程。
图6 客户端-服务端安全报文传输过程
5 仿真实验
5.1 Modbus TCP安全认证时效性分析
客户端与服务端基于TCP协议建立连接,TCP三次握手建立连接后,需要进行双向身份认证与密钥协商,依据测试目的,搭建测试环境,环境配置信息如表6所示。
基于以上的测试环境,验证Modbus TCP协议的安全认证与密钥协商机制,通过建立6次连接并记录相关测试数据,测试结果如表7所示。
通过表7的实验结果可以看出,在原有ModbusTCP协议增加安全认证与密钥协商机制实现通信双方端到端安全认证,由于认证过程主要是SM2签名、验证操作,所增加的时间是毫秒级,平均总耗时约为350毫秒。本文基于SM2算法进行协议层轻量级安全防护,在安全认证与密钥协商方面具有一定的时效性优势,而客户端与服务端的连接操作也并不频繁,因此,在实际工程应用中是可以接受的。
5.2 加密算法时效性
本文基于国密SM4算法对协议报文进行加密,SM4算法在本文测试环境中加解密速率可达1.2Gbps,由于通信双方都需要加密和解密数据包,双方都会增加一定的时间消耗,而SM4算法加解密报文的时间增加为毫秒级,因此报文加解密的效率是可以保证的。此外,通信双方所采用的会话密钥都是动态产生的,因此,加解密报文的机密性是可靠的。
6 总结
近年来,基于工控协议安全漏洞的攻击事件不断发生,而传统的工控协议在设计之初没有考虑协议的安全性,本文基于国密算法与国密数字证书技术对Modbus TCP协议进行安全改造,使其具备相应的安全机制。特别是在协议的通信双方增加身份认证、密钥协商安全机制,实现通信双方的身份鉴别并生成加密密钥;而在协议报文传输前可利用加密密钥对协议报文加密并签名,实现了双方通信的端到端安全认证,同时也杜绝了协议报文在传输过程被窃取、伪造、篡改及重放的可能性。
本文也通过仿真实验,验证了Modbus TCP安全协议双向身份认证的时效性与报文加密的时效性,根据实验结果,增加安全机制的Modbus TCP协议可满足实际应用的需求,可在实际的工程应用中采用协议的认证加密机制。
作者简介
许 艾(1982-),男,河北人,工程师,学士,现就职于北京四方继保工程技术有限公司,主要从事密码学、信息安全、物联网安全等相关领域的研究及应用工作。
刘 刚(1971-),男,四川人,硕士,现任北京四方继保工程技术有限公司研发中心副主任,主要从事电力自动化领域相关产品研发工作,研究方向为网络安全、工控安全、调度自动化主站及电力监控系统安全防护。
徐延明(1973-),男,陕西人,高级工程师,硕士,现就职于北京四方继保工程技术有限公司,主要从事电力系统自动化、工业自动化工作,主要研究方向为工业控制系统信息安全、智能变电站信息安全。
王 闯(1987-),男,吉林人,中级工程师,学士,现就职于北京四方继保工程技术有限公司,从事电力系统通讯相关技术工作。
常 骏(1983-),男,山西人,中级工程师,硕士,现就职于北京四方继保工程技术有限公司,从事电力系统自动化相关技术工作。
参考文献:
[1] 韩正. 智能制造领域工业控制系统网络安全防护研究[J]. 网络安全技术与应用, 2020, (11) : 161 - 163.
[2] 刘冬, 程曦, 杨帅锋, 孙军. 加强我国工业信息安全的思考[J]. 信息安全与通信保密, 2019, (08) : 24 - 35.
[3] 李扬. 新形势下工业控制系统信息安全现状分析与建议[J]. 保密科学技术, 2017, (07) : 32 - 36.
[4] 王玉敏. MODBUS协议簇简介[J]. 中国仪器仪表, 2019, (12) : 21 - 26.
[5] 章恒. 工业互联网安全态势感知技术的应用研究[A]. 天津市电子学会、天津市仪器仪表学会. 第三十四届中国(天津)2020’IT、网络、信息技术、电子、仪器仪表创新学术会议论文集[C]. 天津: 天津市电子学会, 2020. 3.
[6] 刘威, 李冬, 孙波. 工业控制系统安全分析[J]. 信息网络安全, 2012, (08) : 41 - 43.
[7] 贾东耀, 汪仁煌. 工业控制网络结构的发展趋势[J]. 工业仪表与自动化装置, 2002, (05) : 12 – 14 + 11.
[8] 詹静, 杨静. 基于远程证明的可信Modbus/TCP协议研究[J]. 工程科学与技术, 2017, 49 (01) : 197 - 205.
[9] 邹晓峰, 肖远兴. 基于SM2的配电网Modbus报文安全性研究[J]. 电力系统保护与控制, 2018, 46 (12) : 151 - 157.
[10] 邱帆, 陈兰兰, 林楠, 左黎明. 基于SM9的配电网Modbus报文安全性分析及改进[J]. 中国电力, 2019, 52 (10) : 18 - 25.
[11] GB/T 32918.2 - 2016, SM2椭圆曲线公钥密码算法第2部分 : 数字签名算法[S].
[12] GB/T 32905 - 2016 信息安全技术, SM3密码杂凑算法[S].
[13] GB/T 32907 - 2016 信息安全技术, SM4分组密码算法[S].
[14] 许艾, 刘刚, 徐延明. 基于SM9标识密码智能变电站安全防护技术[J]. 自动化博览, 2018, 35 (S2) : 65 - 71.
[15] 张喜铭, 李金, 邱荣福, 许艾. 国密体系在智能变电站的研究与应用[J]. 南方电网技术, 2020, 14 (01) : 39 - 45.
[16] IEC 61850, Communication networks and systems in substation[S].
摘自《工业控制系统信息安全专刊(第七辑)》