李一清
(沈陽化工大學 計算機科學與技術學院,遼寧 沈陽 110000)
Modbus/TCP協議是屬于應用層的傳輸協議,通信模式是主從式。在工業控制系統中,Modbus主站與Modbus從站對應的拓撲結構為一對多或多對多。通信時,Modbus主站向從站傳輸Modbus操作控制指令報文或Modbus數據報文,Modbus從站按照Modbus/TCP協議約定好的規范做出相應的應答響應。Modbus/TCP協議是一種通用語言,能實現工業現場控制器和控制器之間的通信。工業控制器和其他工業設備間,也可以利用Modbus/TCP協議實現通信[1]。
Modbus/TCP協議是一種以太網協議,用來規定數據的交換方式。Modbus/TCP協議傳輸的通信報文應用數據單元,主要由Modbus應用協議報文和協議數據單元(Protocol Data Unit,PDU)組成。ISO模型的應用層基于Modbus/TCP協議。Modbus從站收到報文會將其拆解,從而獲得Modbus/TCP數據幀,按照Modbus/TCP協議解析數據幀,將應答響應報文封裝到TCP協議幀中傳送到主站。Modbus/TCP協議本身沒有設計校驗機制,所以Modbus/TCP協議的安全性可能會受到嚴重威脅[2]。Modbus/TCP協議通信的報文由Modbus應用報文頭、MBAP以及協議數據單元PDU組成。其中,TCP/IP傳輸的Modbus應用數據單元由Modbus應用報文頭MBAP辨別。Modbus/TCP協議通信的報文的MBAP包含事務處理標識、協議標識符、長度以及單元標識符。PDU包含功能碼和數據。
在信息學中,量子通信根據量子力學特性可實現信息的安全傳輸,且有著信息通信所需要的特性要求。量子通信是無條件安全的,具有很好的保密性,遇到阻礙的可能性較小。在信息傳輸過程中,如果信息被任意竊聽或復制都會破壞量子態。在沒有阻礙的傳輸中,無論兩個分離的量子離得有多遠,當一個量子發生變化時,另一個也會產生相應的變化。
量子密鑰分發能保證信息通信的安全性,能使信息通信的雙方都產生無條件安全的密鑰,且一次一密,每次密鑰都是隨機不固定的。發送方用密鑰進行加密,接收方用密鑰進行解密。量子通信運用量子糾纏效應進行信息通信,是一種將量子學運用到信息學的新興通信方式。光量子通信是運用量子糾纏態,信息的傳輸以量子隱形傳態的方式完成。
光量子通信是首先創造一對糾纏態粒子,其中一個放在通信的發送方,另一個放在通信的接收方。聯合測量有未知量子態的粒子和發送方的粒子,接收方的粒子會立刻發生變化。這種變化是某種狀態,且接收方的狀態和發送方粒子變化的狀態是對稱的。發送方把聯合測量的信息通過經典信道傳給對方,對方按照接收到的信息對變化的粒子進行幺正變換(相當于逆轉變換),最終得到和發送方一樣的未知量子態。量子通信中,消息編碼不是比特,而是量子狀態(量子比特)。光子常被用來制備量子狀態。通常,測量一個未知的量子狀態會以某種形式改變此量子的狀態。在通信過程中出現竊聽就會有測量,從而改變量子的狀態,可以檢測通信過程中的任意竊聽,還能計算被截獲信息的數量[3]。
量子密碼通信網絡的體系結構一般由密鑰管理層、應用層以及量子層組成。量子層的功能是完成端到端的量子密鑰分發,此層生成的密鑰會上傳至密鑰管理層;密鑰管理層負責儲存傳送到該層的密鑰,并挑選合適的路由;應用層的功能是訪問各種事務。密鑰管理層儲存的量子密鑰用來加密量子通信網絡中的通信信息,保障通信網絡的安全性。
在量子密碼通信網絡模型中運用軟件定義網絡架構技術,采用可信控制中心的量子密鑰中繼方案。其中,終端節點和中繼節點構成網絡的節點。終端節點由應用層、網絡層以及量子層構成。網絡層的功能是實現創建網絡的連接,完成信息的路由和轉發,為上層提供服務。
提出一種基于量子密碼通信的Modbus/TCP協議加密傳輸方法。量子密碼通信有較好的抗干擾能力、良好的隱蔽性能以及較低的噪音比,且在信息傳輸過程中不會被竊聽、截取或復制。基于量子密碼通信的工業控制網絡不僅絕對無條件安全,而且還能實現工業控制網絡的實時性。
為找到模擬通信中的鏈路,了解該鏈路中的目的地址、源地址以及鏈路上別的密鑰數量信息,提供以下方案。由密鑰管理層鏈路發現模塊,負責開啟一個線程監控整個網絡拓撲,且此線程會周期性地工作。密鑰管理層通過鏈路發現協議(LLDP)得知鏈路狀態,鏈路發現模塊按照儲存在密鑰管理層上每條鏈路的密鑰狀態的變化立即更新密鑰狀態,同時顯示在控制臺上。管理層則能全面獲知整個鏈路的狀態[4]。
通常來講,QKD對量子態的傳輸是通過對光子進行編碼、傳輸以及測量完成的。利用激光脈沖抽運40 m的色散平坦光子晶體光纖產生光子,利用四波混頻效應得到質量高且計數率高的糾纏光子源。通過實驗測得信號與閑頻光分別處于1 545 nm和1 555 nm處。實驗結果與理論基本吻合,該系統能作為量子密鑰分發系統的光源,誤碼率小于6%。
現有Modbus/TCP對通信信息安全問題沒有防護,為此提出一種基于量子密碼通信的Modbus/TCP協議的信息加密防護模型,通過以量子密鑰分發實現密鑰對工業控制系統通信信息的加密。Modbus/TCP報文以密文形式進行通信傳輸,實現Modbus/TCP報文在通信主站和從站間傳輸的安全性。
工業控制網絡和傳統互聯網對效率、安全性以及實時性的要求不同。在高安全性和高效率的雙重標準下,Modbus/TCP信息加密模型采用一次性密鑰的量子密碼。在量子密碼通信中,這種方式可保證通信雙方擁有一致的、隨機的以及安全的密鑰。通信雙方利用一致的密鑰實現對消息的加密和解密,實現信息的安全傳輸。
通信雙方建立通信后,通過通信雙方的一系列操作會產生一個安全的量子密鑰。產生的過程就是傳遞的過程,可以說是“隨制隨用”。運用量子力學,能使雙方同時產生一串隨機數,并且不用參考對方的數據就能保證雙方產生的隨機數序列一模一樣,通信雙方產生的這串隨機數序列就是量子密鑰。以這種形式產生量子密鑰的同時也實現了密鑰的分發,不用再去傳送密鑰,保證了密鑰的安全性。
通信雙方產生的量子密鑰是一串隨機的字符串,長度可以任意設定。每次傳輸信息數據時都會產生新的一串密鑰,這種方式產生的密鑰完全滿足香農定理的3個要求,即密鑰的隨機性、密鑰長度不小于明文以及一次一密。用量子密鑰加密通信信息后,密文是不能被破譯的。
將產生的糾纏光子對以E91協議的流程來產生量子密鑰。E91協議實現的具體流程如下:
(3)在多次測量后,發送方和接收方公布自己的測量基的結果,用來檢測粒子對是否是糾纏的。
(4)當檢測到粒子對并無關聯時,就可以認定該糾纏對是無效的或者是存在竊聽者,放棄該次通信;當判定粒子對是相互糾纏的且不存在竊聽者,則選用相同測量基的測量結果用來產生密鑰。
按照E91協議流程獲得隨機的、安全的字符串(量子密鑰),每次數據的傳輸截取兩組56位(即共112位)用作本次傳輸的密鑰。生成的112位密鑰用3DES算法對信息進行加密,3DES使用2條不同的56位的密鑰對數據信息進行3次加密。3DES即Triple DES是DES向AES過渡的信息加密算法。設Ek()和Dk()代表DES算法的加密和解密過程,K代表DES應用的密鑰,M則代表明文,C來代表密文,則3DES的加密過程和解密過程分別為:

