王振明,于劍峰,毛 嘉,魯方林
(中國科學院上海高等研究院,上海 201210)
物聯網終端數據主要來源于工礦、電力、軍事等系統中各個環節,隨著分布式技術的推廣,更多的設備接入到物聯網中;同時邊緣計算技術在物聯網系統中應用也越來越廣泛,大量的設備都具有了一定的邊緣計算能力,原本很復雜的工礦和電力系統變得更加難以運維管控。從目前情況來看,物聯網數據在傳輸、使用、共享的過程中,依然存在數據丟失、篡改、泄露、共享困難以及數據孤島現象普遍存在的情況。因此,如何保證物聯網系統的數據安全性和可靠性,特別是在戰地偵察傳感系統、可靠工業系統中促進數據共享互通變得越來越重要。為解決上述問題,在設備上線入網階段就有必要對設備采取一定的安全措施,比如進行認證,只有通過系統認證的設備才能獲得授權,進而與系統進行通信交互和數據的傳輸。此外,在傳輸設備數據階段、存儲設備數據階段、利用設備數據階段也須進行安全方面的考慮,避免數據泄露、丟失、篡改現象的發生。在系統整體設計上,需要考慮各系統的數據如何安全可靠地共享,打破機構間、組織間、部門間的數據孤島。
區塊鏈技術借助非對稱加密、點對點網絡、節點共識算法和時間戳等機制,具有去中心化、不可篡改、可追溯等技術特點,在能源領域獲得了極大關注,不同領域的相關研究成果不斷涌現。在設備入網認證方面,文獻[11]從節點認證、用戶身份認證、用戶權限管理方面系統闡述了區塊鏈系統認證機制的研究和發展,分析了存在的問題,并進行了總結。文獻[12]提出了一種基于區塊鏈的分布式動態網關架構及接入認證機制,將多個網關組成私有鏈,并使用區塊鏈的共識機制進行主網關的選擇,確保主網關的可靠性。終端設備向網關發起認證的過程中使用了門限共享算法來提供認證過程的安全性。對于跨域認證,文獻[13]利用云服務器組成聯盟鏈,引入邊緣網關作為區塊鏈的客戶端并屏蔽物聯網底層異構性,利用多CA共識實現多信任域之間的認證。文獻[12-13]的主要思想是在設備入網時使用區塊鏈技術完成認證,以此解決大量設備集中認證所帶來的通信、效率及安全隱患問題。
在數據安全可信方面,文獻[14]提出了一種多鏈架構的能源數據訪問控制方法,通過多數據鏈實現數據的隔離,通過監管鏈進行跨鏈的數據訪問、監管、審計和確權,并運用加密技術進行細粒度的訪問控制。文獻[15]歸納了區塊鏈在數據完整性方面的研究成果,總結了相關成果的優缺點,并提出了研究方向和解決思路。文獻[16]基于主鏈和側鏈組成的二級鏈框架,實現跨域數據存儲校驗及快速溯源。文獻[17]則設計了基于數字簽名和區塊鏈技術的數據傳輸系統來提高智慧電廠控制系統的安全防護能力。文獻[18]針對武器裝備系統的數據特點,設計了一種基于分類權限的多節點容錯共識機制,并對多樣冗雜數據進行了驗證。
在實現數據共享方面,文獻[19]提出了一種基于區塊鏈的軍事裝備數據共享架構,基于屬性加密和智能合約技術解決不同主體間信任問題,實現數據的安全共享。文獻[20]針對目前電力數據共享方面的問題和痛點,構建了基于區塊鏈的電力數據共享模型,并列舉了若干電力數據共享應用場景。文獻[21]借助私有鏈、聯盟鏈和公有鏈搭建能源數據的統一監控和共享交易架構模型,實現可靠的數據共享和交易。文獻[22]利用聯盟鏈設計了一個電力數據資產的交易平臺,促進電力數據有償共享。
在整體系統方面,文獻[23]提出了一種基于聯盟鏈的包括用戶、云服務商和云邊協同平臺三大主體的云邊協同業務系統,對認證授權、調度采集、結算監管流程進行設計來解決云邊協同主體間資源調度時的可信性等問題。文獻[24]提出由不同層次的獨立區塊鏈組成的區塊鏈群來解決分布式電力能源系統的管理、調度、運維、維護方面的問題。文獻[25]提出了一種武器裝備數據的控制平臺方案,以以太坊系統為基礎架構,通過智能合約實現武器裝備全壽命周期的訪問、審計及跟蹤。文獻[26]針對能源互聯網數據的共享利用及增值問題,提出了基于邊云鏈協同技術的解決方案并進行了研究展望。
本文主要針對工礦、電力、軍事物聯網中數據安全性低、易被篡改、難于共享的問題,提出一種基于區塊鏈技術的邊云協同物聯網系統,將一系列與終端設備相連的網關組成私有鏈雙鏈,在邊緣層實現對終端設備的認證和關鍵數據上鏈;進一步地,在云端層建立由云平臺組成的聯盟鏈和私有鏈,并結合跨鏈技術進行信息的交互訪問,數據在機構內可安全地分布式存儲,還可以跨機構進行數據共享。通過上述多層輕量級認證、數據上鏈及云端數據分享平臺的引入,可減輕系統集中認證的負擔,降低隱私信息泄露的風險,并可有效降低認證中心的建設成本,同時能保障數據的安全可信,基于云端區塊鏈的數據共享有利于打破目前廣泛存在的數據孤島局面。
從數據結構和數據處理的角度來看,區塊鏈表現為基于哈希密碼學和Merkel樹模型的鏈式數據結構,借助非對稱加密、點對點網絡、節點共識算法和時間戳等機制,為參與節點提供可信、不可篡改、透明的分布式賬本。在區塊鏈中,區塊只有添加操作,沒有刪除操作;區塊與區塊之間以鏈表形式首尾相接,新的區塊添加到鏈表的末尾。每個區塊包括區塊頭和區塊體兩部分,其中區塊頭中包括時間戳、Merkel樹根值、前一個區塊的哈希值;區塊體存儲數據信息。Merkel樹可以方便查詢區塊鏈信息。在區塊生成時為區塊加蓋時間戳,隨區塊鏈的增長可形成一條時間維度的鏈條,使得能按照時間維度對數據進行追溯。非對稱加密主要用來確保賬本內容和交易的安全性、授權及可驗證。
1.1.1 共識機制
共識機制是區塊鏈的核心內容,主要用來解決拜占庭將軍問題,保障分布式賬本數據的一致性和真實性,直接影響到區塊鏈系統的效率、性能及安全。為使得區塊鏈所有節點存儲數據時具有相同的狀態,當對一個區塊鏈的節點數據進行新增時,所有區塊鏈節點要對新增操作達成共識。典型的拜占庭容錯類共識機制包括:PoW(Proof of Work)、權益證明 PoS(Proof of Stake)和授權股份證明 DPoS(Delegated Proof of Stake)、PBFT(Practical Byzantine Fault Tolerance)機制。從效率、資源消耗、適用場景維度對典型共識機制進行了對比,結果見表1所列。由表1可以發現,應用聯盟鏈和私有鏈時,PBFT共識機制具有更明顯的優勢。

