劉 俊,陳 慧,王 軍
(沈陽化工大學,遼寧 沈陽 110000)
工業控制系統(industrial control system,ICS)是指由計算機與工業過程控制部件組成的自動控制系統,它由控制器、傳感器、傳送器、執行器和輸入/輸出接口等部分組成。工業控制系統的子系統或功能組件包括但不限于數據采集與監視控制(SCADA)系統、分布式控制系統(DCS)、可編程邏輯控制器(PLC)、遠程測控單元(RTU)等相關信息系統,如圖1所示。這些組成部分通過工業通信線路,按照一定的通信協議進行連接,形成一個具有自動控制能力的工業生產制造或加工系統。工業控制網絡就是工業控制系統中的網絡部分,是一種把工廠中各個生產流程和自動化控制系統通過各種通信設備組織起來的通信網絡。這些網絡節點是指分散在各個生產現場,具有相應數字通信能力的測量控制儀器。它采用規范、公開的通信協議,把現場總線當作通信連接的紐帶,從而使現場控制設備可以相互溝通,共同完成相應的生產任務。
目前來說,隨著信息化和智能化融合的不斷推進,由于集成電路的種類繁多,潛在的風險和影響程度也不盡相同。工業控制系統的信息安全隱患分布于工業控制系統架構的所有層級,攻擊者可能通過嗅探、欺騙、物理攻擊及病毒傳播的方式,進行未授權或非法操作,影響企業正常生產。近年來的工業控制網絡安全事件顯示出穩步增長的趨勢,工控系統頻頻發生的網絡安全事件引發了各國關注,專家、研究人員和工程師致力于解決工業控制系統網絡安全問題。

