Modbus通信協議是工業控制最為重要的總線協議之一,自1979年開始,PLC一直將其作為工業串行鏈路的標準,使得不同廠家基于該協議生產的PLC能夠互聯互通[4]。目前,Modbus TCP通信協議是Modbus的以太網通信協議,其廣泛應用在工業、交通、電力、樓宇控制等領域[5,6]。Modbus通信協議作為開放的協議,不涉及到知識產權,因此,在自動化領域得到了廣泛應用。然而,在實際應用過程中逐步暴露出了嚴重的安全隱患[7,8],協議的安全性是其設計之初所沒有考慮的因素之一。Modbus通信協議在國內被自動化標準委員會(SAC/TC124)轉化為國家標準,進一步促進了其在國內工控領域的普及與應用。由于協議設計之初并沒有考慮安全性,因此,攻擊者一旦進入工控系統內部的ModbusTCP網絡,就可以偽造或篡改協議數據包、竊聽網絡通信并獲取敏感數據[9,10]。本文將基于國產密碼算法與國密證書實現ModbusTCP協議的安全防護,從協議的源頭杜絕協議數據被偽造、篡改及竊取。
2 Modbus TCP協議安全隱患
Modbus TCP協議工作在TCP/IP的應用層,采用主從通訊模式,其報文格式如圖1所示。
圖1 Modbus報文結構
Modbus TCP協議是基于TCP/IP協議之上的應用層協議,根據圖1可以看出,其安全缺陷有如下幾點:
(1)無安全認證機制。任意接入網絡的客戶端均可以與服務器通信,并可對服務器發送惡意指令。
(2)數據容易被篡改。攻擊者可以任意截取數據報文,并篡改相應數據項,實現其攻擊目的。
(3)報文無加密機制。Modbus TCP協議以明文方式傳輸數據,控制類報文及敏感數據容易被攻擊者竊取。
(4)容易被重放攻擊。Modbus TCP無防重放機制,攻擊者可以重復發送截獲的數據報文,影響系統的穩定性。
因此,基于以上幾方面的安全缺陷,本文提出了基于國密算法與國密數字證書對Modbus TCP協議進行安全防護的解決方案,保證報文信息的完整性和身份的可靠性,實現協議防重放、抗抵賴與防篡改的能力。
3 國產密碼及數字證書體系介紹
近幾年,我國密碼管理局制定了一系列密碼算法標準,比較常用的包括SM2、SM3、SM4算法[11~13]等。SM2是非對稱算法,SM3是哈希算法,SM4是對稱算法。本文基于國密算法實現Modbus TCP協議的安全防護。SM2是數字簽名算法,由簽名者對數據生成簽名數據,并由驗證者驗證簽名數據的可靠性。簽名者擁有一個私鑰和一個公鑰,私鑰用來產生簽名,公鑰用來驗證簽名。驗證者獲得簽名者的公鑰可以驗證簽名數據。協議的安全認證就需要SM2算法與SM3算法配合實現,可以通過SM3算法對協議數據包計算雜湊值,再利用SM2算法對雜湊值計算簽名值。圖2是SM2算法數字簽名驗證過程。
圖2 數字簽名及驗證過程
數字證書系統是PKI體系的重要組成部分,可為工業控制系統中的用戶、關鍵網絡設備、服務器提供數字認證服務。數字證書為工控系統與網絡關鍵環節實現高強度的身份認證和安全數據傳輸提供了安全技術保證。圖3為數字證書系統架構。
圖3 數字證書體系
基于國產密碼算法進行協議安全防護的文獻不少,如文獻[14]是基于國密SM9算法在變電站通信協議的安全防護,文獻[15]是基于SM2算法在變電站站控層協議與過程層協議的安全防護,兩者的防護機制類似,都遵循了IEC 62351[16]中的安全機制。而本文采用國密算法與國密證書在Modbus TCP協議層進行輕量級安全防護,對協議的改造比較小,基于國密算法標準自研安全加密組件,不采用及依賴OpenSSL開源安全組件,為后期升級維護提供了極大的便捷。
4 基于國密算法與證書安全協議設計
4.1 Modbus TCP協議安全認證及密鑰協商機制
基于Modbus TCP協議通信的客戶端與服務端在通信前要進行TCP連接,通常需進行三次TCP握手后完成連接。而基于Modbus TCP協議通信雙方也沒有身份認證機制,所以本文在客戶端與服務端進行業務數據傳輸前增加安全認證及密鑰協商安全流程,為后續的業務數據傳輸提供機密性、不可抵賴性保護。基于Modbus TCP協議的雙向身份認證協議格式設計如下。
(1)認證請求報文
通信雙方在建立TCP連接后,客戶端向服務端發起認證請求報文,如表1所示。
(2)認證應答報文
服務端收到認證請求報文后,驗證通過則向客戶端發送應答報文,否則斷開連接,如表2所示。
(3)認證確認報文
客戶端收到服務端的認證應答報文后,驗證通過,則向服務端發送確認報文;否則斷開連接,重新建立TCP連接并開始認證過程,如表3所示。
(4)密鑰協商請求報文
通信雙方完成雙向身份認證后,客戶端生成隨機數利用服務端公鑰加密、客戶端私鑰簽名后發送給服務端,如表4所示。
(5)密鑰協商應答報文
服務端收到密鑰協商請求報文后,對隨機數密文驗證、解密通過后,將隨機數作為雙方的會話密鑰,密鑰協商應答報文格式如表5所示。
圖4為客戶端與服務端雙向身份認證及密鑰協商流程設計。
圖4 客戶端-服務端雙向認證與密鑰協商
通過上述設計,實現通信雙方的雙向身份認證、會話密鑰協商兩個關鍵流程,正是這兩個安全過程保證了后續協議報文傳輸的機密性和不可抵賴性。
4.2 Modbus TCP協議安全報文傳輸機制
基于以上Modbus TCP協議完成通信雙方的雙向身份認證、會話密鑰協商流程,杜絕了非法客戶端的惡意連接與攻擊,而Modbus TCP協議報文的機密性、防重放及防篡改還沒有安全保護機制,因此,本文在Modbus TCP協議的基礎上增加安全域來保障協議報文的機密性與不可抵賴性,同時應用會話密鑰來保護協議報文的機密性。圖5為協議增加安全域的報文結構。
圖5 Modbus TCP 安全協議
可以看出,對原Modbus TCP協議的協議數據單元采用SM4算法進行加密保護,并在協議的末尾擴展了安全域,安全域采用SM2算法來保證協議報文的完整性、抗抵賴性及防篡改與重放。圖6為安全報文交互流程。
圖6 客戶端-服務端安全報文傳輸過程
5 仿真實驗
5.1 Modbus TCP安全認證時效性分析
客戶端與服務端基于TCP協議建立連接,TCP三次握手建立連接后,需要進行雙向身份認證與密鑰協商,依據測試目的,搭建測試環境,環境配置信息如表6所示。
基于以上的測試環境,驗證Modbus TCP協議的安全認證與密鑰協商機制,通過建立6次連接并記錄相關測試數據,測試結果如表7所示。
通過表7的實驗結果可以看出,在原有ModbusTCP協議增加安全認證與密鑰協商機制實現通信雙方端到端安全認證,由于認證過程主要是SM2簽名、驗證操作,所增加的時間是毫秒級,平均總耗時約為350毫秒。本文基于SM2算法進行協議層輕量級安全防護,在安全認證與密鑰協商方面具有一定的時效性優勢,而客戶端與服務端的連接操作也并不頻繁,因此,在實際工程應用中是可以接受的。
5.2 加密算法時效性
本文基于國密SM4算法對協議報文進行加密,SM4算法在本文測試環境中加解密速率可達1.2Gbps,由于通信雙方都需要加密和解密數據包,雙方都會增加一定的時間消耗,而SM4算法加解密報文的時間增加為毫秒級,因此報文加解密的效率是可以保證的。此外,通信雙方所采用的會話密鑰都是動態產生的,因此,加解密報文的機密性是可靠的。
6 總結
近年來,基于工控協議安全漏洞的攻擊事件不斷發生,而傳統的工控協議在設計之初沒有考慮協議的安全性,本文基于國密算法與國密數字證書技術對Modbus TCP協議進行安全改造,使其具備相應的安全機制。特別是在協議的通信雙方增加身份認證、密鑰協商安全機制,實現通信雙方的身份鑒別并生成加密密鑰;而在協議報文傳輸前可利用加密密鑰對協議報文加密并簽名,實現了雙方通信的端到端安全認證,同時也杜絕了協議報文在傳輸過程被竊取、偽造、篡改及重放的可能性。
本文也通過仿真實驗,驗證了Modbus TCP安全協議雙向身份認證的時效性與報文加密的時效性,根據實驗結果,增加安全機制的Modbus TCP協議可滿足實際應用的需求,可在實際的工程應用中采用協議的認證加密機制。
作者簡介
許 艾(1982-),男,河北人,工程師,學士,現就職于北京四方繼保工程技術有限公司,主要從事密碼學、信息安全、物聯網安全等相關領域的研究及應用工作。
劉 剛(1971-),男,四川人,碩士,現任北京四方繼保工程技術有限公司研發中心副主任,主要從事電力自動化領域相關產品研發工作,研究方向為網絡安全、工控安全、調度自動化主站及電力監控系統安全防護。
徐延明(1973-),男,陜西人,高級工程師,碩士,現就職于北京四方繼保工程技術有限公司,主要從事電力系統自動化、工業自動化工作,主要研究方向為工業控制系統信息安全、智能變電站信息安全。
王 闖(1987-),男,吉林人,中級工程師,學士,現就職于北京四方繼保工程技術有限公司,從事電力系統通訊相關技術工作。
常 駿(1983-),男,山西人,中級工程師,碩士,現就職于北京四方繼保工程技術有限公司,從事電力系統自動化相關技術工作。
參考文獻:
[1] 韓正. 智能制造領域工業控制系統網絡安全防護研究[J]. 網絡安全技術與應用, 2020, (11) : 161 - 163.
[2] 劉冬, 程曦, 楊帥鋒, 孫軍. 加強我國工業信息安全的思考[J]. 信息安全與通信保密, 2019, (08) : 24 - 35.
[3] 李揚. 新形勢下工業控制系統信息安全現狀分析與建議[J]. 保密科學技術, 2017, (07) : 32 - 36.
[4] 王玉敏. MODBUS協議簇簡介[J]. 中國儀器儀表, 2019, (12) : 21 - 26.
[5] 章恒. 工業互聯網安全態勢感知技術的應用研究[A]. 天津市電子學會、天津市儀器儀表學會. 第三十四屆中國(天津)2020’IT、網絡、信息技術、電子、儀器儀表創新學術會議論文集[C]. 天津: 天津市電子學會, 2020. 3.
[6] 劉威, 李冬, 孫波. 工業控制系統安全分析[J]. 信息網絡安全, 2012, (08) : 41 - 43.
[7] 賈東耀, 汪仁煌. 工業控制網絡結構的發展趨勢[J]. 工業儀表與自動化裝置, 2002, (05) : 12 – 14 + 11.
[8] 詹靜, 楊靜. 基于遠程證明的可信Modbus/TCP協議研究[J]. 工程科學與技術, 2017, 49 (01) : 197 - 205.
[9] 鄒曉峰, 肖遠興. 基于SM2的配電網Modbus報文安全性研究[J]. 電力系統保護與控制, 2018, 46 (12) : 151 - 157.
[10] 邱帆, 陳蘭蘭, 林楠, 左黎明. 基于SM9的配電網Modbus報文安全性分析及改進[J]. 中國電力, 2019, 52 (10) : 18 - 25.
[11] GB/T 32918.2 - 2016, SM2橢圓曲線公鑰密碼算法第2部分 : 數字簽名算法[S].
[12] GB/T 32905 - 2016 信息安全技術, SM3密碼雜湊算法[S].
[13] GB/T 32907 - 2016 信息安全技術, SM4分組密碼算法[S].
[14] 許艾, 劉剛, 徐延明. 基于SM9標識密碼智能變電站安全防護技術[J]. 自動化博覽, 2018, 35 (S2) : 65 - 71.
[15] 張喜銘, 李金, 邱榮福, 許艾. 國密體系在智能變電站的研究與應用[J]. 南方電網技術, 2020, 14 (01) : 39 - 45.
[16] IEC 61850, Communication networks and systems in substation[S].
摘自《工業控制系統信息安全專刊(第七輯)》