表1 共識機制對比
1.1.2 智能合約
從狹義上來看,智能合約是由事件驅動的、有狀態地運行在區塊鏈賬本上的一段程序。智能合約有如下特點:智能合約每次運行,相同的輸入都會產生相同的輸出;在有限時間內,合約會運行結束;可自我執行和驗證;一旦部署運行,不能也不允許修改;合約的執行環境通常為虛擬機或者容器,合約用到的資源會被隔離和限制。以太坊和超級賬本是目前相對成熟且比較流行的智能合約平臺。
1.1.3 跨鏈技術
區塊鏈的跨鏈技術是實現區塊鏈間互聯互通的一種非常重要的技術手段。目前除了廣泛存在的公有鏈,組織內部和組織間還有大量的私有鏈和聯盟鏈存在,為了在日益增長的區塊鏈間有效進行數字資產轉移、跨鏈數據訪問和提升區塊鏈交易處理能力,跨鏈技術應運而生。目前比較主流的跨鏈技術包括:公證人機制(notary schemes)、側鏈/中繼(sidechains/relays)、哈希鎖定(Hash-locking)。其中,公證人機制是通過選舉一個或多個可信節點作為公證人,對一條鏈的事件進行監聽,并通過事件觸發在另外一條鏈上執行某些動作,對事件做出響應;側鏈/中繼則是在一條區塊鏈上執行智能合約,通過另外一條區塊鏈的加密哈希樹和區塊頭來驗證事件是否發生、狀態是否改變等。哈希鎖定是通過運行智能合約進行資產鎖定及時間設置和條件解鎖來實現跨鏈交易的一種方案。在具體應用跨鏈技術的時候,需要從需求場景、效率、性能、資源消耗、安全性等多個維度進行評估考慮。
數字簽名(digital signature)是基于非對稱加密的一種安全認證技術,具有完整性(integrity)、不可否認性(nonrepudiation)、可認證性(authentication)。數字簽名的原理可概括為:通過特定哈希函數作用于原始的報文信息,從而得到摘要信息,用發送者的私鑰對摘要信息進行加密得到密文,將密文和原始報文信息一起發送給接收者。接收者用發送者的公鑰解密收到的密文,從而獲得解密后的摘要信息;將哈希函數作用于收到的原始報文信息以獲得摘要信息,并與解密得到的摘要信息進行比對。如果比對的結果一致,那么說明收到的信息在傳輸過程中沒有被篡改過,信息是完整的,因此使用數字簽名技術可驗證數據信息的完整性。非對稱加密主要包括RSA算法、DSA算法及ECC算法,其中RSA算法應用最為廣泛。
在各相關領域已有研究成果的基礎上,本文提出了一種基于區塊鏈的物聯網云邊協同架構。在邊緣層實現終端設備的分布式接入認證,解決集中認證的安全性、可靠性、帶寬負載性能等問題,并通過將數字簽名密文等信息存儲到私有鏈來提高認證的可信性和安全性;在云端層運用區塊鏈及跨鏈技術提高價值數據在機構內和機構間進行共享的可靠性和安全性。如圖1所示,從左至右分成機構A和機構B各自獨立的云邊端系統,云邊端系統架構分為3個層次,自下而上依次為終端層、邊緣層及云端層。這里只提供了最簡易的系統模型,對于兩個以上的機構組成的云邊端系統,本模型也同樣適用,并易于擴展。

