許 瑋
(安徽皖信人力資源管理有限公司,合肥 230000)
隨著物聯網的普及,設備數量迅速增長,網絡傳輸的數據量也迅猛增長。為了提高運行效率、降低維護成本,很多企業開始將部分工業設備聯網。這些工業設備在運行過程中產生大量數據,由于這些數據沒有集中地存儲、管理和分析,使得工業設備上的信息非常容易被竊取。區塊鏈技術是一種具有分布式、去中心化、防篡改等特性的加密技術,其誕生于2009年,被認為是繼互聯網之后又一個革命性的技術。在工業物聯網中,很多企業通過區塊鏈技術來保證數據共享。區塊鏈具有可溯源等特性,能夠有效地保護數據隱私。
1)在數據共享之前,通過對設備的屬性進行訪問控制,設置設備的訪問權限,只有滿足訪問權限的用戶才能進入設備中進行數據操作。另外,只有滿足相應權限的用戶才能對工業物聯網中的數據進行查詢、更新、刪除等操作。
2)在用戶發起設備共享請求之后,本方案利用基于區塊鏈技術的智能合約來實現對工業物聯網中數據共享過程的控制。通過智能合約按照一定規則對工業物聯網中設備共享進行控制。智能合約分為2 種類型:一種是靜態智能合約,一種是動態智能合約[1]。
靜態智能合約用于在用戶發起設備共享請求之后,通過驗證用戶的身份是否滿足訪問控制規則來完成對用戶的授權;動態智能合約用于在用戶發起設備共享請求之后,通過驗證用戶的訪問權限來控制設備共享過程。
3)在區塊鏈中將數據按照一定規則進行分片存儲。對于分片后的數據,通過IPFS 分布式文件系統和區塊鏈技術實現了對數據的分布式存儲。
4)在對工業物聯網中設備數據進行訪問操作時,使用傳統的PKI 技術來完成訪問信息驗證。
區塊鏈技術用于身份認證之后,其具有不可篡改性和可溯源性,能夠實現工業物聯網中數據的可信訪問。本方案通過使用基于區塊鏈技術的數字簽名機制實現對訪問信息進行驗證。數字簽名機制由一組數字簽名組成:一個公鑰和一組私鑰。公鑰加密數據時,利用私鑰解密數據;私鑰加密數據時,利用公鑰驗簽。區塊鏈可以解決對用戶身份進行驗證但不能保護數據隱私問題。如果某個用戶沒有使用自己身份驗證后生成的公鑰,則不能獲得該用戶私鑰中指定設備訪問信息的訪問權限[2]。
在本方案中,使用RSA 和橢圓曲線加密算法對設備的訪問信息和隱私數據進行加密。設備通過智能合約向網絡發送數據請求,當數據請求到達網絡時,數據接收方使用哈希函數對原始信息進行哈希運算,并將其轉換成二進制位。
二進制位代表該信息的完整性。然后,數據接收方使用橢圓曲線加密算法對哈希運算后的結果進行加密,生成一條與原始信息相異的加密信息。然后將該信息發送給數據接收方。由于在發送前對其進行了哈希運算,所以發送方和接收方之間不存在明文交互。但是,在接收到哈希編碼后,該哈希編碼會與原始數據相異。根據哈希編碼,可以將原始信息轉換成二進制位的形式。利用橢圓曲線加密算法生成的密文與原始信息相異,可以保證數據傳輸過程中不會被竊取或篡改。
通過以上工作流程可以實現以下目標:①保證數據隱私;②在數據傳輸過程中可以保證數據完整性;③在數據傳輸過程中不會被竊取或篡改。因此,本方案在實現工業物聯網數據共享時,滿足以下條件,一是設備能夠正確讀取和解釋服務器傳輸過來的數據,并能夠根據獲取到的數據進行操作。二是在數據傳輸過程中,不會出現惡意或無意篡改數據的情況[3]。
在工業物聯網數據共享中,可信第三方服務機構可以根據企業的需求向企業提供相應的數據共享服務。可信第三方服務機構主要對工業物聯網中的數據進行加密,并將這些數據通過區塊鏈進行存儲,當需要訪問時,可信第三方服務機構便可以根據區塊鏈上的信息進行解密操作。同時,當企業將相應的數據上傳至區塊鏈之后,便可以通過可信第三方服務機構對相關信息進行解密操作。
在企業之間的數據共享中,由于雙方都不掌握彼此的具體情況和數據內容,為了保證雙方能夠準確地獲取彼此信息并保證信息安全,因此需要通過可信第三方服務機構對信息進行解密處理。可信第三方服務機構主要包含2 個方面:①可信第三方服務機構能夠向企業提供相關數據的解密處理;②可信第三方服務機構能夠對設備節點上傳至區塊鏈中的相關信息進行加密處理[4]。
第一步,企業向可信第三方服務機構提出相應的需求,并將設備節點的相關信息通過可信第三方服務機構傳輸至區塊鏈上;第二步,可信第三方服務機構將企業的需求和區塊鏈上相應信息進行比較判斷是否滿足企業需求;第三步,若滿足用戶需求則通過區塊鏈上存儲的數據信息對相關信息進行解密;第四步,解密后獲得相應數據并對數據進行加密處理。最終,由可信第三方服務機構對相關信息進行解密操作并將結果反饋給企業。
基于區塊鏈的工業物聯網數據共享模型由4 個部分組成(圖1):數據采集模塊、數據存儲模塊、數據訪問模塊和結果分析模塊。其中,在數據采集模塊中,通過可信第三方對設備節點的身份進行認證,并將設備節點上傳的數據進行加密后存儲在區塊鏈上。在數據傳輸模塊中,通過區塊鏈與其他設備節點進行通信,并將設備節點的傳輸信息寫入到區塊鏈中。在結果分析模塊中,通過區塊鏈上存儲的數據信息對設備節點的行為進行分析并反饋結果[5]。
圖1 工業物聯網數據共享模型
基于區塊鏈的工業物聯網數據共享模型主要包含2 個階段:隱私保護階段和基于可信第三方的數據訪問階段。在第一階段中,需要對設備節點的身份信息、設備節點之間的關系、設備節點與其他節點之間的關系和設備節點自身的狀態信息進行加密處理。在第二個階段中,通過可信第三方對上述信息進行加密處理后存儲到區塊鏈上。當需要進行訪問時,便通過可信第三方對相關信息進行解密。
設備節點能夠通過多種方式對數據進行采集,例如,利用傳感器、數據采集卡或工控交換機等對數據進行采集;利用串口或網口等對數據進行采集;通過以太網和無線網絡等方式對數據進行采集。同時,對于工業物聯網中不同類型的設備節點,其具有不同的通信方式[6]。對于那些已經建立通信協議的設備節點,其通常是通過現有通信協議對數據進行采集,因此需要制定一套通信協議,使得不同類型的設備節點能夠在一個統一的標準下對信息進行采集。由于現有通信協議沒有統一定義和標準,因此需要建立一套通信協議來保證各個設備節點之間可以在統一標準下進行數據傳輸。
在工業物聯網中,設備節點能夠通過多種方式將信息傳輸到網絡中,包括:無線傳輸、有線傳輸和以太網傳輸。其中,無線傳輸是通過路由器或中繼器等設備在不同網絡之間進行傳輸;有線傳輸是利用網線將數據傳遞到網絡中;以太網傳輸是通過網線將數據傳遞到網絡中。另外,還需要對所有設備節點上的傳感器、控制卡等硬件裝置進行統一管理[7]。
數據存儲模塊(圖2)主要由可信第三方、數據交換中心和結果分析中心組成。
圖2 數據存儲模塊
2.2.1 可信第三方
為了保證工業物聯網系統的安全,可以將系統中的每個設備節點都看作是一個可信第三方,即區塊鏈節點。為了保證存儲的安全性,需要將該設備節點作為可信第三方進行注冊,并設置一個可信第三方管理機制。當系統中有多個設備節點時,需要對其進行身份驗證和權限認證,防止某個設備節點泄露機密信息。當其他的設備節點獲得了可信第三方的授權后才能夠訪問該數據存儲模塊中的數據。
2.2.2 數據交換中心
為了保證每個設備節點的可靠性和安全性,需要將其作為數據交換中心進行數據交換。數據交換中心負責對傳輸來的數據進行加密處理,并將處理后的信息存儲在區塊鏈中,然后通過接口將區塊鏈信息傳輸給系統中所有設備節點[8]。
2.2.3 結果分析中心
為了保證系統中的每個設備節點都能夠接收到相應的結果,需要將其作為區塊鏈中存儲的數據信息,并通過接口將結果信息傳輸給系統中所有設備節點。在過程中會生成一系列帶有時間戳且不可逆的交易數據信息,對交易數據進行加密處理后存儲在區塊鏈上,并將相關信息反饋給用戶。
基于區塊鏈的工業物聯網數據訪問模塊由2 部分組成:一是設備節點直接向區塊鏈上的可信第三方發送請求;二是區塊鏈根據可信第三方發送的請求對數據進行加密后,由可信第三方向區塊鏈上的其他設備節點進行解密。
對于設備節點直接向區塊鏈上的可信第三方發送請求,區塊鏈中的各個節點都需要為設備節點提供一份驗證文件,該文件中包含了設備節點和其他節點的身份信息、設備節點之間的關系、設備節點與其他節點之間的關系以及設備節點自身的狀態信息,并將這些信息發送給該可信第三方[9]。
對于區塊鏈上其他節點向區塊鏈上的可信第三方發送請求,該可信第三方同樣需要為這些信息提供一份驗證文件,并將驗證文件中的信息發送給所有設備節點。但是,只有當該可信第三方獲取了所有設備節點所提供數據的有效版本之后,才能判斷其身份。
在基于區塊鏈的工業物聯網數據共享模型中,設備節點上傳的數據將會被加密后存儲在區塊鏈上,而對于一些關鍵的數據信息,則需要通過可信第三方將其進行解密后才能獲取到相關信息。在對區塊鏈上存儲的數據進行分析時,需要對數據信息的內容、類型、來源等進行分析。設備節點可以通過對區塊鏈上存儲的數據進行加密處理后,按照特定規則對這些數據進行分類,然后根據分類結果采取相應的操作。由于區塊鏈上存儲的數據是公開透明的,因此可以通過這種方式獲取到相關的工業設備運行情況以及生產效率等重要信息。在結果分析模塊中,首先會通過可信第三方將所獲取到的設備節點的行為信息寫入區塊鏈,然后將區塊鏈上存儲的行為信息與設備節點上傳到區塊鏈上的行為信息進行對比和分析,最終根據分析結果對設備節點進行獎懲。
由于區塊鏈具有去中心化、不可篡改、可追溯等特點,所以在本方案中采用區塊鏈技術對工業物聯網設備上傳數據的安全問題進行解決。區塊鏈是通過密碼學算法建立的一個分布式數據庫,對于在數據共享模型中存在的安全問題,主要是基于物聯網設備上傳數據的特點對區塊鏈技術中出現的安全問題進行解決。
基于區塊鏈技術可以實現對物聯網設備節點身份信息的驗證。物聯網設備節點在數據上傳時,首先需要對其身份信息進行驗證,以保證上傳數據的安全性和真實性。
首先,針對在區塊鏈技術中使用的對稱加密算法,通過將密鑰進行對稱加密處理后進行分發給物聯網設備節點,并采用其對應的私鑰對其身份信息進行加密處理后發送給網絡節點。
其次,針對物聯網設備節點在接收到數據包后需要對數據包的內容進行校驗,以保證數據包的正確性,同時也可以對發送給網絡節點的數據包的真實性和完整性進行驗證。
為了解決物聯網設備在區塊鏈技術中接收到數據包后需要對其內容和完整性進行校驗時會出現惡意篡改問題,使用了非對稱加密算法中的公鑰加密技術對其身份信息和內容進行保護。該設備通過讀取相應的公鑰加密后獲取到相應的密鑰,然后將密鑰向網絡節點進行廣播。利用其對應的私鑰對其身份信息和內容進行解密處理后可以對其公鑰和內容信息進行驗證。
本文提出了一種基于區塊鏈的工業物聯網數據共享方案,該方案可以很好地解決工業物聯網數據共享時的安全性問題和效率問題。該方案能夠有效地保護用戶數據的隱私,同時提供可靠的第三方對其數據進行訪問,從而實現工業物聯網中的數據共享。與現有方法相比,該方案不需要預先確定每個節點需要提供哪些隱私信息,且該方案在保證安全性的基礎上減少了通信開銷,提高了效率,是一種有效解決工業物聯網數據安全問題的新方法。