1、信息安全研究第10 卷第1期2 0 2 4年1月Journalot information Security ResearchVol.10No.1Jan.2024DOl:10.12379/j.issn.2096-1057.2024.01.04基于国密算法的ModbusTCP协议安全防护与研究祁志荣吕世民郑乾坤11(中安联合煤化有限责任公司电仪中心安徽准南2(宁波和利时信息安全研究院有限公司工程服务部()Security Protection and Research of ModbusTCP Protocol Based onNational Secret Algorithm232092)浙江
2、宁波315048)Qi Zhirong,Lu Shimin,and Zheng Qiankun1(Comprehensive Department of Zhongan United Coal Chemical Co.,Ltd.,Huainan,Anhui 232092)2(Engineering Seroice Department,Ningbo Hollysys Information Security Research Institute Co.,Lid,Ningbo,Zhejiang 315048)Abstract As a simple and efficient Ethernet
3、industrial control protocol,ModbusTCP is widelyused in industrial control systems.However,the traditional ModbusTCP protocol did not considerthe problem of security,which leads to many criminals to attack ModbusTCP through itsvulnerability.To address the lack of identity authentication and integrity
4、 verification in theModbusTCP protocol,a bidirectional identity authentication and data integrity verificationalgorithm using SM2 signature verification is proposed.In view of the lack of data confidentiality ofModbusTCP protocol,the SM4 symmetric encryption algorithm is proposed to encrypt theplain
5、text data.In view of the lack of anti-replay attack mechanism of ModbusTCP,a randomnumber method is proposed to prevent replay attack.Experiments show that the proposed schemecan effectively increase the security of ModbusTCP protocol.Key words industrial control system;ModbusTCP;SM2;SM4;bidirection
6、al identity authentication摘要ModbusTCP作为一种简单高效的以太网工业控制协议被广泛应用于工业控制系统中.但是传统的ModbusTCP协议没有考虑到安全性的问题,导致不少不法分子通过ModbusTCP的漏洞对其进行攻击.针对ModbusTCP协议缺乏身份认证和完整性验证的问题,提出通过SM2签名验签算法实现双向的身份认证并验证数据完整性;针对ModbusTCP协议缺乏数据机密性的问题,提出通过SM4对称加密算法对数据明文进行加密;针对ModbusTCP缺乏防重放攻击机制,提出通过随机数的方式防重放攻击.实验表明所提方案可以有效增加ModbusTCP协议的安全性。
7、关键词工业控制系统;ModbusTCPSM2;SM 4;双向身份认证中图法分类号TP309.2收稿日期:2 0 2 3-0 4-2 5引用格式:祁志荣,吕世民,郑乾坤.基于国密算法的ModbusTCP协议安全防护与研究J.信息安全研究,2 0 2 4,10(1:2 0-2 420学术论文.ResearchPapersModbus协议是工业控制系统最受欢迎的协议之一,但是随着工业控制系统的发展,主站与从站的联系已不能满足与外界封闭的交流方式,因此,Modbus协议逐步与当前主流协议TCP接轨,形成ModbusTCP协议,在保留工业控制系统特点的同时,能够独立于计算机硬件与操作系统,已成功应用到当
8、前的ICS中,提升主站与从站设备的通信效率.然而,协议因为继承TCP协议固有的设计缺陷,使得ModbusTCP协议面临诸多网络攻击的风险,比如中间人攻击,因此,ModbusTCP的安全性成为当前工业控制系统主要提升的领域之一针对Modbus协议的研究,业界已有多种研究方案:Fovino等人(1提出在Modbus协议中加人时间戳和哈希字段,并用私钥加密,该方法能够在一定程度上保证数据的完整性、可认证性和防止重放攻击;詹静等人2 提出一种基于远程认证的可信Modbus协议,实现了通信双方身份和状态的双向认证,保证数据传输过程的完整性和安全性;张波等人3 提出一种椭圆曲线公钥算法,实现身份认证和完整
9、性保护,采用密钥控制通信注册机制与时间戳检测机制组合防止重放攻击;Aamir等人4提出设计加密缓冲器,添加特殊字段检测安全发展和传输过程中的敏感信息,增强传输和加密安全性;Luo等人5提出Modbus增强协议,该协议能够抵御重放攻击和加密关键数据字段,并且确保通信双方都可以被认证,提升工业控制网络的安全性.上述研究虽然弥补了ModbusTCP协议的一些缺陷,但均无法同时满足安全性强和低开销的要求,因此,本文提出基于 SM2 与 SM4加密算法,并经过多组实验对比显示,本文方案在安全性、计算开销和空间开销方面能够得到一定提升.1ModbusTCP协议Modbus协议是由MODICON公司于19
10、7 9年开发的一种工业现场总线协议标准,之后,在1996年施耐德公司推出基于以太网TCP/IP的Modbus协议ModbusTCP.该协议布置于应用层,ModbusTCP数据可分为2 部分,分别为报文头(MBAP)十顿结构(PDU).MBAP长度为7B,由4个字段组成,第1个字段作为报文的序列号,第2 个字段表示ModbusTCP协议,第3个字段表示接下来的字段长度,最后以1个字段表示设备地址;PDU由功能码和数据组成,功能码长度为1B,数据长度由具体功能决定,其报文根据对象不同设置8 个功能码.2ModbusTCP协议安全方案2.1方案介绍ModbusTCP协议安全方案对原始 Modb-us
11、TCP报文进行了改造,在原始ModbusTCP报文中增加了Random字段和 SIGN字段,使其成为ModbusTCP安全报文.本文提出的ModbusTCP安全方案为实现在真实工业控制环境中的1主多从模式,在Modb-usTCP主站中配置了1张含有所连接的Modb-usTCP从站的地址、从站对应的SM2公钥和与从站配置的预共享密钥的预置表.ModbusTCP从站中配置了1张含有主站IP地址、主站的SM2公钥、主站配置的预共享密钥和以功能码作为访问控制内容的预置表,其中,主站配置表中的初始SM2公钥为空.除此之外,为了增加防重放攻击的机制,在主站和从站中配有随机数表,表中记录了每条消息的随机数,
12、为了防止内存开销过大,该表每30 s格式化1次.本文方案分为注册阶段和数据安全传输阶段.在注册阶段,ModbusTCP主站将自身SM2公钥注册到ModbusTCP客户端中的预置表中,以便在数据安全传输阶段通过该SM2公钥进行验签操作,从而验证数据发送方的合法身份.在数据安全传输阶段,本文方案通过预共享的SM4密钥对传输的关键数据进行加密,并对数据进行哈希操作,防止攻击者通过中间人攻击恶意获取数据或篡改数据.通过在注册阶段接收的SM2公钥对数据发送方的身份进行认证,防止攻击者冒充合法身份连人到ModbusTCP网络中.2.2方案流程2.2.1注册阶段在该阶段ModbusTCP主站将自已的SM2公
13、钥传递给ModbusTCP主站,以便在数据安全传输网址 http:/121信息安全研究第10 卷第1期2 0 2 4年1月Journalotinformatien Security ResearchVol.10No.1Jan.2024阶段验证ModbusTCP主站的身份.注册阶段如下:1)M o d b u s T C P主站连接ModbusTCP从站,并通过从站地址在预配置表中获取对应的预共享密钥Key,将Key和自身SM2公钥PK。作为SM3算法的哈希输入生成哈希值Hi,并将PK与H发送至ModbusTCP从站.即SendMsg=PK.+H(PK。I l K e y).2)M o d b
14、u s T C P从站接收到消息后通过Modbus主站的IP地址在预置表中获取对应的预共享密钥Key,并通过接收到的SendMsg中的PK。和Key为输入,通过SM3算法计算哈希值H2,若H和Hi相等,则证明ModbusTCP主站发来的SM2公钥PK。没有被非法篡改,此时,ModbusTCP从站将PK。放人预置表对应的位置.2.2.2楼数据安全传输阶段注册阶段结束后进人数据安全传输阶段.在该阶段对ModbusTCP的关键数据进行安全传输.因为无论是ModbusTCP主站还是ModbusTCP从站,都会接收消息和发送消息,所以在该阶段以发送方和接收方作为主体进行说明1)对于发送方,进行如下操作:
15、发送方随机生成1个16 B的随机数R,并放入ModbusTCP安全报文的Random字段中。发送方通过接收方地址在预置表中获取预共享密钥Key,并运用SM4算法对ModbusTCP报文中的功能码、数据域和随机数R进行加密生成密文C1,即C,=Ekey(Function Codell Data Il Random).发送方通过自身私钥对密文C1进行签名S1,即Si=SIGsk(C),并将签名Si放人ModbusTCP安全报文的SIGN字段中,之后发送方将ModbusTCP安全报文发送至接收方。2)对于接收方进行如下操作:接收方接收到发送方发送的ModbusTCP安全报文后,通过地址在预置表中找到
16、发送方对应的预共享密钥Key和公钥PK.通过PK验证签名S1,若签名验证通过,则在证明消息发送方合法身份的同时,还验证了发送数据的完整性.若身份认证通过则进行下一步,若签名验证不通过,则丢弃此消息。221若发送方身份验证通过,则通过预共享密钥Key解密密文Ci,获得明文P1,即Pi=Dkey(C).由于在上一步中已经对发送方身份和数据完整性进行了验证,则此时:Pi=Function Code ll Data Il Random.将Random字段中的随机数R与随机数表中的数据作比较,若R在随机数表中,则证明此消息为重放的消息并丢弃.若R不在随机数表中,则将R放入随机数表中,并通过功能码和数据作
17、出相应的操作若接收方为ModbusTCP从站,则将主站发送的功能码与本地预置表中的允许访问的功能码进行比对,若允许访问则进行下一步,否则丢弃该报文.2.3方案安全性分析1)中间人攻击.由于原始ModbusTCP协议在数据传输过程中数据以明文形式传输,因此攻击者一般通过中间人攻击获取传输的数据,导致数据的非法泄露和非法篡改.ModbusTCP安全方案通过SM4算法对传输的数据进行加密,此时攻击者通过中间人攻击获取到的为密文信息,由于SM4密钥在编码阶段就预编码到系统中,所以敌手无法获取此SM4密钥,从而无法破解密文.2)身份认证.由于原始的ModbusTCP协议不具备身份认证功能,即任何实体都可
18、以充当为合法的身份加入到ModbusTCP网络中,接收方将所有接收到的消息都认作合法消息,造成数据非法泄露和操作非法指令等.本文的ModbusTCP安全方案通过SM2算法用SM2私钥对消息进行签名,接收方接收到消息后先通过SM2公钥进行验签,由于私钥只存在于合法身份中,所以若验签通过,证明该消息是合法身份则进行签名,之后才会进行后续操作,否则丢弃该消息.由于攻击者无法获取合法身份的SM2私钥,所以由攻击者发出的消息也无法通过身份验证。3)数据完整性验证.数字签名不仅可以保证消息发送方的身份,在验证过程中,SM2的输入为签名数据和签名,若签名数据被篡改,签名也无法通过验证,因此SM2签名验签同样
19、有数据完整性验证的功能.4)防重放攻击.原ModbusTCP协议中没有学术论文.ResearchPapers防重发攻击机制,这意味着攻击者在捕获到报文后可以多次发送相同的报文给接收方,此时,接收方会多次重复地执行相同的操作,导致资源的浪费.ModbusTCP安全报文中增加了随机数字段,发送方每次发送消息前生成一串随机数并将其放入随机数字段,接收方每次接收到消息后将该随机数与本地随机数表进行比对,若存在相同的随机数,则证明该消息之前已经收到过,视为重放消息并丢弃,若没有相同随机数,则将该消息视为非重放消息,并将该随机数放入随机数表中.实验分析33.1实验结果为了验证本文方案的有效性,本节通过Wi
20、re-shark软件捕获改进的ModbusTCP数据包,其中图1(a)为发送方发送的ModbusTCP安全报文,图1(b)为接收方返回的ModbusTCP安全报文:859945:37256127.0.0.1122-R0.1Fra008625:111/Lo18ebytesInteret Protocol wersion 2,Srci 127.0.0.1,osti 17.0.0,modbis/ICPTransactiondentifierstrelProtoProtocoltdenmtifieri:Length:oyt dentiseri255100.0000Detar-4d271155945-3
21、725648625.45,4644969e(s)yu(itsfevicocNull/Loopbachtramision control Protool,src Prt:6156e,Dnt Pert s2,seg:16,ck 6,Ln aIntermet retocol wersion 4,Sre:127.8,e,1,Podbus/TcTrasaction Identifierseprotocol tdentifiertenit Identfier:255engt:HodbusData:dferedic通过图2 可知,截获到的报文消息内容为一串密文字符且功能码未知,保证了ModbusTCP报文的
22、安全性.这是因为本文所提的 ModbusTCP安全方案将功能码和数据明文数据加密成密文后再进行传输,即使敌手通过中间人攻击获取到传递的消息,由于不知道会话密钥,也无法解密并获取到明文,不仅无法得知截获消息的作用,而且无法得知截获的消息主要内容.3.2计算开销表1为不同方案的计算开销对比,其中H代表哈希算法,SM4代表1次SM4对称加密算法,e代表1次指数运算,dp代表1次点乘运算表1不同方案计算开销对比方案发送方计算开销文献42e+2H+SM4文献56H+14dp+SM4本文方案dp+2H+SM4如表1所示,文献4采用1次公钥加解密和公钥签名验签操作,所以在文献4中,发送方和接收方各用了2 个
23、计算开销较大的指数运算.文献5分别在身份认证、密钥协商和数据传输过程中12Y.0.0.1dbus/TCPohus/TPbits)on.interfaceDedcevpF_toopback,id(64)700410920004(a)发送方发送的ModbusTCP安全报文12.8.112.0.0.1(b)接收方返回的ModbusTCP安全报文图1ModbusTCP安全报文接收方计算开销2e+2H+SM46H+11dp+SM42dp+2H+SM4eyuniti255,Yunc4es.nknowmfuncton(nhesponset tramtsimtt25,fancimnanfunetion(e)3
24、1ueryeIransfuntion(40127.0.0-1Dst:127-8-0运用到1次数字签名和验签的操作,并且在密钥协商过程中用公钥加密算法加密协商的会话密钥,所以文献5中的发送方和接收方的计算开销中存在大量的点乘运算.而本文方案只需要用1次签名和验签运算就可以解决ModbusTCP协议的身份认证问题和数据的完整性问题.所以发送方和接收方只用1次计算开销较大的指数运算.通过实验结果对比,本文方案的计算开销优于其他文献方案.此外,为了清楚地评估本文所提方案的计算开销,在实验阶段分别统计了数据大小为50 B,100B,150B,200B,250B时本文方案的计算开销.其中,图2(a)为发送
25、方不同数据大小的计算开销,图2(b)为接收方不同数据大小的计算开销.如图2所示,本文方案发送方整体计算开销在17 ms左右,接收方整体计算开销在2 0 ms左右.3.3存储开销目前工业控制系统协议大多应用于轻量化的终端中,其计算能力和存储能力都是有限的,所以一个工业控制协议的安全方案除了计算开销,其存储开销的考量也是非常重要的.该阶段主要统计了不同方案在系统初始化时花费的存储开销.表2为本文方案与其他方案在存储方面的开销对比:网址http:/123信息安全研究第10 卷第1期2 0 2 4年1月Journal of Information Security BesearchVol.10No.1
26、Jan.202417.04017.03517.030Su/17.02517.02017.01517.01017.00517.00417.00050(a)发送方计算开销图2 发送方和接收方计算开销表2 不同方案存储开销对比3张波,赵婷,徐兴坤,等。工业控制系统安全性分析及通信协议增强设计J.中国电力,2 0 15,48(8):150-154方案存储开销/b文献431024+256文献52281024+124本文方案2512+256+1284结语本文针对传统ModbusTCP协议缺乏身份验证、数据明文传输、重放攻击威胁等问题,提出一种ModbusTCP安全增强方案,在该方案中,通过SM2签名算法实
27、现的ModbusTCP主站与从站段之间的身份认证和数据完整性检测,利用对称加密算法SM4实现了ModbusTCP协议传输中的数据加密传输,通过随机数的形式实现了ModbusTCP防重放的机制,实验结果表明本文方案在确保安全性的同时,带来的额外开销也是可接受的.参考文献1 Fovino I N,Carcano A,Masera M,et al.Design andimplementation of a secure modbus protocol C/Proc ofthe 3rd Annual IFIP WG 11.10 Int Conf on CriticalInfrastructure Pr
28、otection.2009:83-962 詹静,杨静。基于远程证明的可信Modbus/TCP协议研究J.工程科学与技术,2 0 17,49(1):19 7-2 0 520.02020.01520.01017.01517.01317.00917.006100150数据大小/B20.01720.01420.0120.00820.00520.005200250504Shahzad A,Lee M,Lee Y K,et al.Real time MODBUStransmissions and cryptography security designs andenhancements of protoc
29、ol sensitive information J.Symmetry,2015,7(3):1176-12105 Xuan L,Yongzhong L.Research and implementation ofModbus TCP security enhancement protocol JJ.Journal ofPhysics:Conference Series.IOP Publishing,2019(5):052058祁志荣工程师.主要研究方向为石油化工和煤化工仪表自动化。qizhr.zalhsinopec,com吕世民工程师.主要研究方向为工控网络安全。L郑乾坤工程师.主要研究方向为煤化工行业工业互联网平台建设和发展。100数据大小/B(b)接收方计算开销15020025024
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100