圖1 邊云協同物聯網系統模型
終端層由各種異構的物聯網終端設備組成,終端設備上送的數據按照重要性可以分為兩類:關鍵數據和非關鍵數據,其中關鍵數據可以是故障、異常、報警數據等,非關鍵數據是實時性較高、周期性采集的,如傳感器數據。進行數據分類主要是考慮到區塊鏈上只有新增和查詢,沒有刪除和修改操作,將所有數據上鏈并不現實也沒有必要,只選擇將關鍵數據保存至區塊鏈即可,非關鍵數據保存到本地的數據庫,并對其進行定期備份和刪除等維護操作。
邊緣層由網關組成,各網關之間建立P2P網絡連接,并在網關間基于私有鏈架構組建兩條區塊鏈,其中一條區塊鏈用于對終端層的物聯網終端設備進行接入認證,另外一條區塊鏈用來保存終端層的物聯網終端設備的關鍵數據。網關的數據按照重要性也可以分為關鍵數據和非關鍵數據兩類。對于網關而言,由于其具有邊緣計算能力,可開展一定的機器學習和數據挖掘工作,并與云端層兩者間存在業務、模型等方面的協同,網關上有價值的關鍵數據相比終端設備來說更為豐富,可以根據實際需要自定義關鍵數據的種類;非關鍵數據通常是一些靜態數據或者運行時的常態數據。
云端層由云平臺組成,機構內的云平臺節點間部署基于私有鏈架構的區塊鏈,用于存儲價值數據。為了打破數據壁壘,實現數據共享,在機構間的云平臺節點上部署基于聯盟鏈架構的區塊鏈。云端層沒有采用區塊鏈技術對接入的網關進行認證,是考慮到云平臺通常使用的是公有云方案,而不是企業或機構自行搭建的私有云。公有云在設備接入認證安全方面已經有比較成熟的措施和技術方案,不需要使用方再單獨考慮。如果使用的是私有云,那么可以采用與邊緣層類似的認證方案,但是私有云通常需要在基礎設施上投入較大資金,并需要專業團隊自行設計軟硬件架構網絡等,運維難度大,維護成本高。
本架構模型中,邊緣層由網關組成,網關又是私有鏈的節點。圖2展示了網關上的主要架構。物聯網終端設備上送的非關鍵數據直接存儲到網關的本地數據庫中,而將物聯網終端設備上送的關鍵數據存儲到數據私有鏈上。為滿足高頻交易的效率和吞吐量要求,網關的私有鏈采用PBFT共識機制。網關上對設備的認證主要基于區塊鏈和數字簽名實現。

