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