一种ModbusTCP协议安全增强方法及系统技术方案

技术编号:30265483 阅读:24 留言:0更新日期:2021-10-09 21:14
本发明专利技术涉及一种ModbusTCP协议安全增强方法及系统,本发明专利技术在ModbusTCP协议中使用HMAC算法为工控系统通信数据同时提供身份认证和完整性保护,采用加解密速度比非对称加密算法更快的SM4分组密码算法为工控系统通信数据提供机密性,采用时间戳加随机数并结合随机数集合表更细粒度的防止重放攻击;本发明专利技术在保证了可用性的前提下,全面提高了使用ModbusTCP协议的工业控制系统安全性。议的工业控制系统安全性。议的工业控制系统安全性。

【技术实现步骤摘要】
一种ModbusTCP协议安全增强方法及系统


[0001]本专利技术属于工业控制系统信息安全领域里的ModbusTCP通信协议
,具体涉及一种ModbusTCP协议安全增强方法及系统。

技术介绍

[0002]工业控制系统已经被广泛地运用到制造、交通、水利、电力、航空航天等各个领域,与我国经济的命脉紧密的联系在一起。随着工业以太网、工业互联网等技术的发展以及信息技术(IT)、运营技术(OT)的深入融合,工业控制系统与互联网的联接也日益频繁,企业为提高经济效益,做到决策精准化、科学化,需要掌握生产现场的实时数据并及时送至云平台进行大数据分析。这导致了原本处于封闭状态的工业控制系统暴露在互联网当中,意味着工业控制系统遭到黑客攻击的几率大幅度增加。
[0003]ModbusTCP协议作为一种通用型工业以太网协议,具有开放、简单、高效的特点,在西门子、罗克韦尔、施耐德、和三菱等众多国内外工控厂商生产的工控设备中广泛使用,并广泛应用于智能制造、能源、化工、水务等众多行业领域。同样,ModbusTCP协议也存在机密性、完整性保护缺失、缺乏身份认证等固有问题,导致采用此协议的设备存在较大安全隐患。据统计,在2020年,国内监测到的针对工控协议的攻击中,针对Modbus协议的攻击次数排名第二位。因此有必要针对ModbusTCP协议的安全缺陷从协议和机制两个层面进行安全增强设计,增加工业控制系统抵御风险的能力。
[0004]针对ModbusTCP协议中存在的安全问题,相关领域的研究人员也给出了相应的设计与解决方案。这些方案主要存在以下四点不足:第一,有些方案针对ModbusTCP协议中存在的安全问题的防护措施不全面;第二,有些方案对ModbusTCP协议进行全面防护后,使得ModbusTCP协议传输效率明显下降,降低了系统可用性;第三,有些方案基于硬件模块对ModbusTCP协议进行改改进,花费开销较大,导致工业控制系统升级比较困难。第四,有些方案采用国外加解密技术,对于我国信息安全存在潜在的威胁。

技术实现思路

[0005]针对现有技术的不足,本专利技术提供了一种ModbusTCP协议安全增强方法;
[0006]本专利技术旨在解决工业控制信息安全领域中ModbusTCP协议缺乏身份认证、完整性检查、数据加解密的缺陷,同时又要保证系统可用性,目的是全面提高ModbusTCP协议应用于工业控制系统的安全性。
[0007]本专利技术使用HMAC

SM3算法同时实现通信双方的双向认证及完整性保护;采用SM4分组密码算法对通信数据进行加密;引入时间戳加随机数结合随机数集合表更细粒度的防止重放攻击。
[0008]本专利技术还提供了一种ModbusTCP协议安全增强系统。
[0009]术语解释:
[0010]1、逆转法,假设U服从[0,1]区间上的均匀分布,令X=F