為驗證Modbus/TCP協議的信息加密模型功能的實現,采用Modbus Slave模擬Modbus的主站和Modbus的從站,驗證過程如下。首先,由Modbus的主站向Modbus的從站傳送Modbus信息操作控制指令。其次,假定操作控制指令寫入的值和寫入的地址分別是1和0進行測試,在加密模塊后抓取相應的Modbus數據包,并保證在解密模塊之前和之后檢測抓到的數據包,查看有沒有對其進行加密。再次,從Modbus的從站檢測有沒有實現對Modbus操作控制指令的解密。最后,通過Modbus的從站查看解密后的Modbus通信報文是否正確。具體采用Wire-shark在Modbus的從站和Modbus的主站間實施抓包操作。如果抓包操作的結果是密文,那么基于量子密碼通信的Modbus/TCP協議的信息加密防護模型實現了對系統的加密操作,完成了對Modbus/TCP協議通信報文的安全性操作[5]。
Modbus/TCP協議屬于通用型工業以太網協議,如今廣泛應用于工業控制系統。改進Modbus/TCP協議可實現工業控制網絡的信息安全,對整個工控系統的信息安全研究有著重要意義。因此,介紹Modbus/TCP協議在工控網絡中具有的價值,研究Modbus/TCP協議的安全性十分必要。第一章主要描述了Modbus/TCP協議的控制網絡結構、應用數據單元以及功能碼。第二章描述了量子通信、量子密鑰分發和量子密碼通信網絡的體系結構。第三章描述了量子密鑰管理、量子加密通信網絡中糾纏光子對的產生和結合量子密鑰分配和一次性密鑰的量子密碼通信網絡實現信息的安全傳輸,之后針對其缺乏機密性保護工業控制網絡問題,提出了一種基于量子密碼通信的Modbus/TCP協議加密傳輸的方案,保證了Modbus通信報文的無條件安全高效傳輸,而量子密鑰分發防止了第三方竊聽特性,從而防護了Modbus/TCP協議的安全問題。第四章主要針對Modbus/TCP協議的信息安全加密傳輸系統進行功能性上的驗證。驗證結果表明,Modbus/TCP協議信息安全加密傳輸系統不僅滿足工業控制系統可用性和實時性的要求,而且實現了對工業控制系統的安全防護。