999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于國密算法的ModbusTCP協議安全防護與研究

2024-01-13 06:45:44祁志榮呂世民鄭乾坤
信息安全研究 2024年1期

祁志榮 呂世民 鄭乾坤

1(中安聯合煤化有限責任公司電儀中心 安徽淮南 232092) 2(寧波和利時信息安全研究院有限公司工程服務部 浙江寧波 315048)

Modbus協議是工業控制系統最受歡迎的協議之一,但是隨著工業控制系統的發展,主站與從站的聯系已不能滿足與外界封閉的交流方式,因此,Modbus協議逐步與當前主流協議TCP接軌,形成ModbusTCP協議,在保留工業控制系統特點的同時,能夠獨立于計算機硬件與操作系統,已成功應用到當前的ICS中,提升主站與從站設備的通信效率.然而,協議因為繼承TCP協議固有的設計缺陷,使得ModbusTCP協議面臨諸多網絡攻擊的風險,比如中間人攻擊,因此,ModbusTCP的安全性成為當前工業控制系統主要提升的領域之一.

針對Modbus協議的研究,業界已有多種研究方案:Fovino等人[1]提出在Modbus協議中加入時間戳和哈希字段,并用私鑰加密,該方法能夠在一定程度上保證數據的完整性、可認證性和防止重放攻擊;詹靜等人[2]提出一種基于遠程認證的可信Modbus協議,實現了通信雙方身份和狀態的雙向認證,保證數據傳輸過程的完整性和安全性; 張波等人[3]提出一種橢圓曲線公鑰算法,實現身份認證和完整性保護,采用密鑰控制通信注冊機制與時間戳檢測機制組合防止重放攻擊;Aamir等人[4]提出設計加密緩沖器,添加特殊字段檢測安全發展和傳輸過程中的敏感信息,增強傳輸和加密安全性;Luo等人[5]提出Modbus增強協議,該協議能夠抵御重放攻擊和加密關鍵數據字段,并且確保通信雙方都可以被認證,提升工業控制網絡的安全性.上述研究雖然彌補了ModbusTCP協議的一些缺陷,但均無法同時滿足安全性強和低開銷的要求,因此,本文提出基于SM2與SM4加密算法,并經過多組實驗對比顯示,本文方案在安全性、計算開銷和空間開銷方面能夠得到一定提升.

1 ModbusTCP協議

Modbus協議是由MODICON公司于1979年開發的一種工業現場總線協議標準,之后,在1996年施耐德公司推出基于以太網TCP/IP的Modbus協議——ModbusTCP.該協議布置于應用層, ModbusTCP數據幀可分為2部分,分別為報文頭(MBAP)+幀結構(PDU).MBAP長度為7B,由4個字段組成,第1個字段作為報文的序列號,第2個字段表示ModbusTCP協議,第3個字段表示接下來的字段長度,最后以1個字段表示設備地址;PDU由功能碼和數據組成,功能碼長度為1B,數據長度由具體功能決定,其報文根據對象不同設置8個功能碼.

2 ModbusTCP協議安全方案

2.1 方案介紹

ModbusTCP協議安全方案對原始ModbusTCP報文進行了改造,在原始ModbusTCP報文中增加了Random字段和SIGN字段,使其成為ModbusTCP安全報文.

本文提出的ModbusTCP安全方案為實現在真實工業控制環境中的1主多從模式,在ModbusTCP主站中配置了1張含有所連接的ModbusTCP從站的地址、從站對應的SM2公鑰和與從站配置的預共享密鑰的預置表.ModbusTCP從站中配置了1張含有主站IP地址、主站的SM2公鑰、主站配置的預共享密鑰和以功能碼作為訪問控制內容的預置表,其中,主站配置表中的初始SM2公鑰為空.除此之外,為了增加防重放攻擊的機制,在主站和從站中配有隨機數表,表中記錄了每條消息的隨機數,為了防止內存開銷過大,該表每30s格式化1次.