圖2 網關架構模型
網關認證處理流程如下:
(1)終端設備發起認證,請求中包括原始信息和密文,其中原始信息由設備唯一標識、設備類型、生產廠家編號、設備出廠時間等信息組成;密文則是對原始信息用哈希函數處理得到的摘要信息,再用私鑰對摘要信息加密得到。
(2)網關上的注冊認證授權模塊收到請求后,哈希函數作用于報文中的原始信息獲得摘要信息,用公鑰對請求中的密文進行解密后獲得摘要信息,并將兩個摘要信息進行對比。
(3)如果比對結果不一致,返回認證失敗,不允許設備接入;如果比對結果一致,則按照設備唯一標識到認證私有鏈上去搜索。
(4)如果搜索成功且請求上送的摘要信息與私有鏈上存儲的摘要信息相同,則認證成功,允許終端設備接入網關;否則,認為終端首次發起認證,作為注冊繼續處理,基于PBFT共識機制,認證區塊鏈上新增一個區塊,新增區塊的區塊體中存儲設備唯一標識、摘要信息的密文。
對于數據報文,網關上的處理流程如下:
(1)數據報文也包括原始信息和密文,密文則是對原始信息用哈希函數處理得到的摘要信息,接著用私鑰對摘要信息加密得到。將哈希函數作用于報文中的原始信息獲得摘要信息,用公鑰對請求中的密文進行解密后獲得摘要信息,并將兩個摘要信息進行對比。
(2)若對比結果一致,則根據報文判斷。若為非關鍵數據,那么直接存儲到本地數據庫中;如果為關鍵數據,基于PBFT共識機制,數據區塊鏈上新增一個區塊,新增區塊的區塊體中存儲關鍵數據。
(3)若對比結果不一致,則丟棄,并返回終端失敗應答。
通過在邊緣層應用區塊鏈技術進行終端接入認證,避免了海量終端設備將認證集中發送到云平臺所帶來的網絡帶寬消耗、計算資源浪費,降低了云平臺的系統壓力,避免了大量接入可能導致的服務中斷和網絡延時,降低了中心化運維的成本。基于區塊鏈技術在邊緣層對設備進行認證管理,可以有效解決邊緣層網關單點故障問題。終端設備的隱私數據不用上傳至云平臺,可以降低隱私數據泄露的風險,隱私數據的安全性得到了保證,并且終端設備上送的關鍵數據可以去中心分布式地存儲在多個網關上,且使用區塊鏈可有效防止數據篡改,同時能進行數據的追本溯源,數據安全性和可靠性都提到了極大的提高。
由于缺乏頂層設計,工礦、電力、軍事相關企業組織在不同發展階段有著不同的信息化建設目標,不同業務領域涉及到大量不同的業務系統,因此各后臺系統多自成體系,通常是彼此獨立,以信息孤島方式存在,數據共享互通的實現難度非常大。為了解決上述問題,在云端層應用區塊鏈技術,不但能解決數據安全問題,防止數據篡改偽造,還可以實現機構內部和機構間的數據共享,使得數據資源得到最大化利用。
圖3展示了跨鏈云平臺節點的模型。與非跨鏈節點相比,跨鏈節點多了聯盟鏈及對應的跨鏈訪問機制。在組織結構內部的云平臺間建立私有鏈,私有鏈存儲價值數據的原始數據。在不同機構組織的云平臺間建立聯盟鏈,聯盟鏈存儲價值數據的摘要信息。為了實現聯盟鏈和私有鏈之間的數據訪問,云平臺上的跨鏈節點需要引入跨鏈技術,目前比較常見的跨鏈技術包括公證人機制、哈希鎖定、側鏈/中繼、分布式秘鑰控制,通過衡量各種跨鏈技術的優缺點,本文選擇公證人機制實現跨鏈操作。

