0 引言
工業控制系統是水利工程的核心部位,隨著工業控制系統和信息技術加速融合,原本獨立、封閉的工控系統面臨著更多的外部威脅[1]。一直以來工控網絡系統更多地考慮其功能的可用性和業務的連續性,而其安全性并未得到足夠的重視,尤其缺乏對數據傳輸過程的安全防護[2],如重放攻擊、指令篡改攻擊等,致使安全隱患重重。典型的水利工業控制系統包括過程監控層、現場控制層以及現場設備層[3]。過程監控層主要負責監督和控制系統各個環節物理過程的功能實現,包含操作員站、工程師站、服務器等設備,現場控制層一般由多個現地控制單元組成,包含可編程邏輯控制器(programmablelogiccontroller,PLC)等設備。現場設備層包含各類傳感器和執行器,包括水位計、流量計、啟閉機等[4]。過程監控層與現場控制層之間一般使用工業以太網協議進行通信,現場控制層與現場設備層之間一般使用現場總線協議進行通信。
目前,水利工業控制系統中使用的工業以太網協議多為Modbus/TCP、Profinet等[5],使用的現場總線協議多為Modbus、ModbusPlus等[6],這些協議都是若干年前設計的,沒有考慮協議安全性問題,攻擊者利用協議漏洞很容易監聽、篡改、偽造通信報文,進而控制可編程邏輯控制器對水利工程現場造成破壞。針對工控系統協議脆弱性問題,部分國內外學者提出了解決方案,陳寧等[8提出了一種基于對稱加密算法實現的Modbus協議加固方案,該方案可有效解決現場總線層數據明文傳輸的安全問題,但該方案僅針對總線層的Modbus通信協議,具有一定的局限性,且沒有考慮工業以太網的數據安全防護。Fovino等[9]設計了一種新型的安全Modbus協議,基于RSA(Rivest-Shamir-Adleman)和 SHA2(SecureHash Algorithm2)算法的數字簽名方案,提高了Modbus協議的完整性和真實性,實現通信的安全加固,但該方法也僅是對總線層協議的加固,并且采用的加密算法不符合國產密碼算法標準。Martins等[1]提出了一種增強型Modbus/TCP安全協議,通過身份驗證和授權功能來增強新的Mod-bus/TCP安全性,防止未經授權的非法訪問,但該方法僅解決了協議缺乏身份認證的問題,并未考慮報文的明文傳輸風險。當前水利工控系統多為單一局域網部署[11],現有的密碼設備多用于實現網域之間的加密通信,難以適配局域網內部設備之間的加密需求。已建水利工控系統數量龐大,若對全部系統開展通信網絡改造或重建成本較高,周期較長,影響系統穩定運行,因此目前不具備大規模改造的現實條件[12]
密碼技術是當前階段及未來相當長時期保障水利系統安全所依賴的關鍵技術[13]。密碼技術是信息安全領域最基礎、最可靠、最經濟的防護技術[14],可通過采用特定變換方法對信息進行加密保護和安全認證,認證技術主要解決網絡通信過程中通信主體和信息的真實可靠性問題,加密技術主要解決網絡通信過程中數據的機密性問題。
綜上所述,面對當前水利工控系統突出的數據安全風險以及難以直接開展系統升級改造的困境,結合密碼技術,本文有針對性的提出一套數據安全解決方法,研發相應的密碼模塊,可即插即用接入到現有工控系統中,實現工控數據傳輸的機密性、完整性和真實性保護,保障水利工控場景數據傳輸安全。
1 水利工控面臨的安全風險
根據相關通信技術標準,工控協議主要分為4類,包括傳統控制網絡協議、現場總線協議、工業以太網協議和工業無線協議[15]。目前水利工控系統業務應用主要涉及工業以太網協議和現場總線協議(表1)。

工業以太網協議是一組用于在工業環境中進行數據通信和控制的通信協議,它是在以太網技術的基礎上發展而來的[16]。本文以當前水利工控系統主流的Modbus/TCP為例說明工業以太網協議的安全風險,主要包括:
(1)缺乏身份認證。當攻擊主機接入工控系統網絡,通過構造Modbus/TCP協議報文向控制器發送指令,而控制器無法鑒別信息來源是否為授權用戶。(2)數據明文傳輸。協議本身缺少機密性和完整性保護,報文內容易被捕獲和解析,加之Modbus/TCP為公開協議,攻擊者可結合相關功能碼對協議報文進行篡改,造成工控系統非正常運轉。(3)重放攻擊。攻擊者可以不斷重放某一條或某幾條報文,由于缺乏校驗機制,當前多數工控設備無法抵御此類攻擊。(4)分布式拒絕服務攻擊。攻擊者通過構造數量眾多的攻擊源,同時向控制器發起請求,使得受害主機資源迅速耗盡,最終使得控制器不能正常工作。
現場總線協議是一系列工業協議的總稱,主要用于實時分布式控制、終端數據采集,它充許控制器、執行器和傳感器在工業自動化系統中直接進行通信,從而實現信號的傳輸和控制[17]。本文以當前水利工控系統主流的Modbus協議為例說明現場總線協議的安全風險,主要包括:
(1)缺乏身份驗證。Modbus協議中并沒有內置的身份驗證機制,這使得攻擊設備可直接進行未授權訪問,發送惡意命令。(2)數據明文傳輸。Modbus協議默認使用明文傳輸數據,不提供加密功能,導致數據包和命令極易被竊聽和篡改。(3)缺乏完整性保護。Modbus協議中沒有提供數據完整性保護機制,沒有用于檢查數據是否被篡改的校驗值。
2 協議加固設計
2.1 工業以太網加固設計
工業以太網加固設計基于IPSec安全協議隧道模式實現。對工業以太網中的明文IP 消息(IP message,IP MSG)進行加密,得到封裝安全載荷(encapsulatingsecuritypayload,ESP),對工業以太網中的封裝安全載荷進行解密,提取得到原始明文IP消息,加密和解密過程通信報文結構設計如圖1所示。對于明文IP消息進行加密實現過程如下: ① 加密過程對原始IP報文內容不做任何改動。 ② 在IP消息尾部添加尾部信息(ESPTrailer),尾部信息包括對明文進行填充的數據Padding(長度不定)、填充長度PaddingLength(1Byte)、下一頭部NextHeader(1Byte)。 ③ 采用用于加密的會話密鑰(sessionkey,SK),基于對稱密碼算法對明文IP消息和尾部信息做報文加密,得到16字節整數倍長度的加密消息(encryptedmessage)。 ④ 在加密消息頭部添加頭部信息ESPHeader,頭部信息包括安全索引參數(securityparametersindex,SPI)(4Byte)和序列號(sequencenumber,SN)(4Byte)。 ⑤ 采用用于完整性校驗的會話密鑰(authenticationkey,AK),基于雜湊密碼算法對{ESPHeaderlI Encrypted Message做摘要運算,得到12字節長度的完整性校驗值,該值作為ESP認證數據(authenticationdata,AD)。 ⑥ 將上述得到的ESP頭、加密消息、認證數據依次拼接,得到封裝安全載荷:ESP Σ=Σ {ESP HeaderlI EncryptedMessage Il AD}。

對封裝安全載荷進行解密,實現如下: ① 對封裝安全載荷中{ESPHeaderlI EncryptedMessage}的內容進行完整性校驗計算,得到臨時校驗值T-AD,若T-AD與AD一致,則校驗通過,否則丟棄該報文。 ② 采用用于加密的會話密鑰,基于對稱密碼算法對加密消息進行解密,得到原始IP報文和ESP尾部數據的集合。根據ESP尾部的填充長度信息,找出填充的字段,刪去后得到原IP報文。 ③ 將解密得到的原IP報文發送至工業以太網中。
2.2 現場總線加密設計
現場總線加密設計基于自主設計的安全協議實現。總線層加密協議不挑選原報文協議類型,可對所有總線層報文進行加密。本加密設計方案,將對所有現場總線層中的應用數據單元(applicationdataunit,ADU)進行加密,對密文數據單元(ciphertextdataunit,CDU)進行解密,加密和解密過程通信報文結構設計如圖2所示。

加密過程對應用數據單元內容不做任何改動,加密步驟如下: ① 采用預制加密密鑰(pre-made encryp-tionkey,PEK),基于對稱密碼算法對ADU做報文加密,得到16字節整數倍長度的加密消息(encryptedADU,E-ADU)。 ② 采用預制共享密鑰(pre-madesharedkey,PSK),基于雜湊密碼算法對ADU做雜湊運算,得到32字節長度的消息認證碼(messageauthenti-cationcode,MAC)。 ③ 在加密消息頭部添加頭部信息(header),頭部信息包括加密標識(cryptographiciden-tification)隨機數(randomnumber)套件標識(suitei-dentification)和消息長度(messagelength)。 ④ 加密標識為密文標識碼,從 0xF8~0xFA 隨機選取,占1個字節。 ⑤ 隨機數由隨機數發生器生成,占1個字節。 ⑥ 加密套件標識表示本次加解密使用的密碼算法套件,0x01 表示SM1、SM3算法組合, 0x02 表示SM4、SM3算法組合,占1個字節。 ⑦ 消息長度包括E-ADU和MAC兩部分的長度,使用2字節表示。 ⑧ 在加密消息尾部添加尾部信息(trailer),尾部信息包括MAC和CRC(cyclicredundancycheck)校驗碼。 ⑨ CRC校驗碼由CRC生成函數計算,占2個字節,函數的輸入包括頭部消息、加密消息、消息認證碼。 ⑩ 將上述得到的加密標識、隨機數、套件標識、消息長度、加密消息、消息認證碼、CRC校驗碼依次拼接,得到密文數據單元:
。
對于密文數據單元進行解密實現如下: ① 對密文數據單元中除尾部CRC以外的其他內容進行CRC計算,得到臨時校驗碼T-CRC,若T-CRC與CRC一致,則校驗通過,否則丟棄該報文。 ② 根據消息長度標識截取得到加密消息和消息認證碼,根據加密套件標識選取合適密碼算法對加密消息進行解密,得到應用數據單元。 ③ 采用預制共享密鑰,基于雜湊密碼算法對得到的應用數據單元做雜湊運算,計算得到臨時消息認證碼T-MAC,若T-MAC與MAC一致,則通過真實性和完整性校驗,否則,丟棄該報文。 ④ 將解密得到的應用數據單元發送至總線網絡中。
3 加密模塊設計
加密模塊的設計應充分結合水利工控系統現場情況,主要考慮以下設計原則: ① 處理器的數據處理能力,應滿足水利業務數據的吞吐率,既不能影響業務流暢性,又要考慮成本; ② 加解密芯片的選擇,應支持國產商用密碼算法,保障加解密的效率足夠高、加解密時延盡可能小; ③ 考慮水利設備實際工作環境,確保防水防潮、工作溫度的耐受范圍,確保寬壓供電盡可能滿足更多現場供電條件[8]; ④ 考慮水利系統實際運行情況,應達到即插即用效果,實現對原系統的低成本改造。
加密模塊由1個主處理器單元、1個安全加密模塊、2路千兆以太網口、2路485總線接口、供電模塊、輔助模塊等構成,其模塊結構設計如圖3所示。
主處理器是基于ARM(advancedRISCmachine)雙核CortexA9的應用處理器,是可編程邏輯單元一體化處理器。密碼芯片選用國產安全芯片,內部集成了系列國產商用密碼算法,內部集成eFlash,可安全存儲數字證書及密鑰文件,支持數據加解密、簽名驗簽、密鑰生成等基礎密碼服務。板載2路485總線接口、2路千兆以太網、實時時鐘模塊、512MBEEPROM數據儲存顆粒、UART串口和Debug調試口。

各個模塊的連接關系如下:ARM處理器通過SD接口連接加密模塊,實現待加解密數據的推送和加解密后數據的回傳;通過二芯電源接口連接供電模塊,以維持正常的工作電壓和電流;處理器的ULPI接口通過USB收發器轉換為USB接口,利用串口轉換芯片將USB接口轉換為UART接口,并擴展出2個RS485接口,用于連接總線通信設備;處理器通過2個RGMII接口連接網絡PHY芯片,并擴展出2個千兆網口,用于連接以太網設備;處理器使用專用的DDR3和EM-MC接口來連接存儲芯片進行數據存儲,通過SPI接口連接一個EEPROM進行處理器的應用程序存儲;另外處理器還配置了外置RTC芯片,兩者之間通過I2C的接口進行數據的傳輸
4 測試結果與分析
4.1 測試場景部署
測試設備包括測試主機1臺、監測主機1臺、攻擊機1臺、PLC2臺(西門子S7-200Smart、施耐德2634M)、溫濕度傳感器2個、鏡像功能交換機1臺、加密模塊5個。設備連接部署情況如圖4所示,在原水利工控場景中加裝加密模塊,所有加密模塊均串接至設備線路出口處,在測試主機處加裝1個,PLC設備處各部署1個,溫濕度傳感器各加裝1個。原系統中工業以太網采用Modbus/TCP協議進行數據收發測試,現場總線采用Modbus協議進行數據收發測試。

4.2 安全性測試與分析
安全性測試包括加解密成功率測試、加解密前后時延測試、連續運行穩定性測試和安全攻擊測試。
(1)加解密成功率。成功率測試在工業以太網層和現場總線層分別開展數據收發測試,工業以太網層包括測試主機與西門子PLC、測試主機與施耐德PLC、西門子PLC與施耐德PLC之間,現場總線層的西門子PLC與溫濕度儀表之間。測試期間,工業以太網層各通訊主體間數據收發10000次,共計成功收發數據10000次,失敗0次;現場總線層各通訊主體間數據收發10000次,共計成功收發數據9977次,失敗23次。經查看日志分析,總線層數據加解密會偶爾出現CRC校驗失敗或請求無響應等情況,這些問題主要由接線不穩定或線路干擾等引起,是串行鏈路中常見問題
(2)時延測試。加解密時延測試分別在工業以太網層和現場總線層開展,測試數據情況見表2。

工業以太網層數據收發,對明文收發數據和密文收發數據分別測試10000次,加密前報文收發的平均用時為 3.52ms ,加密后報文收發的平均用時為3.77ms,加密前后平均延時為 0.25ms 。由于水利工控系統工業以太網中數據報文大小往往不足1KB,加解密計算很快,加之網絡帶寬較高,因此通過網口的數據加解密傳輸時延極短,基本上可以忽略不計。
現場總線層數據收發,對明文收發數據和密文收發數據分別測試10000次,加密前報文收發的平均用時為 69.03ms ,加密后報文收發的平均用時為338.31ms,加密前后平均延時為 269.28ms 。總線線路本身就具有信道延遲,加密后的延遲水平仍在可接受范圍內,能夠滿足現場業務要求。
(3)穩定性測試。加密模塊接入系統不少于15×24h ,不斷收發不同功能碼的報文,系統功能使用正常,加密網關狀態穩定,經查看系統和加密設備后臺運行日志,偶有總線層報文異常情況,屬于正常現象,不影響業務系統和加密設備正常運行。
(4)安全攻擊測試。安全攻擊測試借助Etter-cap、Wireshark等工具進行身份仿冒、數據竊取、數據篡改等測試。 ① 身份仿冒測試。攻擊機接入測試系統后,強行請求與加密設備建立通信,結果顯示無法完成數字證書驗證,也無法建立連接。通過查看加密設備后臺日志,發現“身份認證失敗”異常事件(圖5)。② 數據竊取測試。攻擊機從通信鏈路中監聽報文數據,接入加密設備前后的監聽數據如圖6所示,圖中可見,接入加密設備后報文為密文數據,即使數據被監聽,依然能保證數據安全。 ③ 數據篡改測試。攻擊機從通信鏈路中截獲報文數據,并對其中密文進行隨機修改。通過查看加密設備后臺日志,發現“完整性校驗失敗\"異常事件(圖7)。



5結語
水利工控系統是水利業務正常運轉的核心信息系統,其數據傳輸過程面臨極大的安全風險,本文針對工業以太網、現場總線數據傳輸風險提出了一種水利工控數據傳輸加密方法,采用密碼加固設計的工業以太網協議和現場總線協議,實現水利終端設備的身份認證、業務數據的機密性和完整性防護,經硬件模塊適配設計,原有水利系統組網方式、業務模式、物理接口不需做任何改變,通過在原有接口之上串接加密傳輸終端設備,實現工控數據傳輸的安全保護。
經實驗測試,在不影響原業務正常運行情況下,可實現對數據的加解密,且加解密時延很低,無故障運行時間符合業務要求。上述成果應用于閘門、泵站等水利控制系統,可有效消除數據傳輸過程中的身份仿冒、數據竊取、數據篡改等安全風險。
參考文獻:
[1] 徐波,王昕.數字孿生水利工程網絡安全風險分析和保障體系[J].人民長江,2023,54(11):242-250.
[2] 梁耀,馮冬芹,徐珊珊,等.加密傳輸在工控系統安全中的可行性研究[J].自動化學報,2018,44(3):434-442.
[3] 彭勇,江常青,謝豐,等.工業控制系統信息安全研究進展[J].清華大學學報(自然科學版),2012,52(10):1396-1408.
[4] 荊芳,葛創杰.水電站監控系統安全防護體系研究[J].水利信息化,2023(6):75-79.
[5] DANIELISP,SKODZIKJ,ALTMANNV,etal.Survey onreal-timecommunication viaethernetinindustrial automation environments[C]//Proceedings ofthe 2014 IEEE Emerging Technology and FactoryAutomation(ETFA).IEEE,2014:1-8.
[6] THOMESSE JP.Fieldbus technology in industrial automation[J].Proceedings of theIEEE,2005,93(6) :1073-1101.
[7] GALLOWAY B,HANCKE G P. Introduction to industrial control net-works[J].IEEE Communications Surveysamp; Tutorials,2012,15(2):860-880.
[8] 陳寧,高祥濤,王美玲,等.水利自動化控制系統中現場總線安全技術研究[J].水利信息化,2020(5):46-49.
[9] FOVINO IN,CARCANO A,MASERA M,et al.Design and imple-mentation of a secure modbusprotocol[C]//International ConferenceonCritical InfrastructureProtection.Springer Berlin Heidelberg,2009:83-96.
[10]MARTINS T,OLIVEIRA S V G.Enhanced Modbus/TCP security pro-tocol:authentication and authorization functions supported[J].Sen-sors,2022,22(20):8024.
[11]蔣小峰.水電站綜合自動化系統設計和應用[J].自動化應用,2019(4):123-124.
[12]郭江,陳服軍,張志華.水利工控系統網絡安全防護的問題與對策[J].中國水利水電科學研究院學報,2018,16(5):466-471.
[13]滕海波,薛井俊,張明希,等.調水控制密碼應用研究[J].水利信息化,2020(6):21-26.
[14]ABOOD O G,GUIRGUIS S K.A survey on cryptography algorithms[J].International Journal of Scientific and Research Publications,2018,8(7) :495-516.
[15]胡毅,于東,劉明烈.工業控制網絡的研究現狀及發展趨勢[J].計算機科學,2010,37(1):23-27.
[16]蔡宇晴.SCADA系統中ModbusTCP/IP協議的異常檢測研究[D].北京:北京交通大學,2017.
[17]范鎧.現場總線的發展趨勢[J].自動化儀表,2000(2):1-4.
(編輯:黃文晉)
Security reinforcement technology for water conservancy industrial control protocol based on commercial cryptographic algorithm
GE Chuangjie,JING Fang,WANG Gefei,YUAN Shichong (Yellow River Engineering Consulting Co. ,Ltd. ,Zhengzhou 45OoO3,China)
Abstract:Giventhesecurityriskssuchasdata monitoring,datatampering,anddataforgery inwaterconservancyindustrial controlsystemsresearchondatasecuritytransmissiontechnologybasedoncommercialcryptographicalgorithmsiscariedoutto ensuretheconidentiaityintegrityanduthenticityofidustrialEtheetdataandfeldbsdatatransmisioninwateroseancysystems.Weanalyzedthedatatransmissionrisksfacedbythecurentwaterconservancyindustrialcontrolsystem.Thenwedesignedthesecurityreinforcementfothe2ajortypesofommunicationprotocolsforindustrialontrol,completedthedesignof thecryptographic module,andcariedoutmulti-scenariosecuritytestingandanalysis.Field tests werecarredoutatanitegrated gate ofawaterconservancybase.Eachcommunication devicesentandreceiveddata 1oo times inthetwo modes,of which theindustrialEtheretlayersuccesfullysentandreceiveddatalOooOtimes,ithOfilures.Theaveragedelabeforeandafter encryption was 0.25ms . And the fieldbus layer successfully sent and received data 9 977 times,with 23 failures.The average delaybeforeandafterencryptionwas269.28ms.Inadition,identityimpersonation,datatheft,nddatatamperingackswere tested.Teexperimentalresultsshowthatthemethodhasahighsuccessrateofencryptionanddecryption,alowdelay,averystableoperation,andcanresist exteralatacks.Itcanefectivelyguaranteethedatacommunication processsecurityinthewater conservancy industrial control scenario without affecting the business operation.
Key words:waterconservancyindustrialcontrolsystem;datatransmisionrisk;dataencryptionanddecryption;protocolrein forcement;commercial cryptographic algorithm;communication security