圖1 工業控制系統典型架構
現有的工業安全防護系統都是針對過程監控層及以上的信息技術網絡部分,以及從信息網絡到工控網絡之間的邊界部分[1]。林楓[2]提出工業控制是一項具有綜合性、技術復雜性的體系工程,工業控制系統本身在設計或操作中容易出現安全隱患。工業控制的網絡化設計與應用,讓工業控制系統部分暴露在公共信息交流中,使得病毒和木馬攻擊工業控制系統。其實,工業控制系統從現場設備采集數據到現場控制層PLC中及現場設備中存在著不安全的連接或者非法認證等不安全事件,網絡系統中的數據可能會遭到復制、篡改,丟失,最終導致系統出現異常或故障。因此有必要加強防護工控網絡中的數據安全。
部分研究人員將區塊鏈技術應用到物聯網安全上[3-5],解決了物聯網的通信安全模式;柏亮[6]從區塊鏈和工業物聯網的體系架構角度出發,分析了區塊鏈在工業物聯網中的應用可能性,并提出了一種區塊鏈結合工業物聯網的架構,使用區塊鏈分布式系統替代傳統工業物聯網中信息傳輸和數據管理部分。
在工業控制系統和工業互聯網上還是有待研究。因此將結合區塊鏈技術的特點,在過程監控層和現場控制層做安全模型來保護工業控制網絡的安全。防止從監控中心向 PLC下發邏輯組態工程文件在編譯成功后,運行過程中不被篡改或者替換。利用區塊鏈技術的去信任、去中心化、集體維護、可靠數據庫等特點,構建基于區塊鏈的ICS共識控制模型,使區塊鏈網絡取代工業控制系統的現場網絡,解決ICS網絡數據安全問題,保證了數據的可用性、保密性、完整性,并且在工業控制網絡中傳輸和交換的數據不會發生增加、修改、丟失和泄露等。
區塊鏈,也稱為共享賬本,是一個記錄的追加列表,使用加密技術鏈接和保護記錄。著名的區塊鏈實現包括比特幣[7]和以太坊[8]。區塊鏈由私有或公共對等網絡管理,該網絡共同驗證并生成新區塊。因此,區塊鏈網絡由多個節點組成,每個節點都有區塊鏈的本地副本。一些節點參與一個領導選舉過程(即工作證明),該過程確定哪個節點獲得將下一個塊附加到鏈的權限。這些正在積極競爭成為下一輪領導人的節點被稱為礦工。在每輪領導人選舉開始時,所有礦工都開始研究一個新的計算問題(例如產生散列),這個問題取決于三個數據:新的交易塊、區塊鏈上的最后一個塊和一個隨機數。這統稱為當前塊的塊頭。每次礦工用一個新的隨機數對塊頭執行散列函數時,他們都會得到一個新的結果。為了贏得選舉,礦工必須找到一個以一定數量的零開頭的散列,需要多少個零是一個未知的參數,由網絡上連接了多少礦工和多少計算能力決定。解決此問題的第一個挖掘者獲得了使用尚未包含在任何塊中的掛起事務編寫新塊的權限。參加和贏得選舉的動機是一種金錢獎勵。贏家可以發行一定數量的開采貨幣,他們可以收取所有交易費用。為了優先處理他們的事務,用戶可以提出支付更高的費用。因此,區塊鏈形成了一個系統,可以在不需要任何中央機構的情況下實現分散共識。
區塊鏈的分布式賬本可以安全地存儲數據,而信息不能偽造和篡改位于區塊鏈上的智能合約腳本,允許多步驟流程。區塊鏈技術是由節點組成的分布式數據庫系統。各節點是一個賬戶,記錄事務數據,并使用加密方法來形成這些塊,組成數據塊,這些數據塊的內容是基于時間戳、分散的列值、工作證明和其他確保數據安全的技術。區塊鏈技術的本質是數據的存儲、傳輸和非對稱性分布式結構的數據加密方法,用區塊鏈中的數據塊代替對中心依賴的服務器,提供底層技術支持,實現信息交流,工業自動化基礎設施與環境的安全可靠結構。
分布式數據存儲的區塊鏈技術維護一個可靠的數據庫,能夠適應工控系統網絡信息安全,并采用區塊鏈密碼技術保證數據不被篡改和偽造,為工業控制系統的全過程提供安全可靠的支持。分布式存儲和分塊鏈技術滿足了工業控制系統網絡的安全要求。區塊鏈技術與分布式存儲技術相結合,在集成電路中構建一個p2p網絡,從而將工業設備交易數據安全地存儲在區塊鏈中,通過復雜的驗證機制,區塊鏈能夠保持完整性和一致性,實現高效可靠的傳輸和數據交換。區塊鏈技術可以使工業設備交易和數據交換過程簡單,節省成本。區塊鏈還可以通過存儲,在不喪失數據機密性的前提下,對工業裝置交易數據進行驗證和分析,通過區塊鏈技術提高ICS效率,未來智能設備可以在分布式物聯網,利用區塊鏈記錄監控和管理智能設備,智能化契約可以規范智能設備的行為,解決工業控制系統的網絡安全問題。
區塊鏈中的第一個區塊是比較特別的,稱為“起源”,它是將區塊鏈網絡所有的用戶端變成通用的。為了保證塊之間的完整性,最重要的組成單元就是時間戳機構,這些“塊”上都是帶有HASH函數序列的時間戳。每個塊都引用它前面一個塊中的記錄,這將在塊之間建立鏈接,形成的整個結構就被稱為區塊鏈。
即使使用多個技術服務協議來提高可靠性和減少漏洞,作為一方的信任服務提供商也無法完全避免對信息的操縱。因此,使用這些時間戳意味著對發行機構的信任。任何能夠訪問這個有序的、后向鏈接的塊列表的設備節點都可以讀取它,并找出ICS網絡上正在交換的數據的全部狀態,這樣就可以監測到ICS網絡中的錯誤,并避免網絡被攻擊。
塊鏈的組織如圖2所示:區塊是每個設備節點傳輸的數據集合,包括了交易過程中產生的相關信息和記錄,這是形成塊鏈的基本單位。為了確保塊鏈的可追溯性,每個塊都有一個時間戳作為唯一標記。該塊由兩部分組成:

圖2 塊鏈結構
塊頭,鏈接到前面塊,并為塊鏈提供完整性。其中包含上一個地址的哈希地址摘要、帶有哈希序列的merkle樹、區塊創建時間戳;
塊體,在每個終端中記錄更新的數據信息,包括當前區塊經過驗證的、區塊創建過程中生成的所有交易記錄或者是其他信息,可以理解為一個分布式的賬本,此賬本中的數據可以長久保存和查詢,保證了信息存在冗余備份。
區塊鏈技術是一種在網絡成員之間復制和共享的分布式數據賬本,運行一致性算法,在不占用大量計算資源的情況下,保證ICS中設備交易數據的安全。更高的系統和需要建立一個較短的更新間隔技術系統。區塊鏈技術是一種集成電路網絡安全的方法,它包含了大量的數據處理、實時性要求等內容,再利用數據庫技術更大的吞吐量、更快的數據通信技術、更高效的一致性機制來保證工控網絡的安全性。
為了提高工業控制網絡的安全性,在工控網絡中的各級服務器、交換機、PLC甚至底層設備都可以作為參與節點接入區塊鏈網絡。區塊鏈網絡本質上是一組非信任節點與其他沒有信任節點的共享數據庫交互,每個設備節點包含整個數據庫事務信息,稱為一個塊和一個分類賬,ICS中的所有設備節點形成區塊鏈和分布式分類賬。為了幫助工控網絡和區塊鏈達成共識,各自區塊鏈網絡需要建立每個設備節點事務和工控網絡連接,并且它們應遵循的某些規則。這些規則被編程到每個區塊鏈的客戶端節點上,然后使用它們來決定傳入的事務是否有效,從而決定它是否應該被中繼到網絡中。
在工控網絡的現場設備層[9-11],分析其數據來源,對采集后的數據進行數據審計,將其存在區塊鏈中,流程如圖3所示,分為三個部分。

圖3 工控網絡區塊鏈步驟
(1)現場總線控制網絡利用諸如PRIFIBUS(過程現場總線)、FF-BUS(基金會現場總線)等現場總線技術將傳感器、繼電器等現場設備與一些PLC控制器或者RTU等現場控制設備相連。
(2)在各類系統設備接口上添加適配層,實時采集系統設備接口數據到區塊鏈中,實現監控工業控制網絡與區塊鏈各類交易數據的實時狀態。
(3)采集的數據經過數據審計,通過區塊鏈中的哈希算法形成加密信息摘要,也就是帶有哈希序列的一條條數據,最后被編寫在merkle樹中存儲。區塊鏈所具有的時間戳技術可以使得數據信息具有不可篡改、不可偽造和可追溯的重要特征。
當區塊鏈技術應用于由現場總線連接的設備節點組成的ICS網絡時,交易模式如圖4所示:區塊鏈鏈中的每個區塊都包含了Hash序列加時間戳的組合密鑰,構成的“塊”鏈接到下一個區塊中,這些“塊”中還包含了ICS網絡中設備之間的交易數據,多個“塊”形成一個線性序列。由于“塊”是通過哈希密碼序列進行標識的,每個塊還引用前一個塊的信息,那么,通過區塊鏈中的這些區塊,就可以檢查發送方和接收方的數據是否經過驗證和篡改。用戶在ICS網絡中進行數據交易時,只需要在設備節點之間進行交易。因為每個設備節點都在執行智能合約并記錄交易數據,而且區塊鏈在ICS的設備節點之間自我復制,更加一步說明ICS網絡中的任何設備節點都可以記錄所有的事務數據。結果,ICS網絡上的設備節點附加到塊鏈上,只有經過驗證、相互同意的事務才會被寫入區塊鏈的底層存儲,最終保證了數據交換的安全性。

圖4 區塊鏈交易模式
區塊鏈的核心組成部分,可以在沒有中央權威或實體的情況下運行:共識機制[12]。為了理解共識機制的概念,首先看看區塊鏈和傳統系統之間的區別,如圖5所示。