圖3 跨鏈云平臺節點模型
私有鏈數據來源于云平臺上的數據智能處理模塊,該模塊通過調用數據庫接口、消息收發、訪問緩存等技術手段獲取網關上送的數據,包括已經部署在云平臺上的其他已有各類業務系統對外開放的數據,以及來自于云平臺之外的其他系統的數據;再通過大數據、人工智能、深度學習、數據挖掘等技術處理源數據,從而獲得具有較高價值的數據。為了防止價值數據泄露,須將價值數據加密后再存儲到私有鏈。價值數據上鏈后,即使少數云平臺出現故障也不太可能造成價值數據的丟失,因為區塊鏈具有去中心分布式存儲的特點,在其他云平臺也存儲了價值數據,而且價值數據上鏈后也有利于在機構內部進行共享,避免在機構內部形成數據孤島。
為了實現數據安全和訪問控制,聯盟鏈區塊中不直接存放要共享的價值數據對應的原始數據,而是存放價值數據的摘要信息,摘要信息由價值數據的類別、類型、編號、用途、生成時間、所有者、版本號、與私有鏈關聯數據等信息構成。此外,還需提供聯盟鏈上摘要信息的查詢接口,通常數據需求方先通過查詢、檢索到對應的摘要信息才可感知所需的數據是否在共享系統中存在,查詢接口可以方便數據需求方和數據提供方之間進行對接。采用聯盟鏈的優點是節點數量可控,容易達成共識;數據一定程度上只有屬于聯盟內部的成員所有,訪問可控,還可以防止數據被非法篡改和破壞。
數據共享步驟如下:
(1)聯盟鏈成員作為數據需求方,通過查詢接口,檢索摘要信息中是否有所需數據。
(2)如檢索到目標數據,那么發送請求給智能合約,請求中攜帶目標數據的編號、所有者等信息。
(3)智能合約收到請求后,通過簽名對數據需求方進行身份合法性校驗;檢查通過后,通過公證人機制和跨鏈機制,從私有鏈上獲取到原始數據密文,并從公證人處獲得解密秘鑰。
(4)將原始數據密文及解密秘鑰返回給數據需求方。
(5)數據需求方用解密秘鑰解密密文,獲得原始數據。
工礦、電力、軍事物聯網系統是基于物聯網、區塊鏈、大數據、云計算、人工智能等新興技術構成的復雜系統,在國民生產生活中發揮著至關重要的作用。系統核心價值數據在采集、傳輸、存儲、訪問過程中需要具有防篡改、防泄露、可追溯的功能;要抵御對系統的可能攻擊,在對數據進行有效防護的同時,還需進行可靠可信的數據共享,發揮數據的應有價值,相關的理論研究和實踐具有重要的意義。
本文從區塊鏈核心技術的最新研究成果出發,圍繞工礦、電力、軍事物聯網的終端設備接入認證、數據存儲、數據安全、數據共享等關鍵問題,進行了系統的研究分析,提出了一種基于區塊鏈的物聯網云邊協同架構。運用私有鏈、聯盟鏈、數字簽名、跨鏈訪問等技術提高工礦、電力、軍事物聯網系統價值數據的安全性、可信性、可追溯、可共享性。通過模擬實驗發現,方案具有一定的實用性和參考意義。不過,從方案的整體來看,在以下方面還需要繼續深入研究和改進:
(1)在設備接入認證方面,考慮引入設備的地理位置信息,如使用北斗導航模塊獲取設備位置并上送,從而預防可能發生的移機攻擊。
(2)在數據共享方面,進一步研究在云端使用NFT(Non-Fungible Token)技術,實現相關接口規范,促進數據資產有償分享和轉讓。