1(U),则X的累计分布函数
(CDF)为F。该方法原理简单、编程方便、适用性广。
[0011]2、SM4对称密钥K,是随机生成的长度为16字节的十六进制数据。
[0012]3、HMAC算法,是一种利用密码学中的散列函数来进行消息认证的一种机制,可以提供消息完整性认证和身份认证。
[0013]4、SM3散列函数,是我国采用的密码散列函数标准,可以将任意长度的消息压缩成固定长度的摘要
[0014]5、SM4分组密码算法,是我国自主研发的对称加密算法,用于消息的加解密。
[0015]本专利技术的技术方案为:
[0016]一种ModbusTCP协议安全增强方法,包括步骤如下:
[0017](1)生成原始ModbusTCP协议的数据包即原始通信数据包M;
[0018](2)生成时间戳S1和随机数N1,将S1和N1分别写入Timestamp字段以及Nonce字段中,和原始通信数据包M组合,构造出新的通信数据包M1;
[0019](3)主站或从站将通信数据包M1和SM4对称密钥K作为SM3散列函数的输入,生成一个定长的消息摘要S,将S写入Maccode字段;
[0020](4)将原始通信数据包M中的有效数据和预置的SM4对称密钥K输入到SM4分组密码算法中进行加密生成加密数据D,将D写入Encryptdata字段;
[0021](5)构造含有S1、N1、S、D的通信数据包M2并发送;
[0022](6)接收方接收通信数据包M2,并依次进行解析、时间戳比对及随机数比对,如果时间戳在规定时间t1内并且随机数不在随机数集合表中,则接收通信数据包M2,否则,丢弃通信数据包M2;
[0023](7)接收方使用预置的SM4对称密钥K对加密数据D进行解密,并构造出通信数据包M1;
[0024](8)将通信数据包M1和SM4对称密钥K作为SM3散列函数的输入,计算出消息摘要S1,将S1和S进行对比;两者一致,则接收通信数据包M1,进入步骤(9),否则,丢弃通信数据包M1;
[0025](9)将随机数存储在随机数集合表中,在通信间隙对随机数集合表进行维护。
[0026]根据本专利技术优选的,ModbusTCP协议的数据格式包括MBAP字段、Encryptdata字段、Maccode字段、Timestamp字段及Nonce字段;
[0027]Encryptdata字段为加密数据字段;Maccode字段为认证及完整性验证字段;Timestamp字段和Nonce字段为防重放攻击字段,Timestamp是时间戳,Nonce字段为随机数,与时间戳结合更细粒度的防止重放攻击。
[0028]根据本专利技术优选的,步骤(6)中,接收方接收通信数据包M2,并依次进行解析、时间戳比对及随机数比对,包括步骤如下:
[0029]a、接收方接收到通信数据包M2之后,对通信数据包M2进行解析,获取D、S1、N1、S的值;
[0030]b、进行防重放攻击的验证:规定一个时间t1,提取时间戳S1与时间t1作对比,是否超过t1,如果超过t1,则认定该通信数据包M2为重放攻击,自动丢弃该通信数据包M2;否则,进入步骤c;
[0031]c、继续判断随机数N1是否在随机数集合表中,如果随机数N1在随机数集合表中,则判断该通信数据包M2为重放攻击,自动丢弃该通信数据包M2;否则,接收该通信数据包M2。
[0032]根据本专利技术优选的,步骤(2)中,
[0033]根据系统时间生成时间戳S1;使用逆转法生成伪随机数N1;
[0034]将S1和N1分别写入Timestamp字段以及Nonce字段中,和原始通信数据包M组合,构造出新的通信数据包M1,具体构造公式如式(Ⅰ)所示:
[0035]M1=M&&S1&&N1ꢀꢀ
(Ⅰ)。
[0036]根据本专利技术优选的,步骤(3)中,
[0037]主站和从站之间在通信之前预置一个S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种ModbusTCP协议安全增强方法,其特征在于,包括步骤如下:(1)生成原始ModbusTCP协议的数据包即原始通信数据包M;(2)生成时间戳S1和随机数N1,将S1和N1分别写入Timestamp字段以及Nonce字段中,和原始通信数据包M组合,构造出新的通信数据包M1;(3)主站或从站将通信数据包M1和SM4对称密钥K作为SM3散列函数的输入,生成一个定长的消息摘要S,将S写入Maccode字段;(4)将原始通信数据包M中的有效数据和预置的SM4对称密钥K输入到SM4分组密码算法中进行加密生成加密数据D,将D写入Encryptdata字段;(5)构造含有S1、N1、S、D的通信数据包M2并发送;(6)接收方接收通信数据包M2,并依次进行解析、时间戳比对及随机数比对,如果时间戳在规定时间t1内并且随机数不在随机数集合表中,则接收通信数据包M2,否则,丢弃通信数据包M2;(7)接收方使用预置的SM4对称密钥K对加密数据D进行解密,并构造出通信数据包M1;(8)将通信数据包M1和SM4对称密钥K作为SM3散列函数的输入,计算出消息摘要S1,将S1和S进行对比;两者一致,则接收通信数据包M1,进入步骤(9),否则,丢弃通信数据包M1;(9)将随机数存储在随机数集合表中,在通信间隙对随机数集合表进行维护。2.根据权利要求1所述的一种ModbusTCP协议安全增强方法,其特征在于,ModbusTCP协议的数据格式包括MBAP字段、Encryptdata字段、Maccode字段、Timestamp字段及Nonce字段;Encryptdata字段为加密数据字段;Maccode字段为认证及完整性验证字段;Timestamp字段和Nonce字段为防重放攻击字段,Timestamp是时间戳,Nonce字段为随机数,与时间戳结合更细粒度的防止重放攻击。3.根据权利要求1所述的一种ModbusTCP协议安全增强方法,其特征在于,步骤(6)中,接收方接收通信数据包M2,并依次进行解析、时间戳比对及随机数比对,包括步骤如下:a、接收方接收到通信数据包M2之后,对通信数据包M2进行解析,获取D、S1、N1、S的值;b、进行防重放攻击的验证:规定一个时间t1,提取时间戳S1与时间t1作对比,是否超过t1,如果超过t1,则认定该通信数据包M2为重放攻击,自动丢弃该通信数据包M2;否则,进入步骤c;c、继续判断随机数N1是否在随机数集合表中,如果随机数N1在随机数集合表中,则判断该通信数据包M2为重放攻击,自动丢弃该通信数据包M2;否则,接收该通信数据包M2。4.根据权利要求2所述的一种ModbusTCP协议安全增强方法,其特征在于,步骤(2)中,根据系统时间生成时间戳S1;使用逆转法生成伪随机数N1;将S1和N1分别写入Timestamp字段以及Nonce字段中,和原始通信数据包M组合,构造出新的通信数据包M1,具体构造公式如式(Ⅰ)所示:M1=M&...

【专利技术属性】
技术研发人员:衣孚民张磊赵大伟杨淑棉周洋徐丽娟吴晓明杨美红
申请(专利权)人:山东省计算中心国家超级计算济南中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1