本文針對Modbus協議以明文傳輸的漏洞,對通信數據分別進行3DES和國密SM4加密處理,從而在一定程度上保證數據的安全,其中,國密SM4算法是我國自主知識產權算法,將SM4算法應用到Modbus協議通信過程對保證我國信息安全起到重要作用。
2 Modbus協議介紹
Modbus協議是OSI模型的應用層報文傳輸協議,它由Modicon公司(施耐德電氣)于1979年為了使用PLC通信而發行的,現如今由于Modbus協議易于維修保護和標準開放等優點,經常應用于ICS。Modbus通信協議有兩種主要版本,分別是串行鏈路、TCP/IP以太網。ICS現場設備的Modbus設備大多通過串口RS232/RS485或TCP/IP物理層進行通信連接。而Modbus協議的串行鏈路連接有兩種形式:RTU模式和ASCII模式。為了確保數據傳輸的完整性和準確性,Modbus TCP協議屬于TCP/IP模型的應用層,該協議通信采用主從的通訊模式,通常主站方發出請求的信息,從站方接收到消息回答響應并將數據發送至主站方,同時主站方也可能發送控制消息從而修改從站的數據,實現雙向讀寫[6]。Modbus協議報文格式[7]如圖1所示。
圖1 Modbus TCP應用數據單元
3 Modbus協議安全性分析
Modbus TCP協議具有Modbus協議和TCP/IP協議的安全威脅,即存在Modbus協議固有的安全問題,還引入TCP/IP協議的安全漏洞[8]。
(1)缺乏身份認證機制[7]:對于接入同一網絡的攻擊者,可以偽造Modbus TCP/IP報文與主站端實現通信,容易對主站進行竊聽或發送錯誤的數據;
(2)明文傳輸:系統的傳輸信息容易被中間人竊取,從而造成隱患威脅;
(3)拒絕服務攻擊(Denial of service,DoS):例如The SYN flood攻擊是最常見的一種DoS攻擊,攻擊者發送大量循環設置了SYN標志的TCP數據包到TCP端口,而不通過TCP三次握手進行連接,服務器存儲不足和TCP連接受限最終導致系統崩潰中斷,進行Modbus通信的主從站雙方通信也隨著中斷;
(4)中間人攻擊:例如ARP欺騙,由于Modbus協議缺乏集成加密和身份驗證,通信端容易被冒充,系統通信數據易被篡改或監聽,ARP欺騙就是其中的一種中間人攻擊方式,攻擊者利用Modbus協議漏洞冒充局域網內網關,使得主從站設備的通信數據都流向攻擊者,竊取到關鍵數據后為之后更大的攻擊做準備;
(5)重放攻擊:由于Modbus協議缺少相應的機制,攻擊者可以冒充主設備發送合法的控制命令到從設備,改寫從設備數據,或者向主從設備發送大量消息以消耗設備的存儲資源。
4 基于Modbus協議的3DES加密算法
針對Modbus協議存在的安全問題,本文首先通過Modbus poll和Modbus slave工具分別模擬Modbus主從站,實現了Modbus協議的通信,同時針對協議存在的安全問題,提出對稱加密算法3DES算法。
4.1 實驗環境
為了便于調試Modbus協議,工具軟件Modbuspoll和Modbus slave分別模擬Modbus主站設備和從站設備。Modbus poll是Modbus主站設備仿真器,可以用于測試和調試Modbus從站設備,便于觀察Modbus通信過程中的各種報文數據。Modbusslave用來模擬Modbus從設備,它用于接收主設備的命令包,并回送數據包,可測試和調試Modbus主站設備。
其中Modbus poll和Modbus slave都需要進行連接參數設置和寄存器設置,圖2是Modbus poll的參數設置。
(a)Modbus poll連接參數設置 (b)Modbus poll寄存器設置
圖2 Modbus poll參數設置
(1)連接參數設置:Connection:選擇Modbus TCP/IP;IP address:表示本機的IP地址。
(2)寄存器設定:Slave ID:表示從機的地址,要與自己的從機地址一致,選擇1;Function:表示功能碼的選擇,選擇03:保持寄存器;Address:線圈的起始地址,可以使用邏輯地址,選擇0。
Modbus slave的參數設置如圖3所示。
(a)Modbus slave寄存器設定 (b)Modbus slave連接設定
圖3 Modbus slave參數設置
(1)寄存器設定:Slave ID:表示從機的地址,設置為1;Function:表示功能碼,同樣設置為03:保持寄存器;Address:表示線圈的起始地址,設置為0。
(2)連接設置:Connection:實驗選用Modbus TCP/IP連接;IP Address:本機IP地址。
在主從站設備都設置寄存器后,雙方實現Modbus數據包的通信,圖4為在Modbus slave中顯示的發送數據幀(Tx)和接收數據幀(Rx)。
圖4 Modbus poll-slave通信報文
在Modbus通信報文中可以發現,Modbus協議是以明文的形式進行傳輸,由于明文傳輸帶來的安全問題,本實驗對Modbus數據進行兩種方式的加密,以增強協議安全性。
4.2 基于Modbus協議的3DES加密算法
3DES算法是三次數據加密算法,即對每個數據塊應用三次加密標準(DES)算法,3DES基于DES算法進行開發,DES算法誕生于1970年代中期,它是一種分組密碼算法,DES以64位密鑰大小加密和解密[9](其中有效密鑰長度為58位,第8、16、24、32、40、48、56、64位是校驗位),很容易被暴力破解。因此,DES安全性很低。3DES是一種對稱密鑰加密塊密碼,3DES通過增加密鑰長度來避免攻擊,3DES算法是由DES算法改進而來,它的輸入和輸出同樣為64bit[10],不同的是密鑰長度為192bit(其中有效密鑰長度為168bit),3DES具有三個不同DES密鑰(K1,K2和K3),3DES的有效密鑰長度為168位,具有較高的安全性,為了提高算法安全性,通常三個密鑰是不同的。
DES算法的輸入明文塊與輸出密文塊均為64bit,它的加解密密鑰長度也是64bit,其中主要的算法步驟是初始置換和逆置換。初始置換:將輸入的64bit明文數據塊按位置換規則重新組合,其中該規則是輸入的第58位換到第1位,第50位置換到第2位,第42位置換到第3位,按照這一順序進行置換直到第7位變成最后1位。隨后輸出兩塊均為32位的部分,記為L0和R0,L0是輸出數據塊的左32位,R0是輸出數據塊的右32位,置換后的順序如表1所示。
表1 DES初始置換后數據位
由表1可以知道經過初始置換后的L0和R0。即:L0=D58D50……D8;R0=D57D49……D7。逆置換:每個字節第8位是奇偶校驗位,不作為有效密鑰,輸入的數據塊經過16次迭代相同運算后,得到最后的L16、R16,將L16和R16作為輸入開始進行逆置換,逆置換正好是初始置換的逆運算,由此即得到密文輸出。
3DES算法是對原始明文數據或揭秘數據進行3次DES加密或解密的過程,3DES的算法過程如下:
假設明文數據為D,三個密鑰分別為Ek1、Dk2和Ek3,密文數據為S,則使用3DES算法對明文數據加密的公式如式(1)所示:
即k1為密鑰進行DES加密,然后k2對密鑰進行DES解密,最后k3進行DES加密,解密為加密的相反過程,解密公式如式(2)所示:
即k1為密鑰進行DES解密,然后k2對密鑰進行DES加密,最后k3進行DES解密。
本文對圖4中的Modbus數據報文“B50000000601030000000A”進行3DES加密和解密,其中3DES加密得到的結果為“iF0KxGob5SVrkUT43hneI2XQoozs4cpL”,加密后的數據不容易被竊聽,即使被中間人竊取到加密后的報文,也不會得到Modbus主從站設備數據信息,經過3DES解密后,得到原始數據“B50000000601030000000A”。值得注意的是當三重密鑰相同的時候,僅相當于執行了1次DES加密。
4.3 基于Modbus協議的國密SM4算法
國密SM4算法屬于分組密碼算法,SM4算法在2006年公開,它是一個迭代分組算法,由加解密算法和密鑰擴展算法組成。SM4分組長度為128bit,加密密鑰長度為128bit,其中SM4的加密算法與密鑰擴展算法均采取32輪迭代結構。SM4密碼算法以字節(8位)和字節(32位)作為單位進行數據處理。SM4密碼算法是對合運算,因此解密算法與加密算法的結構相同,但是加解密算法輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。輪密鑰由加密密鑰通過密鑰擴展算法生成,它的表達方式為MK=(MK0, MK1,MK2, MK3)[11],其中MKi為32bit。SM4密碼算法需要使用密鑰擴展算法,因為SM4的128位密鑰,使用32輪迭代加密,每一輪加密都使用一個32位的輪密鑰,共使用32個輪密鑰。從加密密鑰產生出32個輪密鑰。輪密碼生成為(rk0, rk1,…rk31),其中rki (i=0,1,….31)為32bit。圖5是SM4算法的算法結構圖。
圖5 SM4算法結構圖
本實驗使用國密SM4算法對Modbus數據報文進行了加密,本實驗隨機采用MK=8574494820985478的方法,生成32輪密鑰[rk]_1-[rk]_32之后對要加密的Modbus報文進行數據加解密。
4.4 3DES算法和SM4算法的比較(如表2所示)
表2 3DES算法和SM4算法的比較
5 結束語
本文首先針對Modbus協議存在的安全性問題進行分析總結,利用Modbus協議明文傳輸和缺乏身份認證機制的問題指出可能造成拒絕服務攻擊、中間人攻擊和重放攻擊的威脅。并由此提出兩種分組密碼算法,一是國際通用的對數據塊進行3次DES加解密的三重加密算法3DES算法,3DES算法安全性較高;二是為了加強我國自主知識產權的能力,將國密SM4算法應用于Modbus協議中,SM4算法具有的輪函數和迭代制等特點使其具有較強的安全性。將兩種算法運用到工業控制系統中會增強系統的安全性,在一定程度上抵御中間人攻擊。
★基金項目:國家自然科學基金面上項目(No.61772327);上海自然科學基金面上項目(No.20ZR1455900);奇安信大數據協同安全國家工程實驗室開放課題(No.QAX-201803);浙江大學工業控制技術國家重點實驗室開放式基金(No.ICT1800380);上海市科委科技創新行動計劃,項目編號(18511105700);上海市科委電力人工智能工程技術研究 中心項目(19DZ2252800)。
作者簡介
石 姍(1994-),女,山西大同人,學士,現就讀于上海電力大學計算機專業,研究方向為電力系統信息安全。
王 勇(1973-),男,河南確山人,教授,博士,現就職于上海電力大學,研究領域為電力控制系統信息安全。
周 林,男,碩士,現任上海電力大學信息安全系系主任,研究領域為計算機網絡與安全。
參考文獻:
[1] 俞野秋. 基于Modbus和Modbuss-TCP協議的遠程監控技術研究[D]. 上海 : 上海交通大學, 2012.
[2] 劉飛, 張仁斌, 李鋼, 等. 基于哈希鏈與同步性機制的Modbus/TCP安全認證協議[J]. 計算機應用研究, 2018 (04) : 1169 - 1173, 1186.
[3] Fachkha C. Cyber Threat Investigation of SCADA Modbus Activities[C]. 2019 10th IF-IP International Conference on New Technologies, Mobility and Security (NTMS). IEEE, 2019: 1 - 7.
[4] Fovino, I.N., et al. Modbus/DNP3 state-based intrusion detection system[R]. In Advanced Information Networking and Applications (AINA), 2010 24th IEEE International Conference.
[5] Erez, N. and A. Wool, Control variable classification, modeling and anomaly detection in Modbus/TCP SCADA systems[J]. International Journal of Critical Infrastructure Protection, 2015.
[6] 黃劍, 張紅梅, 張向利, 等. 基于Modbus協議的數據采集與并行加密通信系統[J]. 計算機應用與軟件, 2017, 34 (3) : 260 - 266.
[7] Goldenberg N, Wool A. Accurate modeling of Modbus/TCP for intrusion detection in SCADA systems[J]. International Journal of Critical Infrastructure Protection, 2013, 6 (2) : 63 - 75.
[8] 蔡宇晴. SCADA系統中Modbus TCP/IP協議的異常檢測研究[D]. 北京 : 北京交通大學,2017.
[9] Jun Y, Na L, Jun D. A design and implementation of high-speed 3DES algorithm system[C]. 2009 Second International Conference on Future Information Technology and Management Engineering. IEEE, 2009: 175 - 178.
[10] 朱欣欣, 李樹國. 基于FPGA的高性能3DES算法實現[J]. 微電子學與計算機, 2015, 32 (9) : 54 - 59.
[11] 呂述望, 蘇展波, 王鵬, 等. SM4分組密碼算法綜述[J]. 信息安全研究, 2016, 2 (11) : 995 – 1007.
[12] 左衛, 程永新. Modbus協議原理及安全性分析[J]. 通信技術, 2013, 46 (12) : 66 - 69.
[13] Morris, T., R. Vaughn and Y. Dandass. A retrofit network intrusion detection system for MODBUS RTU and ASCII industrial control systems[R]. In System Science (HICSS), 2012 45th Hawaii International Conference.
[14] Peterson, D. Quickdraw: Generating security log events for legacy SCADA and control system devices[R]. In Conference For Homeland Security, 2009. CATCH'09. Cybersecurity Applications &Technology
摘自《工業控制系統信息安全專刊(第七輯)》