本文方案分為注冊階段和數據安全傳輸階段.在注冊階段,ModbusTCP主站將自身SM2公鑰注冊到ModbusTCP客戶端中的預置表中,以便在數據安全傳輸階段通過該SM2公鑰進行驗簽操作,從而驗證數據發送方的合法身份.在數據安全傳輸階段,本文方案通過預共享的SM4密鑰對傳輸的關鍵數據進行加密,并對數據進行哈希操作,防止攻擊者通過中間人攻擊惡意獲取數據或篡改數據.通過在注冊階段接收的SM2公鑰對數據發送方的身份進行認證,防止攻擊者冒充合法身份連入到ModbusTCP網絡中.

2.2 方案流程

2.2.1 注冊階段

在該階段ModbusTCP主站將自己的SM2公鑰傳遞給ModbusTCP主站,以便在數據安全傳輸階段驗證ModbusTCP主站的身份.注冊階段如下:

1) ModbusTCP主站連接ModbusTCP從站,并通過從站地址在預配置表中獲取對應的預共享密鑰Key,將Key和自身SM2公鑰PKc作為SM3算法的哈希輸入生成哈希值H1,并將PKc與H1發送至ModbusTCP從站.即

SendMsg=PKc+H(PKc‖Key).

2) ModbusTCP從站接收到消息后通過Modbus 主站的IP地址在預置表中獲取對應的預共享密鑰Key,并通過接收到的SendMsg中的PKc和Key為輸入,通過SM3算法計算哈希值H2,若H2和H1相等,則證明ModbusTCP主站發來的SM2公鑰PKc沒有被非法篡改,此時,ModbusTCP從站將PKc放入預置表對應的位置.

2.2.2 數據安全傳輸階段

注冊階段結束后進入數據安全傳輸階段.在該階段對ModbusTCP的關鍵數據進行安全傳輸.因為無論是ModbusTCP主站還是ModbusTCP從站,都會接收消息和發送消息,所以在該階段以發送方和接收方作為主體進行說明.

1) 對于發送方,進行如下操作:

① 發送方隨機生成1個16B的隨機數R,并放入ModbusTCP安全報文的Random字段中.

② 發送方通過接收方地址在預置表中獲取預共享密鑰Key,并運用SM4算法對ModbusTCP報文中的功能碼、數據域和隨機數R進行加密生成密文C1,即

C1=EKey(Function Code‖Data‖Random).

③ 發送方通過自身私鑰對密文C1進行簽名S1,即

S1=SIGSK(C1),

并將簽名S1放入ModbusTCP安全報文的SIGN字段中,之后發送方將ModbusTCP安全報文發送至接收方.

2) 對于接收方進行如下操作:

① 接收方接收到發送方發送的ModbusTCP安全報文后,通過地址在預置表中找到發送方對應的預共享密鑰Key和公鑰PK.通過PK驗證簽名S1,若簽名驗證通過,則在證明消息發送方合法身份的同時,還驗證了發送數據的完整性.若身份認證通過則進行下一步,若簽名驗證不通過,則丟棄此消息.

② 若發送方身份驗證通過,則通過預共享密鑰Key解密密文C1,獲得明文P1,即

P1=DKey(C1).

由于在上一步中已經對發送方身份和數據完整性進行了驗證,則此時:

P1=Function Code‖Data‖Random.

③ 將Random字段中的隨機數R與隨機數表中的數據作比較,若R在隨機數表中,則證明此消息為重放的消息并丟棄.若R不在隨機數表中,則將R放入隨機數表中,并通過功能碼和數據作出相應的操作.

④ 若接收方為ModbusTCP從站,則將主站發送的功能碼與本地預置表中的允許訪問的功能碼進行比對,若允許訪問則進行下一步,否則丟棄該報文.

2.3 方案安全性分析

