導(dǎo)讀:受信任的組織可以將事務(wù)寫入?yún)^(qū)塊鏈,而協(xié)商一致機制則無關(guān)緊要。這種部署對受監(jiān)管的行業(yè)或?qū)儆谕环蓪嶓w的組織最有效。例如由項目R3和金融機構(gòu)的鏈核心所提議的垂直項目,很可能是由中央權(quán)威管理的私人區(qū)塊鏈。
物聯(lián)網(wǎng)將是下一個推動世界高速發(fā)展的“重要生產(chǎn)力”,物聯(lián)網(wǎng)也是新一代信息技術(shù)的重要組成部分。隨著萬物聯(lián)網(wǎng)的興起,如何應(yīng)用新技術(shù)保證物聯(lián)網(wǎng)的安全,成為當(dāng)下需要解決的問題。區(qū)塊鏈是一種分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等多種技術(shù)相整合的新型安全保障,使用區(qū)塊鏈的技術(shù)確保物聯(lián)網(wǎng)的安全是一種前瞻也是一種發(fā)展。
云安全聯(lián)盟 (CSA)發(fā)布了《用區(qū)塊鏈技術(shù)保障物聯(lián)網(wǎng)安全》報告,該報告涉及兩種不同成熟度級別的技術(shù):區(qū)塊鏈和物聯(lián)網(wǎng),重點介紹了使用區(qū)塊鏈技保護連接設(shè)備時應(yīng)考慮的各種功能,探討區(qū)塊鏈技術(shù)在促進和改善物聯(lián)網(wǎng)安全方面的能力。報告對區(qū)塊鏈技術(shù)進行了高度概述, 描述了一組體系結(jié)構(gòu)模式使區(qū)塊鏈技術(shù)可以作為一種防護手段來保障物聯(lián)網(wǎng)安全,同時還提供了區(qū)塊鏈技術(shù)應(yīng)用于物聯(lián)網(wǎng)安全的實例。本文翻譯并提取云安全聯(lián)盟發(fā)布的英文版《用區(qū)塊鏈技術(shù)保障物聯(lián)網(wǎng)安全》報告的主要內(nèi)容,希望以與讀者一些啟發(fā),能夠應(yīng)用新應(yīng)技術(shù)區(qū)塊鏈保證物聯(lián)網(wǎng)的安全。
區(qū)塊鏈概述
區(qū)塊鏈技術(shù)【1】簡稱是區(qū)塊鏈【2】是一種區(qū)塊服務(wù),它是一個事務(wù)存儲庫,將事務(wù)分組存到區(qū)塊中?!懊總€區(qū)塊都包含上一個區(qū)塊的散列函數(shù)(Hash),就產(chǎn)生了創(chuàng)建從原始區(qū)塊到當(dāng)前區(qū)塊的一系列區(qū)塊的效果【3】,并對每個區(qū)塊的內(nèi)容進行數(shù)字簽名,以確保記錄的事務(wù)的數(shù)據(jù)完整性。”
區(qū)塊鏈服務(wù)的三個主要組件
(1) 自治節(jié)點網(wǎng)絡(luò)
自治節(jié)點網(wǎng)絡(luò)是指區(qū)塊鏈服務(wù)的所有節(jié)點(也稱為區(qū)塊鏈平臺)協(xié)作以保持分類帳簿的一致性。其中獨立節(jié)點自動生成,并將合法的事務(wù)注冊到分布式賬簿本。對于驗證事務(wù),不需要中央主管(權(quán)威)機構(gòu)或可信的第三方。
每個節(jié)點都運行一個被稱為協(xié)商一致意見【4】的程序機制。協(xié)商一致意見是節(jié)點在一組事務(wù)中如何更新區(qū)塊鏈的過程,并且達成共識,確保網(wǎng)絡(luò)中的大多數(shù)節(jié)點都驗證了相同的事務(wù)集。
分布式協(xié)商一致的目標是保持系統(tǒng)中足夠多數(shù)的分類賬簿是正確和最新的(在一個粗略的時間尺度上)。協(xié)商一致性的機制防止了:
A)惡意的事務(wù)的通過
B)追溯修改交易來破壞賬簿的完整性
C)執(zhí)行未經(jīng)許可的事務(wù)(例如:“雙支出”和在加密貨幣設(shè)置中轉(zhuǎn)讓非自有資產(chǎn))或阻止對正確事務(wù)請求的接受和預(yù)訂。
在開發(fā)區(qū)塊鏈服務(wù)防范特定攻擊時所選擇協(xié)商一致的方法,這些攻擊緩解措施并不完全是技術(shù)性的。以比特幣的“工作量證明”為例,即獲得51%的采礦哈希計算力,將有可能使攻擊者花費雙倍花費的硬幣或改變近期的交易歷史。
此外,獲得51%的哈希計算力和傳播惡意交易將迅速破壞對加密貨幣的信心,并顯著降低惡意方的利益風(fēng)險價值。此外,惡意方可以簡單地利用他們的哈希計算力在挖掘過程中為自己創(chuàng)造收益。
在一個被許可的(封閉的)系統(tǒng)中,經(jīng)濟不利因素可能不存在。許可系統(tǒng)還往往采用減少開采困難,允許在網(wǎng)絡(luò)中進行更快的事務(wù)。這些許可系統(tǒng)必須要符合傳統(tǒng)的網(wǎng)絡(luò)安全控制,包括彈性防護、基于硬件的錢包、網(wǎng)絡(luò)礦工限制訪問控制、身份管理和強大的審計能力,以確保潛在的監(jiān)管介入、訴訟和刑事調(diào)查系統(tǒng)在內(nèi)的不當(dāng)行為。
三種在區(qū)塊鏈中的主要共識的機制
拜占庭容錯(BFT):拜占庭式容錯(BFT)算法的設(shè)計是為了避免攻擊和軟件錯誤引起的故障節(jié)點表現(xiàn)出任意的行為(拜占庭式的錯誤)。BFT在參與的情況下提供了一致意見。
這種方法的缺點是,在形成區(qū)塊鏈網(wǎng)絡(luò)的節(jié)點數(shù)量上,可伸縮性限制。已經(jīng)提出了BFT的替代方法,包括實用的拜占庭式容錯。目前使用PBFT的區(qū)塊鏈實現(xiàn)的例子是Linux基金會Hyperledger fabric (0.6)和瑞波幣.
由比特幣和以太坊(Ethereum)使用的“工作量證明”(POW)是一種廣為人知的建立共識的機制:在工作量證明(POW)【5】一個單獨的節(jié)點可以向其他節(jié)點提供其結(jié)論,該節(jié)點可以由網(wǎng)絡(luò)中的其他節(jié)點進行驗證。提交一個生成的塊的節(jié)點,為了能夠達成共識,還必須提供它執(zhí)行的工作的證明,這是一個計算困難的任務(wù)(基于哈希函數(shù)的“密碼解題”)。
工作量證明(POW)提供了良好的網(wǎng)絡(luò)穩(wěn)定性。然而,工作量證明(POW)的成本特別高。計算資源消耗。“礦工”被授予作為成功的塊生成的回報,獲得一個秘密獎勵。
權(quán)益證明(POS)【6】與POW類似:節(jié)點在生成塊時獲得獎勵。然而,只有幾個節(jié)點可以參與到這個階段。實際上,下一個生成節(jié)點是基于累積的財富(即,即:“權(quán)益”)。基于POS的區(qū)塊鏈的挖掘過程通常稱為“偽造”或“鑄造”。推出PoS的技術(shù)就是點點幣(PeerCoin)。
(2) 交易分類帳
“區(qū)塊鏈”中數(shù)據(jù)庫是由塊組成。每個塊包含一個有效的事務(wù)列表、一個時間戳和將當(dāng)前塊鏈接到上一個塊的信息。通過每個塊的鏈接到前面的塊的鏈接創(chuàng)建分類賬簿。
分類賬的核心是哈希加密,這是一種數(shù)學(xué)算法,它將可變大小的數(shù)據(jù)映射到一個固定大小的字符串。所有的交易——A, B, C, D -都是散列- H(A), H(B), H(C), H(D) -然后匯總成連續(xù)的哈希- H(hA|hB), H(hC|hD) -構(gòu)成一棵Merkle樹。頂部散列,或Merkle樹根,是集成塊頭部。
(3)分布式數(shù)據(jù)庫
分布式數(shù)據(jù)庫【7】是指當(dāng)添加新的事務(wù)時,會生成一個分類賬,并且可以在系統(tǒng)的節(jié)點上進行復(fù)制,這就是分布式賬簿。網(wǎng)絡(luò)上的每個節(jié)點都有自己的數(shù)據(jù)庫副本,可以訪問任何數(shù)據(jù)庫的歷史事務(wù)。
特定的加密貨幣的區(qū)塊鏈容量將驅(qū)動特聯(lián)網(wǎng)和其他主機的存儲容量需求。下表為流行的加密貨幣在2017年8月14日提供區(qū)塊鏈容積。
事務(wù)傳播和區(qū)塊鏈建設(shè)
下面是區(qū)塊鏈事務(wù)的通用處理流程。當(dāng)一個事務(wù)被提交到一個節(jié)點時,一個區(qū)塊鏈服務(wù)通常運行如下:
1. 將新事務(wù)廣播到所有節(jié)點。
2. 每個節(jié)點將新事務(wù)收集到塊中。
3. 每個節(jié)點工作在塊的一致性算法上(一般來說,這個任務(wù)在節(jié)點處理和耗電方面是昂貴的)。
4. 當(dāng)節(jié)點完成協(xié)商一致性算法處理時,它將該塊和處理結(jié)果廣播給所有節(jié)點,然后接收該工作的補償。(在比特幣的情況下,補償是由比特幣礦工處理和接收的交易費用。)
5. 節(jié)點僅在其所有事務(wù)有效時才接受該塊。
6. 通過使用已接受塊的散列作為前一個散列,通過在鏈中創(chuàng)建下一個塊來表示對塊的接受。
這種技術(shù)并不新鮮:它涉及數(shù)字簽名、密碼哈希算法、對等連接、分布式數(shù)據(jù)庫等等。在當(dāng)前的形勢下,有效結(jié)合這些離散技術(shù)的區(qū)塊鏈技術(shù)是必要的,因為提高計算能力和互聯(lián)網(wǎng)速度可以實現(xiàn)分布式計算。
智能合約
智能合約【8】是在分類帳上執(zhí)行的自執(zhí)行代碼。使用智能合約,雙方進行交易。例如,一方可以提供服務(wù),而另一方為該服務(wù)提供支付。智能合約強制執(zhí)行交易規(guī)則,也可以執(zhí)行與違約相關(guān)的懲罰。
在物聯(lián)網(wǎng)的背景下,設(shè)備可以預(yù)先配置為基于區(qū)塊鏈上的契約地址與智能合約進行交互。這些設(shè)備隨后可以進入彼此之間的事務(wù)處理。智能合約監(jiān)視事務(wù)流程,并并驗證在發(fā)布資金或允許操作之前遵循了規(guī)則。
使用智能合約的物聯(lián)網(wǎng)系統(tǒng)的實現(xiàn)者必須考慮潛在的誤用案例,并安裝規(guī)則在合約中。例如,一個智能合約開發(fā)人員可能會強制執(zhí)行托管(保留資金)要求,直到完成智能合約條款的驗證。與智能合約一起工作時,考慮其他安全要求,包括需要避免在第一次合約交易完成之前再次執(zhí)行合約的競爭條件(即第一筆合約交易完成之前,合同可以再次執(zhí)行),驗證合約的發(fā)送方和接收方不使用相同的地址。確保只有授權(quán)的設(shè)備才能使用智能合約。
鏈下存儲解決方案
負責(zé)實施區(qū)塊鏈技術(shù)的解決方案開發(fā)人員應(yīng)該認識到,沒有與使用公共區(qū)塊鏈網(wǎng)絡(luò)相關(guān)的機密性保護。即使是私有/許可的網(wǎng)絡(luò)也缺乏足夠的保密工具來支持在鏈上存儲敏感數(shù)據(jù)。相反,許多組織需要建立起來“鏈下”存儲解決方案,這些解決方案可以用來存儲數(shù)據(jù)產(chǎn)品,而區(qū)塊鏈將這些產(chǎn)品的散列記錄為事務(wù)。這些鏈下存儲解決方案應(yīng)該根據(jù)任何法規(guī)要求或行業(yè)最佳實踐進行加密。
部署選項
區(qū)塊鏈可以在 三個 區(qū)域內(nèi)部署:
未經(jīng)許可的區(qū)域(public)
每個節(jié)點都可以讀取和發(fā)送事務(wù),也可以參與協(xié)商一致的過程。POW一致性算法最適合于不受約束的區(qū)域。
聯(lián)盟區(qū)域(例如部分許可)
定義節(jié)點可以參與協(xié)商一致過程。讀取和發(fā)送交易可能是公開的或受限制的。拜占庭容錯(BFT)最好應(yīng)用于聯(lián)盟部署,比如Hyperledger——一個由Linux基金會管理的開源項目。
許可區(qū)域(private)
受信任的組織可以將事務(wù)寫入?yún)^(qū)塊鏈,而協(xié)商一致機制則無關(guān)緊要。這種部署對受監(jiān)管的行業(yè)或?qū)儆谕环蓪嶓w的組織最有效。例如由項目R3和金融機構(gòu)的鏈核心所提議的垂直項目,很可能是由中央權(quán)威管理的私人區(qū)塊鏈。
比特幣和以太坊是不受許可的區(qū)塊鏈實現(xiàn),它們在支持分布式應(yīng)用程序(DAP)方面獲得了廣泛的支持。以太坊包括可以使用的固體編程語言。輕松構(gòu)建智能合約,實現(xiàn)物聯(lián)網(wǎng)設(shè)備之間的自主點對點交易。解決方案,如BTC中繼,提供了在以太坊中解決智能合約的能力,并通過比特幣進行支付。
區(qū)塊鏈實現(xiàn)是在區(qū)塊鏈網(wǎng)絡(luò)上構(gòu)建服務(wù)的框架,例如加密貨幣、分布式應(yīng)用程序和智能合約。該框架描述了要使用的理論概念以及它們?nèi)绾谓M合(例如,協(xié)商一致機制,數(shù)字簽名、密碼方法和通信屬性等內(nèi)容)。由實現(xiàn)者指定并詳細說明實現(xiàn)框架的技術(shù)組件。右邊的圖提供了在設(shè)計基于塊的物聯(lián)網(wǎng)的安全解決方案時要考慮的技術(shù)組件。
多個區(qū)塊鏈實現(xiàn)是可能的,并且每一個都提出了不同用法和服務(wù)的建議。在這些網(wǎng)絡(luò)之間的“無信任交換”將可能使用一個名為雙向掛鉤”的中繼,允許訪問另一個區(qū)塊鏈的功能。Rootstock是一個開放源代碼的智能合約平臺,采用雙向綁定的比特幣。
基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)架構(gòu)
將區(qū)塊鏈技術(shù)應(yīng)用到物聯(lián)網(wǎng)【9】中,需要對物聯(lián)網(wǎng)的體系結(jié)構(gòu)模式進行測試。區(qū)塊鏈服務(wù),定義的模式應(yīng)該包括以下三個部分:
通信模型
通信模型描述了直接在物聯(lián)網(wǎng)節(jié)點上安裝區(qū)塊鏈軟件,或者將應(yīng)用程序編程接口(api)安裝到IoT節(jié)點上。下圖展示了一個通用的、接受的模型,結(jié)合了區(qū)塊鏈技術(shù)和IoT,當(dāng)IoT edge設(shè)備具有強大的功能,使它們能夠承載事務(wù)節(jié)點軟件,存儲分類賬,并通過節(jié)點網(wǎng)絡(luò)維護通信。
物聯(lián)網(wǎng)事務(wù)節(jié)點
在前面的圖中,每個物聯(lián)網(wǎng)設(shè)備都承載了分類賬,并且能夠參與包括挖掘在內(nèi)的區(qū)塊鏈事務(wù)。每個設(shè)備都配置了一個私有密鑰,或者包含了內(nèi)部自生成的私有密鑰來參與網(wǎng)絡(luò)事務(wù)。這個最終狀態(tài)模型提供了三個基本功能,可以啟動使用區(qū)塊鏈服務(wù):
? 自主的物聯(lián)網(wǎng)設(shè)備網(wǎng)絡(luò),包括自主協(xié)調(diào)(如:協(xié)商一致和點對點信息);
? 任何物聯(lián)網(wǎng)的設(shè)備都可以創(chuàng)建運行加密特性的事務(wù)的事務(wù)分類賬簿;
? 一個分布式數(shù)據(jù)庫,其中任何物聯(lián)網(wǎng)設(shè)備都有最新版本的分類賬簿;
硬件的限制使得采用這個模型在當(dāng)前的時間內(nèi)很難實現(xiàn)。具有如下挑戰(zhàn);
1. 低處理:區(qū)塊鏈服務(wù)的計算需要較高的CPU、內(nèi)存和電源能力。在區(qū)塊鏈平臺上,主要的潛在硬件是挖掘POW;智能合約的執(zhí)行和加密原始執(zhí)行。
2. 小存儲:在分類帳中添加的事務(wù)量會增加,即使處理小的事務(wù)數(shù)據(jù)也會變得很麻煩。
3. 有限的連通性:一個物聯(lián)網(wǎng)設(shè)備可以利用低帶寬的互聯(lián)網(wǎng)或無線電訪問,這在下載期間的性能問題并與分類賬同步時都會引入性能問題。
一些公司,如IOTA,提出了“區(qū)塊鏈”微型傳感器的新方法,包括以下內(nèi)容及解決方案:
? 簡化挖掘處理過程,減少硬件需求。
? 實現(xiàn)與物聯(lián)網(wǎng)交互相關(guān)的微事務(wù)。
? 保持輕量級的帳簿
基于云計算的物聯(lián)網(wǎng)區(qū)塊鏈網(wǎng)絡(luò)
在啟用云的區(qū)塊鏈網(wǎng)絡(luò)中,事務(wù)和挖掘節(jié)點都位于云和預(yù)置環(huán)境。根據(jù)實現(xiàn)的不同,節(jié)點可能是企業(yè)服務(wù)器;企業(yè)/個人電腦或智能設(shè)備。(手機或平板電腦);基于云的虛擬機和物聯(lián)網(wǎng)設(shè)備,需要擁有足夠的硬件資源(CPU、RAM、存儲等)。
具有有限硬件資源的物聯(lián)網(wǎng)設(shè)備作為區(qū)塊鏈客戶端。他們不存儲分布式賬本。這些客戶機通過api與上游的基于云的區(qū)塊鏈事務(wù)節(jié)點交互。api可能是HTTP REST或JSON RPC。
物聯(lián)網(wǎng)設(shè)備收集數(shù)據(jù)轉(zhuǎn)發(fā)到事務(wù)節(jié)點以進行區(qū)塊鏈服務(wù)的處理,或者通過指向在云中運行的區(qū)塊鏈節(jié)點參與智能合約事務(wù)。在這種情況下,特聯(lián)網(wǎng)設(shè)備仍然配置了私有密匙來簽署它們的數(shù)據(jù)。然后將已簽名的數(shù)據(jù)發(fā)送到事務(wù)節(jié)點進行處理。為了安全地發(fā)送數(shù)據(jù),特聯(lián)網(wǎng)設(shè)備和事務(wù)節(jié)點之間必須有一個單獨的信任協(xié)議。例如,一對一的關(guān)系可以在兩個設(shè)備(一個物聯(lián)網(wǎng)設(shè)備和一個事務(wù)節(jié)點)之間使用白名單和雙向身份驗證功能。還應(yīng)該使用硬件安全性來安全地存儲私有簽名密鑰。
對于許可區(qū)域(私有區(qū)塊鏈服務(wù)),對挖掘節(jié)點的訪問可能僅限于授權(quán)的操作人員。在一個聯(lián)合區(qū)域(部分許可的區(qū)塊鏈服務(wù))或許可區(qū)域(私人區(qū)塊鏈服務(wù)),成員可以決定實現(xiàn)該體系結(jié)構(gòu)模式以提高安全性或用于法規(guī)遵從性目的。
比特幣的實現(xiàn)使用“瘦客戶端”來提出這種功能,也叫簡化支付驗證(SPV),它不存儲所有分類賬的完整副本。這些“瘦客戶機”與使用比特幣客戶端API (BCCAPI)的節(jié)點通信。
可以在多個特聯(lián)網(wǎng)設(shè)備之間交換消息。這些消息包含的數(shù)據(jù)被集成到參與交換到事務(wù)節(jié)點的特聯(lián)網(wǎng)設(shè)備的事務(wù)中。物聯(lián)網(wǎng)設(shè)備之間的通信協(xié)議和消息格式超出了區(qū)塊鏈實現(xiàn)的范圍:這些通信是指機器對機器的通信,如消息隊列遙測傳輸(MQTT)。
一個利用互操作性能力的豐富的生態(tài)系統(tǒng)利用互操作能力
圍繞區(qū)塊鏈技術(shù)開發(fā)一個生態(tài)系統(tǒng)將是一個加速其采用的機會。這個潛在的生態(tài)系統(tǒng)將提供簡化物聯(lián)網(wǎng)集成到區(qū)塊鏈服務(wù)的功能。
服務(wù)提供商,如塊密碼,提供API功能,簡化物聯(lián)網(wǎng)與區(qū)塊鏈服務(wù)客戶和服務(wù)之間的交互。API中間層允許開發(fā)物聯(lián)網(wǎng)上與不同區(qū)塊鏈服務(wù)通信的特性,方法是關(guān)注服務(wù)的價值而不是區(qū)塊鏈技術(shù)的技術(shù)實現(xiàn)。
解決方案提供商,例如信用,提供了快速構(gòu)建私有區(qū)塊鏈服務(wù)的框架。這些框架在事務(wù)節(jié)點上運行每個節(jié)點都由客戶端通過API訪問。這些框架還提供了與其他塊鏈服務(wù)交互的功能。
多個區(qū)塊鏈服務(wù)之間的共存
如下圖所示,另一個概念集中于多個區(qū)塊鏈服務(wù),每個服務(wù)提供不同的特性和貨幣,它們的數(shù)量將增長。這些區(qū)塊鏈服務(wù)將提出互補的功能。每個區(qū)塊鏈服務(wù)都可以與其他服務(wù)進行綁定,或者使用第三方提供的api。
Each blockchain service can run in different contexts, such as personal home network, enterprise and the Internet.
每次區(qū)塊鏈服務(wù)可以運行在不同的語境中,如個人的家庭網(wǎng)絡(luò),企業(yè)和互聯(lián)網(wǎng)。
基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)架構(gòu)模式
CSA 物聯(lián)網(wǎng)和區(qū)塊鏈/分布式分類技術(shù)工作組提出了以下系統(tǒng),在多區(qū)塊鏈服務(wù)中,物聯(lián)網(wǎng)客戶端可以進行協(xié)作。
區(qū)塊鏈服務(wù)1是一個專注的企業(yè)實施:
事務(wù)節(jié)點是托管在云中的企業(yè)計算機或服務(wù)器。
物聯(lián)網(wǎng)區(qū)塊鏈客戶是部署在企業(yè)地區(qū)區(qū)塊鏈服務(wù)2的傳感器和智能設(shè)備,是一個消費智能家居:
事務(wù)節(jié)點是個人計算機和其他設(shè)備或云訂閱。
物聯(lián)網(wǎng)區(qū)塊鏈客戶是智能設(shè)備,如冰箱、溫度傳感器和安全攝像頭。
物聯(lián)網(wǎng)設(shè)備是區(qū)塊鏈服務(wù)的客戶端的架構(gòu),主要是由當(dāng)前業(yè)界的努力所采用的實現(xiàn)區(qū)塊鏈技術(shù)。
用于物聯(lián)網(wǎng)安全的區(qū)塊鏈技術(shù)的選擇
區(qū)塊鏈技術(shù)可以幫助保護物聯(lián)網(wǎng)設(shè)備。物聯(lián)網(wǎng)設(shè)備可以配置為利用公共區(qū)塊鏈服務(wù)或通過安全API與云中的私有區(qū)塊鏈節(jié)點通信。將區(qū)塊鏈技術(shù)納入物聯(lián)網(wǎng)系統(tǒng)的安全框架中,使物聯(lián)網(wǎng)設(shè)備能夠安全地發(fā)現(xiàn)彼此,使用分布式密鑰管理技術(shù)對機器對機器的事務(wù)進行加密,并驗證軟件映像更新的完整性和真實性,以及策略更新。
基于本報告中詳細描述的潛在架構(gòu)模式,物聯(lián)網(wǎng)設(shè)備將通過API與區(qū)塊鏈事務(wù)節(jié)點進行通信,甚至允許受限設(shè)備參與區(qū)塊鏈服務(wù)。
為了確保安全性,在將物聯(lián)網(wǎng)設(shè)備引導(dǎo)到特定的區(qū)塊鏈服務(wù)時應(yīng)該注意。下面是物聯(lián)網(wǎng)發(fā)現(xiàn)的一個用例,它支持將一個物聯(lián)網(wǎng)設(shè)備注冊到一個事務(wù)節(jié)點中。物聯(lián)網(wǎng)設(shè)備必須首先配置憑據(jù),可以用來證明授權(quán),以便將其添加到事務(wù)節(jié)點。必須在安全的環(huán)境中進行這種憑據(jù)供應(yīng),以防范特定物聯(lián)網(wǎng)設(shè)備生態(tài)系統(tǒng)的威脅。
我們對區(qū)塊鏈技術(shù)的回顧和市場計劃的發(fā)展, 突出了五個需要考慮的特點。使用區(qū)塊鏈技術(shù)保護物聯(lián)網(wǎng)時:
1、物聯(lián)網(wǎng)發(fā)現(xiàn)可伸縮
2、信任的溝通
3、消息身份驗證/簽名(事件鏈)
4、物聯(lián)網(wǎng)配置和更新
5、安全固件映像的發(fā)布和更新。
1. 物聯(lián)網(wǎng)發(fā)現(xiàn)可伸縮
智能城市和大型企業(yè)物聯(lián)網(wǎng)的部署將導(dǎo)致數(shù)千或數(shù)萬個必須協(xié)同工作的物聯(lián)網(wǎng)設(shè)備[28]的激活。通常,這些設(shè)備將在自主機器對機器的事務(wù)中相互協(xié)調(diào)。這些設(shè)備還必須能夠發(fā)現(xiàn)合法的對等點和服務(wù)進行交互。物聯(lián)網(wǎng)系統(tǒng)可以利用公共和私有的區(qū)塊鏈實現(xiàn)來利用可擴展的物聯(lián)網(wǎng)發(fā)現(xiàn)。
例如,在比特幣內(nèi)部,一組硬編碼的DNS種子為新用戶和設(shè)備提供了引導(dǎo)服務(wù)。這些DNS種子可以在物聯(lián)網(wǎng)設(shè)備中預(yù)先配置。物聯(lián)網(wǎng)設(shè)備查詢這些地址,并提供完整節(jié)點的IP地址。然后物聯(lián)網(wǎng)設(shè)備將自己注冊到一個節(jié)點,并請求網(wǎng)絡(luò)上的其他物聯(lián)網(wǎng)設(shè)備列表。當(dāng)供應(yīng)時,物聯(lián)網(wǎng)設(shè)備可以開始點對點通信,同時向網(wǎng)絡(luò)中鄰居傳播同伴發(fā)現(xiàn)信息。
命名DNS種子地址的預(yù)配置(硬編碼)降低了執(zhí)行中間人攻擊的能力。物聯(lián)網(wǎng)設(shè)備在選擇一個節(jié)點注冊之前,從多個DNS種子接收信息。必須使用DNS 安全來確保根服務(wù)器的名稱解析,并減輕DNS欺騙攻擊。
命名DNS種子地址應(yīng)該硬編碼到固件中;案例5提供了一種保護固件映像分布和更新的方法。
一個私有的區(qū)塊鏈服務(wù)也可以支持引導(dǎo)和注冊物聯(lián)網(wǎng)設(shè)備到網(wǎng)絡(luò)上。事務(wù)節(jié)點將在提供可信節(jié)點列表之前對物聯(lián)網(wǎng)設(shè)備進行身份驗證,物聯(lián)網(wǎng)設(shè)備的注冊。
可以包括以下內(nèi)容的憑證:
在安裝過程中安裝的物聯(lián)網(wǎng)設(shè)備上安裝的安全憑據(jù)必須被生成,并提供一個安全的過程,這可能是區(qū)塊鏈實現(xiàn)的一部分。
物聯(lián)網(wǎng)設(shè)備的所有者或安裝技術(shù)人員提供的憑據(jù)將初始化設(shè)備注冊到安全服務(wù)器,以獲得物聯(lián)網(wǎng)的特定憑證。
2. 信任的溝通
在某些情況下,例如公共部署,物聯(lián)網(wǎng)設(shè)備需要使用安全通信通道來交換構(gòu)建事務(wù)所需的數(shù)據(jù),以便存儲到分類帳簿中。這個分類賬也可以用來存儲公共加密密鑰。
如果交換必須保密,物聯(lián)網(wǎng)設(shè)備(發(fā)送方)將加密消息發(fā)送到對等物聯(lián)網(wǎng)設(shè)備(接收方)使用接收器物聯(lián)網(wǎng)設(shè)備的公鑰,該設(shè)備存儲在區(qū)塊鏈服務(wù)中。
為了方便這個安全的事務(wù),物聯(lián)網(wǎng)發(fā)送者請求它的事務(wù)節(jié)點從物聯(lián)網(wǎng)接收器的公鑰到區(qū)塊鏈分類。物聯(lián)網(wǎng)發(fā)送者使用物聯(lián)網(wǎng)接收器的公鑰對消息進行加密。
只有接收者可以用他們的私鑰解密消息。關(guān)鍵的協(xié)議算法,如基于橢圓曲線密碼學(xué)算法(ECDH),應(yīng)該用來創(chuàng)建密鑰來保護諸如內(nèi)容加密密鑰(CEK)和/或通信加密密鑰(TEKs)之類的事務(wù)。
在這個用例中,區(qū)塊鏈服務(wù)充當(dāng)分布式公共密鑰基礎(chǔ)結(jié)構(gòu)[29]。公共密鑰存儲在事務(wù)中:當(dāng)一個新的物聯(lián)網(wǎng)設(shè)備注冊到一個私有或公共的區(qū)塊鏈服務(wù)(見上一節(jié))時,將創(chuàng)建一個新的事務(wù)。該事務(wù)由物聯(lián)網(wǎng)屬性(包括其公鑰)組成。如果物聯(lián)網(wǎng)設(shè)備必須更新其證書,則重新注冊。被撤銷的證書也可以作為事務(wù)添加到區(qū)塊鏈服務(wù)中。在分類帳中記錄的有擔(dān)保的交易記錄提供了在他們的一生中物聯(lián)網(wǎng)設(shè)備鍵的一致性。
在區(qū)塊鏈中實現(xiàn)了使用多種類型的加密密鑰。用于確保區(qū)塊鏈交易的密鑰通常被稱為錢包參數(shù)。在這個用例中討論的參數(shù)代表了身份密鑰,可以用來生成加密密鑰(TEKs)或內(nèi)容加密密鑰(CEKs)進行通信,來保護特聯(lián)網(wǎng)設(shè)備點對點之間的通信。
物聯(lián)網(wǎng)身份密鑰(參數(shù)): 非對稱密鑰對用于生成密鑰材料,用于加密物聯(lián)網(wǎng)設(shè)備之間的消息內(nèi)容和流量。
錢包鑰匙(參數(shù)): 用于存儲在分類帳簿中的交易;可能包括物聯(lián)網(wǎng)身份密鑰。
3. 半自治機器對機器的操作
物聯(lián)網(wǎng)技術(shù)的一個關(guān)鍵驅(qū)動力是機器能夠以半自治的方式協(xié)同工作以實現(xiàn)特定目標的能力。區(qū)塊鏈可以使用智能合約功能作為這些自治事務(wù)的安全助推器。
智能合約可以寫下來,包括合同的規(guī)則、處罰和條件。物聯(lián)網(wǎng)相關(guān)設(shè)備可以配置一個API來與智能合約進行交互,從而與對等設(shè)備或服務(wù)簽訂協(xié)議。每個事務(wù)必須在執(zhí)行之前滿足協(xié)定的條件,并且所有的事務(wù)都被寫入到區(qū)塊鏈。
智能合約可以強制執(zhí)行訪問限制,比如誰(物聯(lián)網(wǎng)設(shè)備)可以進入事務(wù)。每個事務(wù)都與物聯(lián)網(wǎng)節(jié)點的錢包參數(shù)簽名,錢包應(yīng)該存儲在硬件安全容器中。在區(qū)塊鏈上的事務(wù)記錄確保了事務(wù)不能被拒絕(例如,當(dāng)一個服務(wù)提供者的物聯(lián)網(wǎng)設(shè)備與一個消費者的物聯(lián)網(wǎng)設(shè)備進行交易時)。
4. 物聯(lián)網(wǎng)配置和更新控制
隨著更多的物聯(lián)網(wǎng)設(shè)備的誕生,區(qū)塊鏈技術(shù)在可信的安全配置領(lǐng)域是有希望連接到云服務(wù)。以下是三種安全措施:
1. 分類賬簿可以托管物聯(lián)網(wǎng)屬性,例如最后一個版本的驗證的固件和配置細節(jié)。在引導(dǎo)過程中,特聯(lián)網(wǎng)設(shè)備要求事務(wù)節(jié)點從分類帳簿中獲取配置。通過對公共分類賬簿的內(nèi)容進行分析,可以在分類賬簿中對配置進行加密,以避免物聯(lián)網(wǎng)的網(wǎng)絡(luò)拓撲的發(fā)現(xiàn)。
2. 分類賬簿可以為每個特聯(lián)網(wǎng)設(shè)備托管最新配置文件的哈希值。物聯(lián)網(wǎng)設(shè)備從云服務(wù)下載最新的可信配置文件(或設(shè)置時間),然后利用事務(wù)節(jié)點API來檢索和匹配存儲在區(qū)塊鏈上的哈希值。這允許管理員定期刷錯誤的配置,并在其網(wǎng)絡(luò)中重新啟動物聯(lián)網(wǎng)設(shè)備,并加載新的配置。
3. 上述第2條所討論的過程可以應(yīng)用于物聯(lián)網(wǎng)設(shè)備的固件映像,盡管這可能,在物聯(lián)網(wǎng)設(shè)備上需要額外的帶寬容量。
5. 安全固件映像的發(fā)布和更新
類似于支持從云服務(wù)提供商下載可信配置,區(qū)塊鏈技術(shù)也可以支持物聯(lián)網(wǎng)設(shè)備的可信存檔(固件)的過程。物聯(lián)網(wǎng)設(shè)備開發(fā)人員也可以實現(xiàn)他們自己的區(qū)塊鏈或使用公共區(qū)塊鏈。開發(fā)人員可以將最新已知的可信映像的哈希用于其設(shè)備家族,并將這些哈希加載到區(qū)塊鏈中。該方法通過三種方式支持增強物聯(lián)網(wǎng)設(shè)備的安全性:
1. 物聯(lián)網(wǎng)設(shè)備可以通過API進行配置,在重復(fù)的基礎(chǔ)上下載新的固件映像。因為大多數(shù)物聯(lián)網(wǎng)設(shè)備不需要內(nèi)存中保存或存儲數(shù)據(jù),所以它們可以在需要時被覆蓋。例如,可以通過在供應(yīng)商的區(qū)塊鏈上驗證映像哈希來啟用每日或每周的映像更新過程。
2. 物聯(lián)網(wǎng)設(shè)備可以使用基于塊的映像更新過程來驗證供應(yīng)商提供的所有更新。
3. 物聯(lián)網(wǎng)設(shè)備可以使用上面的方法1或2來驗證所有更新,此外還需要設(shè)備所有者批準固件的更新(使用安全的方法)
物聯(lián)網(wǎng)企業(yè)應(yīng)加強在總賬中固件的數(shù)字答名,提高當(dāng)前標準軟件簽名的方法, 而不是在應(yīng)用更新之前將其發(fā)布在其網(wǎng)站上,物聯(lián)網(wǎng)設(shè)備從分類賬簿中獲得新固件的數(shù)字簽名,然后使用維護公鑰驗證它。此維護公鑰可以在fabric和硬件級別進行融合(無更改/更新功能)
警告: 必須確保制造商維護私鑰,以避免損害所有固件。獲取私鑰的攻擊者可以使用看似“有效”的數(shù)字簽名來提供可用的惡意固件。
基于固件信譽的更新(事物鏈):
分類帳簿的事務(wù)歷史交易能力可以聚合新固件的符號,避免被安裝惡意軟件和反門固件,為社區(qū)專家提高固件安全固件的信任力.
當(dāng)固件信譽在分類帳簿中達到特定的選票級別的分類賬簿,物聯(lián)網(wǎng)設(shè)備的所有者/管理員還應(yīng)該配置物聯(lián)網(wǎng)的自動更新。這種在區(qū)塊鏈服務(wù)中對物聯(lián)網(wǎng)設(shè)備的“接受”可能基于設(shè)備在分類帳簿中的固件信譽,這將產(chǎn)生以下好處:
1. 避免使用與區(qū)塊鏈服務(wù)相連接脆弱的設(shè)備。
2. 在物聯(lián)網(wǎng)設(shè)備上執(zhí)行安全更新流程。
3. 在區(qū)塊鏈服務(wù)中定義最低要求的安全要求。
物聯(lián)網(wǎng)的區(qū)塊鏈安全服務(wù)總結(jié)
結(jié)論
實施物聯(lián)網(wǎng)解決方案的組織,繼續(xù)面臨著識別安全技術(shù)和方法的挑戰(zhàn),確定能夠減輕對物聯(lián)網(wǎng)(IoTs)的獨特威脅。區(qū)塊鏈技術(shù)有望在應(yīng)對這些挑戰(zhàn)中發(fā)揮重要作用。利基(Niche)安全廠商將開始提供這些服務(wù),可以立即利用區(qū)塊鏈實現(xiàn)提供的完整性和真實性服務(wù)。
在本文中,我們強調(diào)了在使用區(qū)塊鏈技術(shù)保護連接設(shè)備時需要考慮的特性。然而,由于物聯(lián)網(wǎng)的硬件限制,我們得出結(jié)論:在幾十萬或更多的物聯(lián)網(wǎng)設(shè)備的背景下,這些設(shè)備中有許多不能作為事務(wù)節(jié)點(生成事務(wù)、提供協(xié)商一致性等),因此不屬于安全區(qū)塊鏈。許多設(shè)備將受益于安全性。許多設(shè)備將受益于區(qū)塊鏈服務(wù)提供的安全性和其他功能,這些服務(wù)通過網(wǎng)絡(luò)的上游事務(wù)節(jié)點或?qū)iT的中間商提供。這些上游功能可用于保護物聯(lián)網(wǎng)設(shè)備(配置和更新控制、安全固件更新)和通信(物聯(lián)網(wǎng)發(fā)現(xiàn)、可信通信、消息認證/簽名)。
我們希望這個文件能夠鼓勵商業(yè)領(lǐng)袖和開發(fā)人員擁抱區(qū)塊鏈這個機會,來擴展這項技術(shù)的能力以確保物聯(lián)網(wǎng)的安全。
術(shù)語及參考
【1】區(qū)塊鏈技術(shù)是利用塊鏈式數(shù)據(jù)結(jié)構(gòu)來驗證與存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計算方式
【2】區(qū)塊鏈是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術(shù)的新型應(yīng)用模式。所謂共識機制是區(qū)塊鏈系統(tǒng)中實現(xiàn)不同節(jié)點之間建立信任、獲取權(quán)益的數(shù)學(xué)算法
【3】每個區(qū)塊都包含一個時間戳和一個與前一區(qū)塊的鏈接, 在一個區(qū)塊中的數(shù)據(jù)將不可逆。
【4】區(qū)塊鏈的特性自治性,采用基于協(xié)商一致的規(guī)范和協(xié)議(比如一套公開透明的算法)使得整個系統(tǒng)中的所有節(jié)點能夠在去信任的環(huán)境自由安全的交換數(shù)據(jù),使得對“人”的信任改成了對機器的信任,任何人為的干預(yù)不起作用。
【5】權(quán)益證明(POS)也稱工作證明,就是你的收益取決于你對區(qū)塊鏈作出的貢獻,通常是指挖礦貢獻的有效工作。換言之,你的算力越高,分給你的礦就會越多,這就是根據(jù)你的工作證明來執(zhí)行數(shù)字貨幣的分配。因此,算力越高、挖礦時間越長,你所獲得的數(shù)字貨幣就越多。不少主流數(shù)字貨幣都采用POW模式,比如比特幣、萊特幣等等。
【6】POS也稱股權(quán)證明,類似于財產(chǎn)儲存在銀行,這種模式會根據(jù)你持有數(shù)字貨幣的量和時間,分配給你相應(yīng)的利息。其中,POS中還分好幾種,例如傳統(tǒng)POS和POS2.0。傳統(tǒng)POS模式下,需要明白幣齡這一概念,每個幣每天產(chǎn)生1幣齡,假設(shè)你持有100個幣,總共持有了30天,那么,此時你的幣齡就為3000。
【7】分布式數(shù)據(jù)庫:通常使用較小的計算機系統(tǒng),每臺計算機可單獨放在一個地方運行,每臺計算機中都可能有數(shù)據(jù)庫的一份完整拷貝副本或者部分拷貝副本。
【8】智能合約(英語:Smart contract )是一種旨在以信息化方式傳播、驗證或執(zhí)行合同的計算機協(xié)議。智能合約概念于1994年由Nick Szabo首次提出,智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉(zhuǎn)。
【9】 物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是“信息化”時代的重要發(fā)展階段。其英文名稱是:“Internet of things(IoT)”。顧名思義,物聯(lián)網(wǎng)就是物物相連的互聯(lián)網(wǎng)