文摘
4.0产业的出现使得人们越来越重视工业控制系统的安全。作为一种常见和典型的通信协议,网络通讯协议没有考虑数据安全的问题在设计之初,为犯罪分子提供了机会。在本文中,我们设计一个安全方案来保护传统的Modbus TCP协议,利用国内加密算法。因此,该方案能够身份验证、数据加密、数据完整性检查和anti-replay攻击。安全分析和实验结果表明,我们建议的方案解决了Modbus TCP协议的安全问题与最小的开销增加。
1。介绍
随着技术的不断进步和创新,物联网(物联网)一直在蓬勃发展的道路。与此同时,越来越多的黑客利用物联网的漏洞攻击网络,导致大量数据的非法泄漏甚至麻痹终端(1]。这带来了严重的损失,相关企业甚至国家安全风险。4.0工业的未来,使用信息技术促进产业变化已经提出,和工业物联网(IIoT)已经成为物联网的一个重要分支2]。工业控制系统(女性)在IIoT发挥重要作用,广泛应用于制造、发电、化工制造、污水处理、烟草等行业(3]。ICS是一群工业控制器和设备,确保工业设施的顺利运转,组成的自动化实时收集和监测数据的组件。ICS的核心组件包括现场总线控制系统(FCS),监控和数据采集(SCADA)系统和分布式控制系统(DCS) [4,5]。由于工业控制系统都是运营商的数据和指令,他们将面临越来越严重的网络威胁,工业控制系统和黑客的攻击是无限的。例如,在2010年,一个黑客组织使用Stuxnet病毒攻击伊朗核浓缩工厂,禁用超过1000台离心机6]。2021年,Oldsmar市政水处理系统,佛罗里达,是黑客试图氢氧化钠的浓度提高到危险的水平。显然,ICS安全与国家安全密切相关,人们的生活质量。
为了应对不同的应用场景在工业控制系统中,很多通信协议为集成电路设计,如网络通讯协议,分布式网络协议3 (DNP3)和控制器区域网络总线(CANBUS)。其中,Modbus串行通信协议,已成为最流行的通信协议由于其简单和易于理解的消息格式和开放标准(7]。Modbus TCP协议是Modbus协议的通信方式,它是一个基于TCP / IP以太网应用层通信协议。广泛应用于工业控制设备由西门子、施耐德、三菱、和其他工业控制制造商,以及智能制造、能源、电力等行业。然而,传统的Modbus TCP协议有很大的安全风险。攻击者不仅可以拦截明文数据在Modbus TCP客户机和Modbus TCP服务器之间的通信,还恶意篡改这些数据(8]。此外,攻击者可以直接连接到Modbus TCP服务器,发送非法命令,或从Modbus TCP服务器获得数据。
中国国家密码管理局发表了一些国内加密算法标准及其应用规范改善该国的自主信息安全的可控性。算法涉及到各种各样的加密类型,包括公钥加密算法SM2 SM9;对称加密算法SM1、SM4 SM7;SM3和散列算法。国家密码算法的推广具有重要意义来改善中国的网络信息安全和自主控制水平(9]。在本文中,我们提出一个Modbus TCP的安全增强方案主要通过国内加密算法SM3 SM4,可以改善Modbus TCP的安全。
在这项工作中,我们提出一个Modbus TCP协议的安全增强方案。总结了本文的主要贡献如下:(1)我们提出一个安全计划的Modbus TCP协议基于国产密码算法。我们的方案包括认证、密钥协商和安全的数据传输。首先,在认证和密钥协商阶段,我们完成了客户端和服务器之间的相互认证和密钥协商由SM4预共享密钥和算法。其次,在保证数据传输阶段,我们将时间戳和消息认证码字段添加到传统的Modbus TCP的消息。时间戳字段是用来防止重放攻击,和消息身份验证代码字段是用来检测Modbus TCP消息的完整性和合法性。最后,我们通过SM4关键数据加密算法,确保数据安全。(2)我们分析的安全方案,分析表明,该协议的安全问题提出了解决方案与其他相比是更全面的安全方案。(3)我们进行实验评估Modbus TCP提出安全方案,结果表明,该方案具有计算开销和存储开销相比与其他安全方案。
2。相关工作
近年来,有一些相关的Modbus TCP的安全工作。沙赫扎德et al。10)添加额外的安全领域标准的Modbus的数据包和使用RSA和AES算法生成密钥和加密数据,分别。商等。11)提出了一个工业防火墙设计基于Modbus TCP协议,结合“白名单”与防火墙技术来有效地拦截非法数据流,确保工业控制系统的正常运行。Pricop et al。12]提出认证通过散列算法,把身份验证选项中的数据字段的TCP报头。阿尔维斯et al。13OpenPLC]设计了中介代理。它加密数据传输通过aes - 256算法ICS协议来保证数据的机密性。然而,这个计划不提供身份验证。宣,Yongzhong14)提出了Modbus-S计划的可信度,确保通信方的身份和数据的机密性。Jingran et al。15应用TLS技术Modbus TCP协议。然而,数字证书参与TLS显著增加计算开销和管理开销。易et al。16)提出了Modbus TCP安全方案来实现数据加密和完整性验证,防止重放攻击的时间戳和随机数。然而,由于信息是明文传输,其anti-replay能力弱。林等。17)提出了一个Modbus安全方案基于AES算法和sha - 256散列算法,但该方案无法提供身份验证。Chochtoula et al。18)提出了一个Modbus安全方案基于椭圆曲线加密技术,提供密钥生成方法、关键谈判,和数据加密和解密。
3所示。国内加密算法
3.1。SM3散列算法
SM3是一个散列算法独立开发的核心领域的密码。为一个消息米与l(l< 264年)位,SM3散列算法生成一个256位的散列值信息填写后,迭代压缩。(1)固定的参数4 = 7380166 f 4914 b2b9 172442 d7 da8a0600 a96f30bc 163138 aa e38dee4d b0fb0e4e (2)信息填写假设消息米是l位长,第一位“1”添加到年底,然后添加的消息k0,k最小的非负整数令人满意 。然后添加一个64位的位串,这是长度的二进制表示l。消息的长度是512字节的倍数。(3)迭代压缩迭代过程组织了消息512位, ,在哪里 。遍历如下:为我= 0 , ENDFOR 是256位的初始值IV,CF是压缩功能。消息的扩展消息组B(我)扩展生成132消息的话 和用于压缩功能CF。(一)消息组B(我)分为16个单词吗(b)为j= 16 - 67 ENDFOR(c)为j= 0到63 ENDFOR压缩功能一个,B,C,D,E,F,G,H是字寄存器为j= 0到63 ENDFOR (4)散列值
最终的输出是256位的散列值y=ABCDEFGH。
3.2。SM4对称加密算法
SM4在中国是一个对称加密算法独立开发。SM4算法是一个块加密算法和密钥长度的块长度为128位。它包括32个迭代操作和一个相反的顺序变换R。
假设明文输入 ,密文输出是 ,和圆键 ,我= 0,1,2,…,31日圆函数: ,和T是合成置换函数。
SM4加密算法的操作过程如下:(1)32个迭代 (2)相反的顺序变换
SM4解密加密算法算法具有相同的结构,但不同的是使用的顺序轮密钥。解密时,圆键序列 。
4所示。Modbus TCP协议
4.1。Modbus TCP / IP网络拓扑
Modbus通信协议基于主从架构。它有三个通信协议:Modbus RTU协议,ASCII Modbus协议,和Modbus TCP协议。其中,Modbus协议和Modbus RTU ASCII协议是基于串行通信的链接。Modbus TCP协议是基于以太网的通信。
Modbus协议的一个分支,Modbus TCP协议由两个实体组成:Modbus TCP客户机和Modbus TCP服务器。客户端对应Modbus的主人,和服务器对应Modbus奴隶。Modbus TCP / IP网络拓扑如图1。在网络,只有客户端向服务器发送请求,然后服务器可以应对客户端。否则,服务器不能主动发送消息给客户端。Modbus TCP / IP网络不仅允许客户端和服务器直接连接,但也允许主人和奴隶Modbus串行链路连接到路由器,网关和其他设备。
4.2。Modbus TCP消息结构
在Modbus TCP协议,函数代码字段和数据字段被统称为协议数据单元(PDU)。Modbus应用协议(MBAP)消息header和PDU统称为应用程序数据单元(ADU)。
MBAP消息头字段是七个字节,包括事务标识符,协议标识符长度,单位标识符。具体来说,事务标识符取两个字节,用于标记不同的通信信息,确保信息的准确性,防止通过网络信息混乱。协议标识符包含两个字节,即00 00,这表明Modbus TCP协议。字段长度是两个字节,商店的长度单位标识符,函数代码和数据。单位标识符字段占用一个字节和商店的地址Modbus TCP服务器或串行连接设备与Modbus TCP / IP网络连接。
PDU是一个字段,用于存储关键数据,包括函数的代码和数据。函数代码占用一个字节,代表了Modbus TCP客户机想要执行的操作的Modbus TCP服务器。常见的函数代码如表所示1。
5。Modbus TCP安全增强方案
在本节中使用的符号定义如表所示2。
5.1。认证和密钥协商阶段
在这个阶段,Modbus TCP服务器可以确定Modbus TCP客户机连接的合法性,和Modbus TCP客户机可以识别是否连接到目标服务器。在验证阶段,预共享密钥相移键控同意在客户机和服务器之间使用。如果身份验证成功,会话密钥协商是根据传递的参数在身份验证。认证和密钥协商的具体步骤描述如下。(1)Modbus TCP客户机生成一串128位随机数R米并计算出H米1和C米。然后,客户端发送C米Modbus TCP服务器。 (2)Modbus TCP服务器接收消息并解密C米预共享密钥相移键控。然后,它得到了随机数R米地方之间的异或操作相移键控和上半年的最后计算解密消息H年代1。如果H年代1等于H米1,它证明了Modbus TCP客户机的合法身份。否则,消息被丢弃。 Modbus TCP客户机通过身份验证后,Modbus TCP服务器生成一个随机数R年代与128位,然后计算H年代2和C年代。接下来,服务器发送C年代给客户端。 (3)Modbus TCP客户机接收到消息并解密C年代预共享密钥相移键控。 它可以获得随机数R年代通过执行XOR运算之间的随机数R米第一个明文的一半。然后,Modbus TCP客户端计算H米2。 Modbus TCP服务器的合法身份证明,和随机数的完整性R年代如果验证H米2等于H年代2。否则,消息被丢弃。Modbus TCP服务器通过身份验证后,Modbus TCP客户机生成会话密钥数据传输阶段。然后,客户端向服务器发送“Verify_successful”表明他已经通过身份验证。 (4)收到消息后“Verify_successful Modbus TCP服务器使用相同的算法来生成会话密钥的“关键”。
5.2。安全的数据传输阶段
安全的数据传输阶段,SM4算法用于加密重要的数据与生成会话密钥密文在前面的阶段。传输密文阻止攻击者获取重要数据的明文。然而,如果攻击者知道每条消息的功能,它可以重播消息即使它不知道明文。因此,添加时间戳字段在传统Modbus TCP防止重放攻击。SM3散列算法用于确保在传输过程中数据的完整性,防止数据被非法破坏。安全增强的Modbus TCP协议数据格式如图3。
安全的数据传输阶段的具体步骤描述如下。发送方的操作流程图(Modbus TCP客户机)在安全数据传输阶段如图4。(1)Modbus TCP客户端获取当前系统时间,将时间戳添加到安全Modbus TCP消息的时间戳字段。(2)Modbus TCP客户端使用SM4算法加密函数代码,数据和时间戳字段的会话密钥“关键”,将密文放入相应位置的安全信息。 (3)Modbus TCP客户端需要CPT和会话密钥的“关键”作为输入SM3散列算法,生成的散列值H米3,并将其消息身份验证代码。
图5显示接收方的操作流程图(Modbus TCP服务器)在安全数据传输阶段。(1)Modbus TCP服务器密文CPT和会话密钥的“关键”作为输入SM3散列算法生成散列值H年代3并比较其与接收到的消息身份验证代码字段中的内容。如果他们是一样的,那可以证明消息的来源是可信的,不能破坏恶意的消息。否则,消息将被丢弃。 (2)Modbus TCP服务器解密CPT通过“关键”的会话密钥的时间戳。然后,由系统生成时间戳的时候,比较时间戳。如果时间戳在有效范围内,基于Modbus TCP服务器执行操作函数的代码和数据。否则,消息将被丢弃。
6。安全分析
6.1。认证和密钥协商阶段
在这个阶段,Modbus客户机和Modbus服务器使用预共享密钥和SM4相互认证和密钥协商算法。如果认证失败将断开连接。自传播消息加密和隐藏通过XOR运算和SM4算法,即使攻击者截获的消息,他们不能得到他们想要的信息。
改善会话密钥的安全性,该计划生成随机数每次Modbus TCP客户机连接到Modbus TCP服务器,然后协商最终的会话密钥。这个阶段的会话密钥协商是用于加密和解密下一阶段的关键数据。这确保了会话密钥是不同的每次Modbus TCP客户机连接到Modbus TCP服务器。
6.2。安全的数据传输阶段
在这个方案中,两个字段的时间戳和消息身份验证代码添加到传统的Modbus TCP的消息,使他们的Modbus TCP安全消息。
首先,确定发送方的身份是合法的消息并不是恶意篡改。一方面,会话密钥“关键”的一个输入消息身份验证代码,只有经过认证和密钥协商阶段的终端可以获得的关键。因此,消息身份验证代码计算由双方是不同的,如果发送方的身份是非法的。另一方面,是另一个输入消息身份验证代码,在哪里是函数的密文代码,数据和时间戳。由于攻击者无法知道会话密钥,如果他们恶意篡改 ,他们不能计算相同的消息身份验证代码。这将导致接收到的消息验证码不同于计算接收消息身份验证代码。因此,只要消息身份验证代码是相同的,消息的发送方的合法性和完整性可以证明的。
第二,当前的时间戳是存储在Modbus TCP安全消息的时间戳字段,防止重放攻击。接收者将它比作自己的系统时间戳每次接收消息。如果时间戳是在安全范围内,它将基于函数代码和数据执行操作。因为时间戳是加密的,攻击者不能修改的时间戳,即使消息截获。如果攻击者发送相同的消息不止一次,时间戳的安全范围。
第三,该方案使用SM4对称加密算法加密函数代码,数据,和在同一时间的时间戳,确保关键数据不是由攻击者访问非法传播。
6.3。Modbus TCP的比较安全
突出的安全计划,这部分比较它与其他Modbus TCP安全增强方案,如表所示3。
计划(10,14)使用对称加密算法AES加密Modbus TCP协议中的数据和使用RSA算法签名数据实现身份认证。计划(10)使用SHA-2算法计算出散列值,而计划(14)使用MD5算法来计算哈希值来验证信息的完整性。该计划(14)防止重放攻击通过计算同步标识符,但计划(10)没有提出一种机制来防止重放攻击。计划(15]应用TLS Modbus TCP协议实现数据加密、身份验证、数据完整性检查、anti-replay攻击,和密钥更新机制。计划(17)使用对称加密算法AES加密数据Modbus TCP协议,使用sha - 256算法来计算哈希值,并通过时间戳验证信息的完整性,防止重放攻击。计划(16)使用SM4对称加密算法加密Modbus TCP协议中的数据,通过SM3算法计算出散列值,验证信息的完整性,实现身份认证。它防止重放攻击随机数和时间戳。然而,随机数字和时间戳方案是明文传输的,攻击者可以很容易地修改后再次发送他们拦截。因此,该计划是有效防止重放攻击。相比之下,我们的方案使用时间戳,防止重放攻击,这不仅不需要开辟新的内存空间来存储随机数还加密传输的时间戳。攻击者不能修改时间戳数据,可以有效地防止重放攻击。
7所示。实验结果和分析
在本节中,实验上执行该方案的计算开销和存储开销。为了确保数据的准确性,我们做了十个实验来测试计算开销。该方案分为认证和密钥协商阶段和安全数据传输阶段。因此,这两个阶段的计算开销是分开计算的实验。所有的实验都运行在英特尔(R)的核心(TM)(电子邮件保护)GHz CPU、16 GB的RAM, Windows 11 64位操作系统。
7.1。实验结果
我们使用Wireshark传统Modbus TCP拦截消息和Modbus TCP加密消息,分别清晰地看到效果的方案在安全数据传输阶段。03函数代码是作为一个例子。图6(一)显示了传统Modbus TCP客户端发送的消息,和图6 (b)显示了传统Modbus TCP服务器发送的消息的。从图可以看出6数据传输在明文传统Modbus TCP通信,这意味着攻击者可以很容易地获得关键信息,如函数代码和数据,恶意篡改它。因此,协议是不安全的。
(一)
(b)
图7(一)显示了安全的Modbus TCP客户机发送的消息提出方案,在函数代码和数据加密。最后32字节的数据被Wireshark的消息身份验证代码。
(一)
(b)
Modbus TCP服务器接收消息,并返回相应的消息身份验证后,完整性检查,时间戳检查。图7 (b)显示了Modbus TCP服务器返回的数据。在这个图中,关键数据加密。Wireshark只截取一些荒谬的消息序列。这意味着攻击者不能获得关键数据的明文,恶意篡改它。
7.2。计算开销
为了确保实验数据的准确性,我们进行了十个实验分别为每一个阶段,然后计算平均值。数字数据8和9代表实验的数量。
(一)
(b)
(一)
(b)
在认证和密钥协商阶段,数字8(一个)显示了Modbus TCP客户机的计算开销,同时图8 (b)显示了Modbus TCP服务器的计算开销。实验结果表明,平均计算的开销Modbus TCP客户机是11.71μ年代。Modbus TCP服务器的平均计算开销是9.76μ年代。
在安全数据传输阶段,时间戳和消息身份验证代码计算和Modbus TCP消息的关键数据进行加密或解密。
图9(一个)显示了Modbus TCP客户机的计算开销,同时图9 (b)显示了Modbus TCP服务器的计算开销。实验结果表明,平均计算开销的Modbus TCP客户机是3.24μ年代和Modbus TCP服务器的平均计算开销是2.73μ年代在安全数据传输阶段。
在表4之间的性能比较,我们将展示我们的计划和其他相关工作。一些符号定义如下。H表示散列操作,AESE表示一个AES加密操作,AESD表示一个AES解密操作,SM4E表示一个SM4加密操作,SM4D表示一个SM4解密操作,RSA年代表示一个RSA签名操作,表示一个RSA签名验证操作,和TLS表示一个完整的TLS协议的过程。
公钥加密算法是一个加密算法,使用复杂的数学问题作为安全保障。加密和解密操作和签名验证操作包含许多数学运算。因此,其计算效率远低于的对称加密算法和散列算法。方案中使用的RSA算法(10,14]是一种公钥加密算法,它使用大整数因子分解的数学问题安全保证。RSA的开销远远高于AES, SM4和散列算法。计划(15]TLS协议Modbus TCP协议适用于有效地确保安全。但TLS协议涉及到身份验证数字证书和一些RSA操作,导致增加指数的计算开销。计划(16,17)略低的计算开销。方案的计算开销(16,17是略优于本文的方案。不过,安全分析表明方案(16)没有意识到关键更新和anti-replay能力弱。计划(17)缺乏认证机制。总之,该方案值得更高的安全性能损失较小。
7.3。存储开销
我们比较了存储开销和其他Modbus TCP安全增强方案,并比较结果如表所示5。注意“∗_size”代表“∗的存储大小。”计划(10,14)采用RSA签名算法验证和AES算法的加密和解密。因此,双方都需要存储他们的RSA公钥和私钥和AES对称密钥。计划(14)还需要存储一个种子和一个白名单西城。TLS协议的计划(15)包括验证数字证书,所以它需要存储自己的数字证书和自己的RSA(2048)私钥和另一方的数字证书。每个数字证书的存储大小大约是1 KB∼3 KB。此外,方案中使用的加密算法(15ChaCha20-poly1305。因此,算法的关键也需要被存储。计划(16)采用SM4加密和解密的算法,和两种通信方需要存储SM4对称密钥。计划(16)还需要存储一个表存储随机数RL,为了实现anti-replay攻击的目的。计划(17)具有相同的存储开销与我们提出的方案。但是我们的安全方案比计划(17]。
8。结论
在本文中,我们设计一个Modbus TCP基于国内加密算法的安全机制。首先,我们完整的相互认证和会话密钥协商通过预共享密钥,SM4加密算法,异或操作,等等。然后,我们设计Modbus TCP安全消息增加anti-replay机制通过时间戳字段和通过SM3算法计算消息身份验证代码来验证消息的完整性和合法性。最后,我们等关键数据加密函数代码,数据,通过SM4算法和时间戳。安全分析和实验结果表明,该方案可以保护Modbus TCP自主可控和更小的计算开销和存储开销。
数据可用性
使用的数据来支持本研究的发现可以从相应的作者。
的利益冲突
作者宣称没有利益冲突。
确认
这项工作是国家重点支持的R & D项目中国没有。2021 yfb3101602)和基础研究项目(没有。JCKY2020604C011)。