1) 中間人攻擊.由于原始ModbusTCP協議在數據傳輸過程中數據以明文形式傳輸,因此攻擊者一般通過中間人攻擊獲取傳輸的數據,導致數據的非法泄露和非法篡改.ModbusTCP安全方案通過SM4算法對傳輸的數據進行加密,此時攻擊者通過中間人攻擊獲取到的為密文信息,由于SM4密鑰在編碼階段就預編碼到系統中,所以敵手無法獲取此SM4密鑰,從而無法破解密文.

2) 身份認證.由于原始的ModbusTCP協議不具備身份認證功能,即任何實體都可以充當為合法的身份加入到ModbusTCP網絡中,接收方將所有接收到的消息都認作合法消息,造成數據非法泄露和操作非法指令等.本文的ModbusTCP安全方案通過SM2算法用SM2私鑰對消息進行簽名,接收方接收到消息后先通過SM2公鑰進行驗簽,由于私鑰只存在于合法身份中,所以若驗簽通過,證明該消息是合法身份則進行簽名,之后才會進行后續操作,否則丟棄該消息.由于攻擊者無法獲取合法身份的SM2私鑰,所以由攻擊者發出的消息也無法通過身份驗證.

3) 數據完整性驗證.數字簽名不僅可以保證消息發送方的身份,在驗證過程中,SM2的輸入為簽名數據和簽名,若簽名數據被篡改,簽名也無法通過驗證,因此SM2簽名驗簽同樣有數據完整性驗證的功能.

4) 防重放攻擊.原ModbusTCP協議中沒有防重發攻擊機制,這意味著攻擊者在捕獲到報文后可以多次發送相同的報文給接收方,此時,接收方會多次重復地執行相同的操作,導致資源的浪費.ModbusTCP安全報文中增加了隨機數字段,發送方每次發送消息前生成一串隨機數并將其放入隨機數字段,接收方每次接收到消息后將該隨機數與本地隨機數表進行比對,若存在相同的隨機數,則證明該消息之前已經收到過,視為重放消息并丟棄,若沒有相同隨機數,則將該消息視為非重放消息,并將該隨機數放入隨機數表中.

3 實驗分析

3.1 實驗結果

為了驗證本文方案的有效性,本節通過Wireshark軟件捕獲改進的ModbusTCP數據包,其中圖1(a)為發送方發送的ModbusTCP安全報文,圖1(b)為接收方返回的ModbusTCP安全報文:

圖1 ModbusTCP安全報文

通過圖2可知,截獲到的報文消息內容為一串密文字符且功能碼未知,保證了ModbusTCP報文的安全性.這是因為本文所提的ModbusTCP安全方案將功能碼和數據明文數據加密成密文后再進行傳輸,即使敵手通過中間人攻擊獲取到傳遞的消息,由于不知道會話密鑰,也無法解密并獲取到明文,不僅無法得知截獲消息的作用,而且無法得知截獲的消息主要內容.

圖2 發送方和接收方計算開銷

3.2 計算開銷

表1為不同方案的計算開銷對比,其中H代表哈希算法,SM4代表1次SM4對稱加密算法,e代表1次指數運算,dp代表1次點乘運算.

表1 不同方案計算開銷對比

如表1所示,文獻[4]采用1次公鑰加解密和公鑰簽名驗簽操作,所以在文獻[4]中,發送方和接收方各用了2個計算開銷較大的指數運算.文獻[5]分別在身份認證、密鑰協商和數據傳輸過程中運用到1次數字簽名和驗簽的操作,并且在密鑰協商過程中用公鑰加密算法加密協商的會話密鑰,所以文獻[5]中的發送方和接收方的計算開銷中存在大量的點乘運算.而本文方案只需要用1次簽名和驗簽運算就可以解決ModbusTCP協議的身份認證問題和數據的完整性問題.所以發送方和接收方只用1次計算開銷較大的指數運算.通過實驗結果對比,本文方案的計算開銷優于其他文獻方案.

