Research & Analysis
基于 3DES和S M4 的 M o d b u s
安全通信算法
Modbus Secure Communication Algorithm Based on 3DES and SM4★石姗,王勇,周林上海电力大学
摘要:M o d bu s协议广泛用于工业控制系统(ICS)中,M odbus T C P协议通常 用于SC AD A系统中的人机界面和可编程逻辑控制器(PLC)之间的通信。本文 介绍了M o d b u s T C P协议的主要安全漏洞,并提出两种加密算法满足M o d bu s T C P协议的保密性要求,g卩3D E S加密算法和国密SM4算法,这两种分组密码 算法分别属于国际通用和我国自主研发的算法,3D ES算法对常见的D E S算法 进行了三重加解密,具有很强的安全性,国密SM4算法使用了轮函数和迭代制 等措施,具有较强的安全性,不容易被破解,文章针对两种不同算法的密钥长 度和算法结构进行了比较。
关键词:M od bu s协议;3DES算法;国密SM4算法
Abstract:The Modbus protocol is widely used in industrial control systems (ICS), and the Modbus/TCP protocol is usually used for the com m unication between the m an-m achine interface and the program m able logic controller (PLC) in the SCADA system. This paper introduces the main security vulnerabilitie
s of the Modbus TCP protocol, and adopts a cryptographic method to propose two encryption algorithm s to achieve confidentiality requirem ents, namely the 3DES encryption algorithm and the national secret SM4 algorithm. These two block cipher algorithms are internationally used and independently developed by China. The 3DES algorithm performs triple encryption and decryption on the common DES algorithm, which has strong security. The national secret SM4 algorithm uses round functions and iterative measures, which has strong security and is not easy to be cracked. The paper also compares the key length and algorithm structure of two different algorithms.
Key words: Modbus protocol; 3DES algorithm; National secret SM4 algorithm 采集现场实时数据,同时负责监控和集中分散的现场 通信设备|21。近年来,频发的针对ICS的大规模病毒 事件引发广泛关注,我们目前正面临着针对ICS的攻 击数量增加的威胁,由于ICS和SCADA系统中物理和 网络组件之间的紧密联系,网络攻击和安全漏洞可能 会对SCADA系统产生严重的影响。Modbus协议如今 被广泛运用于SCADA系统中,而SCADA系统应用于 电力、石油、天然气等重要工业行业,所以持续上升 的威胁导致SCADA系统M odbus协议的安全显得尤 其重要[31。M odbus协议缺乏集成加密、认证和授权 机制,这意味着在网络中的任意具有合法IP地址的用 户设备,如果构造出合理的Modbus协议报文即可建立 通信,而且以明文的方式逬行传输容易被中间人窃听 或篡改,造成系统通信数据信息泄露。Fovino,I.N.等 人118指出Modbus协议比较容易被洪水攻击,为了防御 基于Modbus协议的洪水攻击,提出异常检测的
控制算 法。Erez,N1191针对攻击者强制Modbus从设备重启的 攻击方式,提出了基于状态的入侵检测方法。黄剑[61提 出针对Modbus协议的基于GRJ的SM4并行加密算法,验证了该算法耗时少,加密实时性更高。
本文针对M odbus协议以明文传输的漏洞,对通 信数据分别进行3DES和国密SM4加密处理,从而在 一定程度上保证数据的安全,其中,国密SM4算法是 我国自主知识产权算法,将SM4算法应用到Modbus 协议通信过程对保证我国信息安全起到重要作用。
1引言  2 Modbus协议介绍
M odbus协议是SCADA系统中应用于现场控制 器的一种通用协议。控制器通过M odbus协议和其他 控制器或者传感器进行通信u l。SCADA系统通常用于
M o d b u s协议是OSI模型的应用层报文传输协议,它由M odicon公司(施耐德电气)于1979年为 了使用PLC通信而发行的,现如今由于M odbus协议
自动化博览•工业控制系统信息安全专刊• 6
7
研究分析
易于维修保护和标准开放等优点,经常应用于ICS 。
M odbus 通信协议有两种主要版本,分别是串行链
路、TCP /IP 以太网。ICS 现场设备的M odbus 设备大 多通过串口 RS 232/RS 485或TCP /IP 物理层进行通信 连接。而M odbus 协议的串行链路连接有两种形式:
RTU 模式和ASCII 模式。为了确保数据传输的完整性
和准确性,M odbus  TCP 协议属于TCP /IP 模型的应 用层,该协议通信采用主从的通讯模式,通常主站方 发出请求的信息,从站方接收到消息回答响应并将数 据发送至主站方,同时主站方也可能发送控制消息从 而修改从站的数据,实现双向读写|61。M odbus 协议 报文格式171如图1所示。
Modbus 应用协议报文头
协议数据单元<
^
=
o c =
=
>传输标志协议标识长度单元标识功能码数据
2 Bytes 2Bytes
2Bytes
lByte
lByte
^
^
Modbus  TCP 应用数据单元
图1 Modbus  TCP 应用数据单元3 Modbusl •办议安全性分析
M odbus  TCP 协议具有M odbus 协议和TCP"P
协议的安全威胁,即存在M odbus 协议固有的安全问 题,还引入TCP /IP 协议的安全漏洞|81。
(1)
缺乏身份认证机制m :对于接入同一网络
的攻击者,可以伪造M odbus  TCP /IP 报文与主站端 实现通信,容易对主站进行窃听或发送错误的数据;
(2)
明文传输:系统的传输信息容易被中间人
窃取,从而造成隐患威胁;
(3)
拒绝服务攻击(D en ial  o f  s e rv ic e ,
DoS ):例如The  SYN  flood 攻击是最常见的一种 DoS 攻击,攻击者发送大量循环设置了SYN 标志的 TCP 数据包到TCP 端口,而不通过TCP 三次握手进行
连接,服务器存储不足和TCP 连接受限最终导致系统 崩溃中断,进行M odbus 通信的主从站双方通信也随 着中断;
(4)
中间人攻击:例如A R P 欺骗,由于
Modbus 协议缺乏集成加密和身份验证,通信端容易
被冒充,系统通信数据易被篡改或监听,ARP 欺骗就 是其中的一种中间人攻击方式,攻击者利用Modbus
协议漏洞冒充局域网内网关,使得主从站设备的通信 数据都流向攻击者,窃取到关键数据后为之后更大的 攻击做准备;
(5)重放攻击:由于M odbus 协议缺少相应的 机制,攻击者可以冒充主设备发送合法的控制命令到 从设备,改写从设备数据,或者向主从设备发送大量 消息以消耗设备的存储资源。
4
基于M odbus 协议的3DES 加密
算法
针对M odbus 协议存在的安全问题,本文首先通 过Modbus  poll 和Modbus  slave 工具分别模拟Modbus 主从站,实现了 Modbus 协议的通信,同时针对协议存 在的安全问题,提出对称加密算法3DES 算法。
4.1实验环境
为了便于调试M odbus 协议,工具软件Modbus
poll 和M odbus  slave 分别模拟M odbus 主站设备和
从站设备。M odbus  p o ll 是M odbus 主站设备仿真 器,可以用于测试和调试M odbus 从站设备,便于 观察Modbus 通信过程中的各种报文数据。Modbus
slave 用来模拟Modbus 从设备,它用于接收主设备的
命令包,并回送数据包,可测试和调试Modbus 主站 设备。
其中Modbus  poll 和Modbus  slave 都需要进行
连接参数设置和寄存器设置,图2是Modbus  poll 的参数设置。
(b) Modbus poll
连接参数设置
寄存器设置
图2 Modbus  poll 参数设置
(1)连接参数设置:C o n n e c t i o n :选择
Modbus  TCP /IP ; IP  address :表示本机的IP 地址。
⑵寄存器设定:Slave  ID :表示从机的地址, 要与自己的从机地址一致,选择1; Function :表示
68
•自动化博览•工业控制系统信息安全专刊
Research & Analysis
功能码的选择,选择03:保持寄存器;A ddress :线 圈的起始地址,可以使用逻辑地址,选择0。
Modbus  slave 的参数设置如图3所示。
图3 Modbus  slave 参数设置
(1)
寄存器设定:Slave  ID :表示从机的地址,设 置为1; Function :表示功能码,同样设置为03:保持 寄存器;Address :表示线圈的起始地址,设置为0。
(2)
tcp ip协议的安全隐患
连接设置:C o n n e c t i o n :实验选用
Modbus  TCP /IP 连接;IP  Address :本机IP 地址。
在主从站设备都设置寄存器后,双方实现
Modbus 数据包的通信,图4为在Modbus  slave 中显
示的发送数据帧(Tx )和接收数据帧(Rx )。
|R x :000050-01 B 5 00 00 00 06 01 03 00 00 00 0A 51- 01 B 5 00 00 00 17 01 03 14 00 2B  00 04 02 A 3 00 03 00 05 00 41 00 43 00 07 00 41 00 2152- 01 B 6 00 00 00 06 01 03 00 00 00 0A 53- 01 B
6 00 00 00 17 01 03 14 00 2B  00 04 02 A 3 00 03 00 05 00 41 00 43 00 07 00 41 00 2154- 01 B 7 00 00 00 06 01 03 00 00 00 0A 55- 01 B 7 00 00 00 17 01 03 14 00 2B  00 04 02 A 3 00 03 00 05 00 41 00 43 00 07 00 41 00 2156- 01 B 8 00 00 00 06 01 03 00 00 00 0A
T x :000057-01 B 8 00 00 00 17 01 03 14 00 2B  00 04 02 A 3 00 03 00 05 00 41 00 43 00 07 00 41 00 21
图4 Modbus  poll -slave 通信报文
在M odbus 通信报文中可以发现,M odbus 协议 是以明文的形式进行传输,由于明文传输带来的安全 问题,本实验对M odbus 数据进行两种方式的加密, 以增强协议安全性。
4.2基于Modbus 协议的3DES 加密算法
3DES 算法是三次数据加密算法,即对每个数据 块应用三次加密标准(DES )算法,3DES 基于DES 算 法进行开发,DES 算法诞生于1970年代中期,它是一种 分组密码算法,DES 以64位密钥大小加密和解密[91 (其 中有效密钥长度为58位,第8、16、24、32、40、 48、56、64位是校验位),很容易被暴力破解。因 此,DES 安全性很低。3DES 是一种对称密钥加密块 密码,3DES 通过增加密钥长度来避免攻击,3DES
算法是由DES 算法改进而来,它的输入和输出同样 为64b it [1()],不同的是密钥长度为192bit  (其中有效 密钥长度为168b it ),3DES 具有三个不同DES 密钥 (K l ,K 2和K 3),3DES 的有效密钥长度为168位, 具有较高的安全性,为了提高算法安全性,通常三个 密钥是不同的。
D E S 算法的输入明文块与输出密文块均为
64b it ,它的加解密密钥长度也是64b it ,其中主要的 算法步骤是初始置换和逆置换。初始置换:将输入的 64b it 明文数据块按位置换规则重新组合,其中该规 则是输入的第58位换到第1位,第50位置换到第2位, 第42位置换到第3位,按照这一顺序进行置换直到第7
位变成最后1位。随后输出两块均为32位的部分,记
为L 0和RO ,L 0是输出数据块的左32位,R 0是输出数
据块的右32位,置换后的顺序如表1所示。
表1 DES 初始置换后数据位
58,50,42,34,26,18,1〇,2,60,52,
44,36,28,20,:12, 42 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,83 57,
49,41,33,25,17,9,1,59,51,
3 43,35,27,19,11,3
4 61,
53,45’37,29,21,13,5,63,55,
4 47,39,31,23,15,7
由表1可以知道经过初始置换后的L 0和R 0。
即:L 0=D 58D 50……D 8; R 0=D 57D 49…D 7〇 逆
置换:每个字节第8位是奇偶校验位,不作为有效密 钥,输入的数据块经过16次迭代相同运算后,得到最 后的L 16、R 16,将L 16和R 16作为输入开始进行逆置 换,逆置换正好是初始置换的逆运算,由此即得到密 文输出。
3DES 算法是对原始明文数据或揭秘数据进行3次
DES 加密或解密的过程,3DES 的算法过程如下:
假设明文数据为D ,三个密钥分别为尽:、/\2和 ,密文数据为A 则使用3DES 算法对明文数据加密 的公式如式(1)所示:
S =E k3(D k2(E ki(D ))) (1)
即k l 为密钥进行DES 加密,然后k 2对密钥进行
DES 解密,最后k 3进行DES 加密,解密为加密的相反
自动化博览■工业控制系统信息安全专刊• 6
9
研究分析
过程,解密公式如式(2)所示:
即1^为密钥进行DES 解密,然后k 2对密钥进行
DES 加密,最后k 3进行DES 解密。
本文对图4中的M o d b u s 数据报文 “B 50000000601030000000A ” 进行3DES 加密和解 密,其中3DES 加密得到的结果为“iF 0KxGob 5SVr
kUT 43h n eI 2XQoozs 4cpL ”,加密后的数据不容易
被窃听,即使被中间人窃取到加密后的报文,也不会 得到M odbus 主从站设备数据信息,经过3DES 解密 后,得到原始数据 “B 50000000601030000000A ”。 值得注意的是当三重密钥相同的时候,仅相当于执行 了 1次DES 加密。
4.3基于Modbus 协议的国密SM 4算法
国密SM 4算法属于分组密码算法,SM 4算法在 2006年公开,它是一个迭代分组算法,由加解密算法 和密钥扩展算法组成。SM 4分组长度为128b it ,加密 密钥长度为128b it ,其中SM 4的加密算法与密钥扩展 算法均采取32轮迭代结构。SM 4密码算法以字节(8 位)和字节(32位)作为单位进行数据处理。
SM 4密 码算法是对合运算,因此解密算法与加密算法的结构 相同,但是加解密算密钥的使用顺序相反,解密 轮密钥是加密轮密钥的逆序。轮密钥由加密密钥通过 密钥扩展算法生成,它的表达方式为
其中为32b it 。SM 4密码算法需要
使用密钥扩展算法,因为SM 4的128位密钥,使用32 轮迭代加密,每一轮加密都使用一个32位的轮密钥, 共使用32个轮密钥。从加密密钥产生出32个轮密钥。 轮密码生成为(rk 。,rk ,,...rk …),其中rk ,(i =0,l ,.…31).为 32bit 。图5是SM 4算法的算法结构图。
图5 SM 4算法结构图
本实验使用国密SM 4算法对Modbus 数据报文进 行了加密,本实验随机采用MK =8574494820985478
的方法,生成32轮密钥[rk ]_l -[rk ]_32之后对要加密 的Modbus 报文进行数据加解密。
4.4 3DES 算法和SM 4算法的比较(如表2所示)
表2 3DES 算法和SM 4算法的比较
算法类型对称算法对称算法
算法结构
运用算术逻辑运算进行初 始置换和逆置换,对DES 进行三轮加解密计算轮函数、
迭代制计算轮数48轮32轮密钥长度
128位
128位有效密钥长度58位
128位
5结朿语
本文首先针对M odbus 协议存在的安全性问题逬 行分析总结,利用M odbus 协议明文传输和缺乏身份 认证机制的问题指出可能造成拒绝服务攻击、中间人 攻击和重放攻击的威胁。并由此提出两种分组密码算 法,一是国际通用的对数据块进行3次DES 加解密的 三重加密算法3DES 算法,3DES 算法安全性较高;二 是为了加强我国自主知识产权的能力,将国密SM 4算 法应用于M odbus 协议中,SM 4算法具有的轮函数和 迭代制等特点使其具有较强的安全性。将两种算法运 用到工业控制系统中会增强系统的安全性,在一定程 度上抵御中间人攻击。SE
★基金项目:国家自然科学基金面上项目 (N o .61772327);上海自然科学基金面上项目 (NO .20ZR 1455900);奇安信大数据协同安全国 家工程实验室开放课题(No .QAX -201803);浙江 大学工业控制技术国家重点实验室开放式基金(No .
ICT 1800380);上海市科委科技创新行动计划,项
目编号(185********);上海市科委电力人工智 能工程技术研究中心项目(19DZ 2252800)。
70
•自动化博览•工业控制系统信息安全专刊
Research & Analysis
,作荇简介
石姗(1994-),女,山西大同人,学士,现就 读于上海电力大学计算机专业,研究方向为电力系 统信息安全。
王勇(1973-),男,河南确山人,教授,博士,现就职于上海电力大学,研究领域为电力控制 系统信息安全。
周林,男,硕士,现任上海电力大学信息安全 系系主任,研究领域为计算机网络与安全。
参考文献:
丨1丨俞野秋.基于Modbus和M(>dbuss-TCP协议的远程监控技术研究丨D丨.上海:上海交通大学,2012.
問刘飞,张仁域,李钢,等.基于哈希链与同步性机制的Modbus/TCP安全认证协议Q]•计算机应用研究,2018 (04): 1丨69 -1173,1186.
[3] Fachkha C. Cyber Threat Invcsti^arion of SCADA Modbus ActiviricsJC]. 2019 l()th IF-IP International (Conference on New Technologies, Mobility and Security (NTMS). IEEE, 2019: 1- 7.
|4| I'ovino, I.N., et al. Modl)us/DNP3 state-based intrusion detection systcm|R]. In Advanced Information Networking and Applications (AINA), 2010 24th IH I-J*! International Conference.
[$] Erez, N. and A. Wool, Control variable classification, modeling and anomaly detection in Modbus/TCP SCADA systems(J). International Journal o f Critical Infrastructure Protection, 2015.
丨6丨黄剑,张红梅,张向利,等.基于Modbus协议的数据采集与并行加密通信系统U】.计算机应用与软件,2U!*3*7*,34(3):260-266.
G()ldenberg N,\X.o()l A. Accurate modeling (>f Modbus/T(:P for intrusion detection in SCADA systems^". imcrnati()ndj(mrnal of Critical Protection, 2013, 6 (2): 63 - 75.
|8|察宇晴.SCADA系统中Modbus TCP/IP协议的异常检测研究丨D| •北京:北京交通大学,2017.
|9j |un Y,Na L,|un D•八design an(i implementation of high-speed 3【)KS algorithm systcm[C】.2()0() Second International Conference <)n Future Information Technology and Management I engineering. IEEE, 2009: 175 - 178.
丨川丨朱欣欣,李树国.基于FPC;A的高性能3DES算法实现⑴.微电子学与计算机,2U15,32(9 *123): 54 - 59.
[11] 吕述望,苏展波,王鹏,等.SM4分组密码算法综述[)].信息安全研究,2016,2(〗1):995 - 10〇7.
[12] 左卫,程永新.Modbus协议原理及安全性分析〇]•通信技术,20U 46 (12): 66 -肌
[13] Morris, T., R. Vaughn and ^ . Dandass. A retrofit nctuork intrusion detection system for MODBUS RTU and ASCII industrial control svstcms|RJ. In System Science (HICSS), 2012 45th Hawaii Intcrnatitinal Conference.
|14] Peterson, D. Quickdraw: Gcncraring sccurin1log events for legacy SCADA and control system dcviccs|R|. In Conference For Homeland Security, 2009. CATCH'09. Cybersecuritv Applications &TcchnologN'.
自动化博览•工业控制系统信息安全专刊• 71

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。