圖5 中心化系統vs去中心化系統
中心化系統:即集中式系統,在進行各項信息交流服務時需要一個“領導”(中心節點)來進行轉達,只有“領導”才有權保護和更新數據庫的權限。一切信息流由中心節點機構控制和管理,它決定了數據庫中的數據類型。在網絡中僅與授權中心相關聯的其他節點(設備),才能對數據的一部分進行訪問。
去中心化系統:區塊鏈技術使用分散的網絡體系結構。任何人都可以成為一個節點,每個節點都可以成為服務器。意味著在系統網絡中傳輸數據后會有無數個節點來記錄,不再是單一的權威集中式服務,每個節點在層次中都是平等的,將會獲得更多的訪問權限,自己的信息掌握在自己手中。
共識機制是指以去中心化的方式就網絡的狀態達成統一協議的過程。也被稱為共識算法,有助于驗證和已核實的信息添加到分布式賬本中,保證其事務被存儲在塊鏈上。因此,共識機制負責安全地更新分布式網絡中的數據狀態。它一直是硬編碼規則,以確保該協議總是能夠找到全球計算機網絡和協議數據的唯一來源。實現無需信任的網絡,而無需中心數據或“領導”。
區塊鏈的共識算法在工控網絡中能夠解決的問題有:
(1)在工控網絡中做出決策,達成信息數據傳輸一致;
(2)確認每個人的數據庫中只有一種方案確定數據的存儲;
(3)能確保工控網絡的交易真實可信,每個用戶能夠自我監控。
區塊鏈是一個去中心化的時間戳服務器技術[13-15],可以自動創建分散的、為每個提交的文件提供防篡改和可公開驗證的時間戳,將此技術加上共識機制與工控網絡的監控/控制層結合,搭建一個如圖6所示的模型,此模型稱為共識控制模型(consensus control model)。

圖6 共識控制模型
首先, 在工業資源平臺服務器上搭建區塊鏈平臺,設置準入機制,配置不同的組織關系, 并為各個組織配置相應的通道,完成底層基礎網絡的搭建。在搭建好的工控區塊鏈網絡的環境下將模型分為三層:
第一層將底層區塊鏈中的數據分成片打包上傳到服務器中;
第二層中共識機制負責安全地更新分布式網絡中的數據狀態;
第三層去中心化時間戳服務技術,為每次共識機制更新的數據狀態提供可公開驗證的時間戳;
最后, 在控制層采用一定選擇機制,諸如監控中心,對這些帶有哈希序列的數據節點進行打包形成區塊,同時利用大數據分析平臺對工業資產進行評估,對評估良好的工業資源配給一定數量的通證獎勵,在后續的交易中通常可以作為手續費附加在智能合約中被優先打包成區塊,由此對工業生態的健康成長和運行進行一定程度的引導。區塊鏈上的每個組織都會有記賬節點來進行分布式記賬, 并維護全網的一個公共的賬本;同時,對于工業資產數據的讀寫操作均會被記錄到區塊鏈中,以實現全方位的安全可信管控,以便隨時監控來自底層的數據是否安全,確保信息層的管理員拿到的數據是最安全的。
在工控網絡中的部分數據之前是由管理員或者企業總部管理和保存,用戶無法便利獲得自己的記錄和歷史數據。通過此模型的相關技術進行用戶隱私數據保存,用戶自己可以真正地掌握,而不是企業或管理員操控。這不僅有助于保護用戶隱私,也增強了用戶使用數據的自主性,實現了信息的共享性和工控網絡的去中心化性。
為了解區塊鏈網絡的運行方式以及共識控制模型,設計安全機制驗證:在同一個區塊鏈上操作一組客戶端節點保存事務數據的副本;假設ICS中的設備節點可以看作是區塊鏈網絡節點,每個設備節點都在區塊鏈網絡上進行交易;利用區塊鏈技術的分布式賬本、共識機制,智能聯系,非對稱加密等特點應用于工業控制系統以解決網絡安全問題。
使用opnet14.5版本的網絡仿真軟件對工業區塊鏈網絡進行仿真,并對仿真結果進行分析驗證。