此外,為了清楚地評估本文所提方案的計算開銷,在實驗階段分別統計了數據大小為50B,100B,150B,200B,250B時本文方案的計算開銷.其中,圖2(a)為發送方不同數據大小的計算開銷,圖2(b)為接收方不同數據大小的計算開銷.如圖2所示,本文方案發送方整體計算開銷在17ms左右,接收方整體計算開銷在20ms左右.

3.3 存儲開銷

目前工業控制系統協議大多應用于輕量化的終端中,其計算能力和存儲能力都是有限的,所以一個工業控制協議的安全方案除了計算開銷,其存儲開銷的考量也是非常重要的.該階段主要統計了不同方案在系統初始化時花費的存儲開銷.表2為本文方案與其他方案在存儲方面的開銷對比:

表2 不同方案存儲開銷對比

4 結 語

本文針對傳統ModbusTCP協議缺乏身份驗證、數據明文傳輸、重放攻擊威脅等問題,提出一種ModbusTCP安全增強方案,在該方案中,通過SM2簽名算法實現的ModbusTCP主站與從站段之間的身份認證和數據完整性檢測,利用對稱加密算法SM4實現了ModbusTCP協議傳輸中的數據加密傳輸,通過隨機數的形式實現了ModbusTCP防重放的機制,實驗結果表明本文方案在確保安全性的同時,帶來的額外開銷也是可接受的.

主站蜘蛛池模板: 91青青视频| 九九热视频精品在线| 亚洲av无码成人专区| 又污又黄又无遮挡网站| 成人午夜福利视频| 国产成人精品18| 九九免费观看全部免费视频| 亚洲美女操| 亚洲中文久久精品无玛| 国产午夜精品一区二区三区软件| 国产小视频免费观看| 国产成人精品午夜视频'| 天堂网亚洲系列亚洲系列| 国产不卡网| 精品久久久久久中文字幕女| 精品综合久久久久久97超人| 亚洲色婷婷一区二区| 中国精品自拍| 免费无码又爽又黄又刺激网站| 成AV人片一区二区三区久久| 中文字幕免费在线视频| 亚洲狠狠婷婷综合久久久久| 日本人妻丰满熟妇区| 一级福利视频| 亚洲 欧美 日韩综合一区| swag国产精品| 欧美中文字幕第一页线路一| 手机在线国产精品| 国产中文一区二区苍井空| 欧美激情第一欧美在线| 欧美日韩va| 欧美一区国产| 波多野结衣无码AV在线| 伊人成色综合网| 精品人妻一区无码视频| 午夜啪啪福利| 国产欧美视频一区二区三区| 成人福利在线免费观看| 亚洲第一国产综合| 国产在线一区视频| 国产喷水视频| 欧美中文字幕在线播放| 毛片a级毛片免费观看免下载| 久久久噜噜噜久久中文字幕色伊伊| 伊人五月丁香综合AⅤ| 高潮爽到爆的喷水女主播视频 | 精品国产免费观看一区| 亚洲全网成人资源在线观看| 尤物视频一区| 午夜成人在线视频| www.av男人.com| Jizz国产色系免费| 日韩精品一区二区三区大桥未久| 色屁屁一区二区三区视频国产| 草草线在成年免费视频2| 国产亚洲视频中文字幕视频| 高清视频一区| 成人欧美在线观看| 国产福利在线免费观看| 中文字幕人成人乱码亚洲电影| 无码一区二区波多野结衣播放搜索| 青草午夜精品视频在线观看| 久久久久夜色精品波多野结衣| 第九色区aⅴ天堂久久香| 国产十八禁在线观看免费| 日韩欧美国产另类| 日本黄色a视频| 亚洲a级在线观看| 婷婷综合在线观看丁香| 91蜜芽尤物福利在线观看| 全部毛片免费看| 99视频在线看| 色综合国产| 久久精品人妻中文系列| 欧美性猛交一区二区三区| 国产成人高清精品免费| 亚洲高清中文字幕在线看不卡| 亚洲精品无码在线播放网站| 国产精品永久不卡免费视频| 亚洲天堂视频网站| 天天综合网亚洲网站| 国产精品青青|