圖7 OPNET 分布式網絡拓撲模型
由于工業區塊鏈網絡去中心化的分布式系統,則在全分布式非結構化拓撲結構中, 每一個節點既可以作為客戶機又可以作為服務器,還可以作為對等實體,在網絡中也扮演著多重角色,其地位是完全平等的,并且它們與相鄰的有相同的能力。因此可以建立如圖7所示的網絡模型。
圖8中橫坐標代表網絡運行時間,縱坐標代表網絡收斂延時時間。可以看出在工業區塊鏈網絡中進行數據傳輸150秒時的網絡收斂的延時大約為0.4微秒,網絡延時相對平穩,說明當工業控制系統和區塊鏈技術結合時,可以防護數據被篡改,此時對網絡的延時是最小的。

圖8 工業區塊鏈網絡的延時
圖9中橫坐標代表網絡運行時間,縱坐標代表網絡的吞吐量。可以看出在工業區塊鏈網絡中進行數據傳輸400秒時的網絡吞吐量狀態,從20秒時陡增,到55秒時吞吐量都趨于穩定,在42秒時網絡吞吐量達到峰值183 Mbps。以周期的形式達到峰值進而趨于穩定,說明在工業區塊鏈網絡中數據不易發生丟失或者出現其他網絡問題。

圖9 工業區塊鏈網絡的吞吐量
(1)通過ICS區塊鏈網絡模塊,讓設備節點相互交換并相互傳輸數據,并讓區塊鏈存儲。
(2)機器設備節點形成對等網絡[16],其中一個機器設備節點與區塊鏈上的另一個機器設備節點交互,節點之間通過一對私鑰或公鑰進行通信。它們使用自己的私鑰簽署自己的交易,并且可以通過它們的公鑰在網絡上尋址。非對稱加密的使用將身份驗證、完整性和不可否認性帶入網絡。每個簽名的事務都由用戶的節點廣播到其相鄰的對等節點。相鄰的對等方在進一步傳輸之前確保該事務有效,無效和錯誤的事務被丟棄并拒絕,最終有效事務在整個ICS設備區塊鏈網絡中傳播。
(3)使用加密算法和區塊鏈節點哈希值的方式記錄機器設備的使用時間,檢查區塊的有效事務,驗證區塊鏈網絡收集的機器設備事務數據和按時間戳排序的區塊鏈節點事務數據,然后將正確的事務數據塊鏈接到它們的子鏈中,如果設備之間有一個新的事務,它們會將這個新事務塊添加到區塊鏈中,并用它包含的新事務來更新其分類賬。
(4)重復上面步驟,若驗證的結果是所需要的正確數據時,步驟結束。
在隱含的共享數據庫模型中,區塊數據庫的每一行都映射到與ICS設備節點對應的公鑰或地址中,有效事務則是試圖修改具有相應簽名的行的事務數據。當網絡中的每個節點遵循上述步驟時,其操作的共享區塊鏈[17]將成為網絡活動中的身份驗證和時間戳記錄。節點不必信任任何其他實體,由此產生了無信任環境這一術語,信任是由系統中不同參與者的交互作用而產生的一種緊急屬性。
即使在工控網絡數據安全上結合區塊鏈技術有些重要的保留意見,但不應該低估這些非凡技術變革帶來的有希望的社會經濟效益。該文利用區塊鏈技術的優點建立的共識控制模型,設計的工控區塊鏈網絡使工業控制網絡的數據信息不被篡改,這種創新策略通過仿真結果得出能夠高效率保證上層用戶獲得的數據的真實性、完整性。區塊鏈和分散式分類賬是一項基礎和破壞性技術,將徹底改變工業控制系統的網絡安全,使工業程序運算由程序-數據-驗算-生產-回饋流程大力簡化。但是,進一步在探究過程中發現工控網絡中的攻擊具有多樣性,而最終基本的區塊鏈問題歸結到信任問題。后續將會研究區塊鏈的安全、區塊鏈能夠解決工控網絡攻擊的類型、 區塊鏈用于資產的轉移和跟蹤等多個方面。