摘 要:由于傳統(tǒng)區(qū)塊鏈技術(shù)處理交易能力弱、吞吐量低,不僅難以處理工業(yè)環(huán)境下的海量數(shù)據(jù),而且其訪問控制策略權(quán)限管理效率低,安全性不足。針對上述問題,提出了基于主側(cè)鏈合作的區(qū)塊鏈訪問控制模型策略,該策略首先通過 plasma 方案對區(qū)塊鏈進行側(cè)鏈擴容,其次針對工業(yè)物聯(lián)網(wǎng)的節(jié)點特點和主側(cè)鏈區(qū)塊鏈的運行環(huán)境,設(shè)計了適用于主側(cè)鏈環(huán)境的訪問控制模型,編寫成智能合約后放至側(cè)鏈上;以側(cè)鏈負責合約執(zhí)行,主鏈負責數(shù)據(jù)批量驗證的方式實現(xiàn)設(shè)備的訪問控制。最后,通過實驗結(jié)果表明,該策略既對基于工業(yè)物聯(lián)網(wǎng)的區(qū)塊鏈傳輸速度和穩(wěn)定性進行了有效的優(yōu)化,又提高了控制策略的管理效率和安全性,滿足了工業(yè)物聯(lián)網(wǎng)中的使用需求。
劉晶; 朱炳旭; 梁佳杭; 任女爾; 季海鵬, 計算機工程 發(fā)表時間:2021-09-16
關(guān)鍵詞:工業(yè)物聯(lián)網(wǎng);區(qū)塊鏈;訪問控制;智能合約;擴容技術(shù)
0 概述
在美國先進制造戰(zhàn)略、德國工業(yè) 4.0 戰(zhàn)略和中國制造 2025 戰(zhàn)略[1]的大背景下,新一輪科技革命和產(chǎn)業(yè)變革蓬勃興起。作為新一代信息技術(shù)與制造業(yè)深度融合的產(chǎn)物,工業(yè)物聯(lián)網(wǎng)日益成為新工業(yè)革命的關(guān)鍵支撐。在工業(yè)物聯(lián)網(wǎng)急速發(fā)展的過程中,物聯(lián)網(wǎng)也承受著來自工業(yè)的海量數(shù)據(jù)[2]。然而對于高度依賴中心化服務(wù)器的傳統(tǒng)工業(yè)物聯(lián)網(wǎng)系統(tǒng)來說,數(shù)據(jù)的隱私保護,數(shù)據(jù)的可靠傳輸?shù)戎旅秉c正嚴重影響著工業(yè)物聯(lián)網(wǎng)的發(fā)展[3]。訪問控制是一種可以保障數(shù)據(jù)僅能被認可的用戶訪問的一種數(shù)據(jù)保護技術(shù),但當前的訪問控制多采用集中式服務(wù)器來完成授權(quán)決策[4],這種設(shè)計很容易發(fā)生單點故障問題,可靠性較低。同時,傳統(tǒng)的訪問控制在數(shù)據(jù)傳輸過程中容易被第三方截取篡改。因此,如何解決工業(yè)物聯(lián)網(wǎng)中訪問控制的數(shù)據(jù)可靠傳輸和單點故障問題成為了工業(yè)物聯(lián)網(wǎng)發(fā)展的熱點問題。
區(qū)塊鏈是一種新興的去中心化分布式存儲技術(shù),能夠在一個無中心的網(wǎng)絡(luò)環(huán)境中建立信任關(guān)系。區(qū)塊鏈從技術(shù)層面解決了中心化授權(quán)實體帶來的安全問題,通過將區(qū)塊鏈與訪問控制結(jié)合,能夠有效避免單點故障問題,提高訪問控制的可靠性和安全性[5]。目前,已有學者將區(qū)塊鏈技術(shù)應(yīng)用到物聯(lián)網(wǎng)中與訪問控制相結(jié)合來解決單點故障和數(shù)據(jù)的可靠傳輸問題,并取得了不錯的效果。文獻[6]介紹了物聯(lián)網(wǎng)環(huán)境下的單點故障和數(shù)據(jù)篡改問題,設(shè)計并實現(xiàn)出一種基于智能合約的物聯(lián)網(wǎng)訪問控制系統(tǒng);文獻 [7]針對目前傳統(tǒng)訪問控制模型比較復(fù)雜的問題提出了一種新的結(jié)合區(qū)塊鏈的訪問控制模型,具備伸縮性細粒度等特性,可在物聯(lián)網(wǎng)系統(tǒng)中進行有效部署。
上述文獻都在一定程度上解決了物聯(lián)網(wǎng)環(huán)境中訪問控制的單點故障問題,但在實際應(yīng)用中,尤其是在工業(yè)物聯(lián)網(wǎng)中存在著海量的工業(yè)數(shù)據(jù)傳輸,要求工業(yè)物聯(lián)網(wǎng)中的區(qū)塊鏈系統(tǒng)具有較高的吞吐率和較短的交易確認時間。針對上述問題,文獻[8]提出了一種在許可環(huán)境下的可信交易框架,增加單位時間的交易處理能力來提升數(shù)據(jù)傳輸速度;文獻[9]設(shè)計了一種分層擴展式區(qū)塊鏈來滿足工業(yè)環(huán)境中的高效、安全。上述方案都在一定程度上解決了區(qū)塊鏈的數(shù)據(jù)傳輸吞吐率的問題, 然而工業(yè)物聯(lián)網(wǎng)環(huán)境下的訪問控制每次進行訪問請求都需要區(qū)塊鏈進行驗證,盡管對區(qū)塊鏈結(jié)構(gòu)進行了優(yōu)化,但在海量節(jié)點的環(huán)境下,再高效的驗證機制也會因節(jié)點的龐大數(shù)量而降低數(shù)據(jù)的傳輸速度。
側(cè)鏈技術(shù)是一種區(qū)塊鏈二層擴容技術(shù),該技術(shù)通過將一些頻繁、小額的交易轉(zhuǎn)移到側(cè)鏈上進行來降低主網(wǎng)的交易壓力,有效提高交易效率[10]。在工業(yè)物聯(lián)網(wǎng)環(huán)境下,絕大部分節(jié)點的資源訪問請求內(nèi)容是相同的,但訪問頻率十分之高;對于這類請求,在驗證了節(jié)點安全性之后僅需要批量進行區(qū)塊驗證即可達到目的。因此,可以在以太坊上部署對應(yīng)的側(cè)鏈技術(shù),將這些高頻節(jié)點的訪問請求放到側(cè)鏈上進行處理;主網(wǎng)僅需要對區(qū)塊進行批量驗證即可在解決單點故障問題的同時,保證數(shù)據(jù)的傳輸速度。
綜上所述,針對工業(yè)物聯(lián)網(wǎng)環(huán)境下訪問控制需要同時解決單點故障和高效傳輸?shù)膯栴},本文提出了一種基于主側(cè)鏈合作的工業(yè)物聯(lián)網(wǎng)訪問控制模型策略。與現(xiàn)有方法相比,該方法引入側(cè)鏈來對區(qū)塊鏈進行擴容,進一步提高區(qū)塊鏈的數(shù)據(jù)承載能力;并設(shè)計了適用于主側(cè)鏈區(qū)塊鏈結(jié)構(gòu)的訪問控制模型,滿足數(shù)據(jù)高速傳輸?shù)男枨蟆?/p>
本文創(chuàng)新點如下:
(1)為應(yīng)對區(qū)塊鏈性能無法滿足工業(yè)物聯(lián)網(wǎng)海量終端節(jié)點的問題,提出主側(cè)鏈合作的方式來對區(qū)塊鏈進行擴容,使其滿足工業(yè)物聯(lián)網(wǎng)的應(yīng)用需求。
(2)針對傳統(tǒng)訪問控制模型不適配主側(cè)鏈高速傳輸環(huán)境和工業(yè)物聯(lián)網(wǎng)設(shè)備節(jié)點特點的問題,提出一種適應(yīng)主側(cè)鏈區(qū)塊鏈的訪問控制模型,實現(xiàn)主側(cè)鏈環(huán)境下的高速傳輸以及訪控策略管理效率和安全性的提升。
1 相關(guān)理論基礎(chǔ)
1.1 區(qū)塊鏈技術(shù)
區(qū)塊鏈技術(shù)是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術(shù)的新型應(yīng)用模式。它起源于《Bitcoin: A Peer-to Peer Electronic Cash System》[11],其中第一次出現(xiàn)了區(qū)塊鏈的概念。其中去中心化是區(qū)塊鏈的一個顯著特點,區(qū)塊鏈使用分布式核算儲存自成一體,不依賴任何中心機構(gòu),也沒有中心管制,任何節(jié)點的權(quán)力和義務(wù)都是均等的,系統(tǒng)中的數(shù)據(jù)由整個系統(tǒng)來維護。另外,在區(qū)塊鏈中,交易的私有信息被加密,其它數(shù)據(jù)對所有人開發(fā),所有人都可以通過公開接口查詢區(qū)塊鏈數(shù)據(jù)和開發(fā)的相關(guān)應(yīng)用,這個系統(tǒng)信息高度透明。并且區(qū)塊鏈通過哈希算法讓所有節(jié)點都產(chǎn)生信任,無法人為干預(yù),各區(qū)塊節(jié)點的身份信息不需要公開或驗證讓對方產(chǎn)生信任,只需要遵循固定的算法,就可以達到數(shù)據(jù)交互的信任。
1.2 以太坊擴容
區(qū)塊鏈作為一種分布式網(wǎng)絡(luò)存儲技術(shù),同樣存在性能瓶頸,其中最為突出的就是區(qū)塊鏈可擴展性非常差。一直以來,以太坊公有鏈的核心限制是每一筆交易都要由網(wǎng)絡(luò)中的每一個節(jié)點進行處理。這也就意味著以太坊整個網(wǎng)絡(luò)的吞吐量(TPS)不能高于以太坊單個節(jié)點的吞吐量。理論上以太坊可以通過提高節(jié)點的區(qū)塊工作量來實現(xiàn)擴容[12],但這是以去中心化為代價的,因為節(jié)點做的工作多了,意味著算力小的計算機可能會退出網(wǎng)絡(luò)。這一問題一直以來都是限制區(qū)塊鏈發(fā)展的一大隱患,但由于起初用戶量較小,其弊端并沒有顯現(xiàn)出來。然而隨著區(qū)塊鏈技術(shù)的不斷火熱,越來越多的人開始嘗試這項新技術(shù),海量的用戶讓以太坊變得非常擁堵。同時可以預(yù)見到,未來會有越來越多的項目在以太坊的基礎(chǔ)上構(gòu)建。因此,解決以太坊擴容這一難題勢在必行。
目前常見的擴容技術(shù)可以分為 Layer1 層擴容和 Layer2 層擴容兩種。Layer1 層的擴容方案采用分片技術(shù)[13],即讓區(qū)塊鏈不同的節(jié)點子集處理區(qū)塊鏈的不同部分,通過分割數(shù)據(jù)以減少區(qū)塊鏈節(jié)點必須存儲和處理的數(shù)量。由此來達到擴容效果。但由于分片涉及到區(qū)塊鏈底層協(xié)議的更改,所以分片技術(shù)提出后并沒用出現(xiàn)實際的應(yīng)用。并且分片的數(shù)量受制于整個網(wǎng)絡(luò)的節(jié)點數(shù)量和處理能力,因此 Layer1 層的擴容方案逐漸被廢棄了。Layer2 層的擴容方案則是線下擴容[14],即區(qū)塊鏈主鏈不作改變,而是將所有計算委托給一組強大的節(jié)點來完成,這組節(jié)點并不直接鏈在主鏈上,因此其計算能力并不會受區(qū)塊鏈網(wǎng)絡(luò)條件的制約。在交易速度上,以太坊目前的交易速度約是每秒 15 筆,而根據(jù) Layer2 層的解決方案,以太坊的交易速度可達 2000-4000 筆每秒。因此 Layer2 層的解決方案成為了目前主要的擴容方向。Layer2 層的擴容方案比較著名的方案有:狀態(tài)通道、Plasma、Rollup 等。
1.3 Plasma 方案和 Loom 側(cè)鏈
Plasma 方案是由 Vitalik Buterin(以太坊創(chuàng)始人)和 Joseph Poon(閃電網(wǎng)絡(luò)創(chuàng)始人)在 2017 年共同提出。它是一個在以太坊上構(gòu)建可擴展應(yīng)用的框架,允許創(chuàng)建附加在以太坊主鏈上的子鏈;同時,這些子鏈也可以產(chǎn)生他們自己的子鏈。其結(jié)果就是這些子鏈只需與以太坊主鏈進行極少量的交互就能運行擁有數(shù)千名用戶的整個應(yīng)用程序[15];由于子鏈上的操作不需要在整個以太坊區(qū)塊鏈存留副本,因此子鏈的運行速度更快,交易費用更低。Loom 側(cè)鏈則是一條實現(xiàn)了 Plasma Cash 框架模型的高性能 DPOS 側(cè)鏈,它由以太坊底層網(wǎng)絡(luò)安全背書,因此能夠享受 DPOS 算法帶來的高性能共識。同時,Loom 團隊設(shè)計了能夠快速搭建屬于用戶自己區(qū)塊鏈的 Loom SDK(工具集),使用戶可以根據(jù)自身需求設(shè)計自己的區(qū)塊鏈。
1.4 工業(yè)物聯(lián)網(wǎng)的數(shù)據(jù)訪問與管理
物聯(lián)網(wǎng)是一個以數(shù)據(jù)為核心的網(wǎng)絡(luò),尤其是在工業(yè)物聯(lián)網(wǎng)中,各終端設(shè)備之間的互聯(lián)互通都是以數(shù)據(jù)作為中介。因此,數(shù)據(jù)的訪問和管理是整個工業(yè)物聯(lián)網(wǎng)互聯(lián)的關(guān)鍵所在。由于工業(yè)物聯(lián)網(wǎng)中的終端設(shè)備存在類型復(fù)雜,存儲能力、計算能力大小不一等問題,目前數(shù)據(jù)的訪問和管理通常由一個集中式的可信第三方實體實現(xiàn)??尚艑嶓w通過集中式服務(wù)器進行管理,依據(jù)訪控策略和其他屬性信息進行決策[16]。同時,為解決終端節(jié)點傳輸?shù)暮A繑?shù)據(jù)所帶來的訪問和管理壓力,工業(yè)物聯(lián)網(wǎng)中主要通過建立多個數(shù)據(jù)中心、構(gòu)建分布式架構(gòu)等方式進行應(yīng)對。
2 基于主側(cè)鏈合作的區(qū)塊鏈訪問控制
2.1 策略架構(gòu)
在物聯(lián)網(wǎng)領(lǐng)域,訪問控制需要做到對請求的快速響應(yīng)和回復(fù)。為滿足上述需求,在物聯(lián)網(wǎng)領(lǐng)域使用區(qū)塊鏈的訪問控制策略中,常用的方法是將架構(gòu)分為區(qū)塊鏈端和物聯(lián)網(wǎng)設(shè)備端兩個部分[17]。但在工業(yè)物聯(lián)網(wǎng)領(lǐng)域,不僅節(jié)點數(shù)目龐大,而且很多節(jié)點并不需要同時完成資源的請求和上傳兩項工作。同時,許多的工業(yè)數(shù)據(jù)對廠商來說極為重要,因此不僅要確認訪問控制模型的安全性,還要對連入物聯(lián)網(wǎng)的各設(shè)備進行安全性驗證。
針對上述工業(yè)物聯(lián)網(wǎng)領(lǐng)域的訪問控制架構(gòu)問題,本文設(shè)計了一種針對工業(yè)物聯(lián)網(wǎng)的策略架構(gòu),如圖 1 所示。該架構(gòu)根據(jù)對資源的使用情況分成三個部分:客戶端,區(qū)塊鏈端,設(shè)備端??蛻舳撕驮O(shè)備端分別是資源的上傳者和請求者,其中客戶端負責資源上傳、策略制定以及資源使用授權(quán),同時客戶端配臵了與區(qū)塊鏈相連接的 SDK,實現(xiàn)客戶端與區(qū)塊鏈網(wǎng)絡(luò)的連接;設(shè)備端則是對一些資源進行請求使用,這部分的設(shè)備通常為一些邊緣終端,運算能力較弱,因此通過網(wǎng)關(guān)與區(qū)塊鏈網(wǎng)絡(luò)相連接,發(fā)送對資源的請求。通過統(tǒng)一各終端的請求流向并進行分離,避免了請求沖突的出現(xiàn),實現(xiàn)了請求的高速傳輸。
區(qū)塊鏈網(wǎng)絡(luò)是主要的策略邏輯部分,為保證區(qū)塊鏈網(wǎng)絡(luò)的安全,設(shè)計了對物聯(lián)網(wǎng)設(shè)備的身份驗證,即對于連入?yún)^(qū)塊鏈網(wǎng)絡(luò)的終端都需要預(yù)先進行登錄驗證,之后才會被允許連入。對以太坊的數(shù)據(jù)確認過程進行分析可以發(fā)現(xiàn),在以太坊上,每進行一次操作就需要進行一次全節(jié)點確認,這是以太坊吞吐率低的主要原因。但在工業(yè)物聯(lián)網(wǎng)的環(huán)境下,由于終端操作存在批量重復(fù)請求的原因,其并不需要每一次操作都進行全節(jié)點的確認,僅需要對關(guān)鍵操作進行確認即可[18]。因此,本文區(qū)塊鏈將智能合約模塊放到側(cè)鏈上,由側(cè)鏈進行訪問控制策略的執(zhí)行。該方法大幅減少了以太坊上的確認次數(shù),提高了區(qū)塊鏈的使用效率。側(cè)鏈的數(shù)據(jù)通過礦工 Operator 打包發(fā)給與以太坊相連的 Plasma 合約,分批次進行發(fā)送。以太坊作為主鏈,僅需要按批次的通過 Plasma 合約獲取交易的哈希值,并將其同步到以太坊進行鎖定即可。這樣即提高了訪問控制的速度,又實現(xiàn)了去中心化的訪問控制。
2.2 訪問控制模型
在工業(yè)物聯(lián)網(wǎng)的訪問控制中,既要做到對權(quán)限有簡單明確的劃分,又要防止發(fā)生過度授權(quán),出現(xiàn)隱私數(shù)據(jù)泄露等風險。所以需要根據(jù)使用場景特點進行有針對性的訪問控制權(quán)限劃分。對于工業(yè)物聯(lián)網(wǎng)場景來說,最重要是要防止數(shù)據(jù)的泄露,盡管各常見的模型設(shè)計了一些方法比如角色集、權(quán)限集等方法來防范非法訪問,但這種方法對保護措施的設(shè)計都有很高的要求[19]。并且如果防范方法被破解,不法者就能迅速獲取各種數(shù)據(jù)資源,讓工廠遭受無法挽回的損失。為更有效的防范數(shù)據(jù)泄露,本文設(shè)計了提出了一種基于主側(cè)鏈合作的訪問控制模型。通過執(zhí)行點將資源與策略的管理相分離,每次的訪問都僅能收到請求資源的返回,由此來從根源上切斷數(shù)據(jù)的泄露,達到數(shù)據(jù)安全防范的效果。模型的架構(gòu)如圖 2 所示。
模型在與主客體直接相連的部分設(shè)計了主體信息點和客體信息點,主體執(zhí)行點是與主體交互的訪問控制執(zhí)行點,負責傳遞主體的訪問請求和主體信息,以及返回處理請求后的執(zhí)行結(jié)果。客體信息點是與客體資源交互的執(zhí)行點,負責收集客體以及資源的屬性,當出現(xiàn)訪問請求時上傳所需客體資源信息,供訪問控制策略參考。這種設(shè)計阻隔了外部實體對模型內(nèi)部的直接訪問,避免了非法入侵[20]。同時,數(shù)據(jù)的輸出通過執(zhí)行點直接返回給各自連接的實體,有效避免了數(shù)據(jù)的泄露。信息處理點的設(shè)計則是將訪問控制策略的執(zhí)行與存儲分離,出現(xiàn)請求時處理點直接調(diào)取設(shè)計好的訪問控制策略對請求進行判斷,處理點只有調(diào)取訪控策略的權(quán)限,并不能修改策略。并且每次查看策略的權(quán)限在完成本次訪問請求后將會收回,有效的避免了訪問控制策略的泄露,極大的增強了模型的安全性。
2.3 合約設(shè)計
為實現(xiàn)上述訪問控制策略,這里通過三個部署在側(cè)鏈上的智能合約來完成訪問控制權(quán)限的決策授權(quán)和決策的信息管理,三個合約分別是前臵合約,訪問控制合約和監(jiān)管合約。合約的交互方式如下圖 3 所示。
在側(cè)鏈上,區(qū)塊鏈的頭部部署前臵合約,它維護一張信息表,用來記錄監(jiān)管合約和訪問控制合約的相關(guān)信息。之后在下一個區(qū)塊上部署監(jiān)管合約,合約里包含了時間容忍度函數(shù),用來對訪問者的訪問頻率進行監(jiān)控,對規(guī)定范圍的訪問進行批量允許訪問。同時,監(jiān)管合約維護一張違規(guī)訪問表,用來記錄違規(guī)的訪問者,并進行一定的懲戒。之后的區(qū)塊里用來放臵訪問控制合約,每個區(qū)塊鏈向不同的物聯(lián)網(wǎng)設(shè)備,訪問控制合約維護訪問策略表和訪問記錄表,當出現(xiàn)訪問請求時,訪問控制合約會根據(jù)制定的訪問策略以及監(jiān)管合約的檢測結(jié)果,對訪問請求進行回應(yīng)。并且當有新的訪問控制策略加入時,只需繼續(xù)在鏈上添加新的訪問控制合約即可。
2.4 數(shù)據(jù)同步驗證
為了防止數(shù)據(jù)被篡改,區(qū)塊鏈需要對數(shù)據(jù)進行同步驗證。區(qū)塊鏈中使用的是默克爾樹算法,該算法下各數(shù)據(jù)通過哈希算法求出哈希值,區(qū)塊鏈中僅保留最終產(chǎn)生的根哈希即可對數(shù)據(jù)進行同步驗證。但這種算法同樣存在弊端,該算法在驗證某個數(shù)據(jù)不存在于區(qū)塊中時會十分困難。因此 Plasma Cash 框架中使用了稀疏默克爾樹算法[21],該算法下通過將鏈上數(shù)據(jù)按照元素序號順序進行排列,由此形成一個有序的葉子節(jié)點序列。當某處沒有交易時,葉子節(jié)點直接存儲一個空值。當需要驗證數(shù)據(jù)不存在性時,只需根據(jù)數(shù)據(jù)位臵查找,找到空位臵即可完成不存在性證明。訪問控制信息存儲到側(cè)鏈上以后,使用稀疏默克爾樹算法進行哈希鎖定,并將默克爾根同步到以太坊主鏈。一旦信息被篡改,默克爾根也會隨之改變[22]。主鏈負責數(shù)據(jù)的驗證,側(cè)鏈負責數(shù)據(jù)的存儲和請求的處理。既保證了數(shù)據(jù)的真實性,又大幅提高了區(qū)塊鏈的吞吐率。稀疏默克爾樹算法流程如圖 4 所示。
3 實驗分析
通過仿真實驗,對文中所提出的訪問控制模型以及側(cè)鏈的性能進行測試,并對其安全性和存儲占用進行分析。側(cè)鏈通過 Loom SDK 部署,采用 DPOS 共識機制,使用 10 個節(jié)點來處理交易;主鏈通過 Geth 部署,采用 POA 共識機制,部署 5 個節(jié)點進行驗證。主側(cè)鏈實驗環(huán)境如下:處理器 Intel(R) Core(TM)i7-9750H,主頻 2.60GHz,內(nèi)存大小為 16GB,操作系統(tǒng)為 ubuntu18.04LTS,Node.js 版本為 v8.10.0。
3.1 模型性能分析
訪問控制策略的生成時間是衡量一個訪問控制模型優(yōu)劣的一個重要指標。為驗證本文模型在策略生成方面的效果,實驗參考設(shè)計了一個傳統(tǒng)的區(qū)塊鏈物聯(lián)網(wǎng)訪問控制模型來進行對比實驗。此次實驗準備了一組試驗次數(shù)為 50 次、100 次、200 次、500 次、800 次的并發(fā)實驗,對兩個模型均進行測試并進行記錄該訪問次數(shù)下的平均時間。由于側(cè)鏈無需進行區(qū)塊確認,所以為更加直觀的看到模型控制策略的生成速度,本次模型選擇放到以太坊測試鏈上進行實驗,結(jié)果如下圖 5 所示。
從圖中顯示的數(shù)據(jù)可以看到,傳統(tǒng)的訪問控制模型的策略生成時間與本文的模型相比,策略的生成時間會隨著并發(fā)次數(shù)的增加有較高的上升。而主側(cè)鏈合作訪問控制模型能更快的生成訪問策略,并且生成策略的延遲在高頻訪問時趨于穩(wěn)定。由實驗數(shù)據(jù)可知,主側(cè)鏈合作訪問控制模型更適用于工業(yè)物聯(lián)網(wǎng)海量終端節(jié)點的應(yīng)用情況。
3.2 側(cè)鏈性能測試與分析
工業(yè)物聯(lián)網(wǎng)下的訪問控制要求區(qū)塊鏈既要保障數(shù)據(jù)的穩(wěn)定傳輸,又要降低數(shù)據(jù)傳輸?shù)难舆t以保證數(shù)據(jù)請求的時效性。為測試側(cè)鏈的穩(wěn)定性,實驗選擇將前臵合約分別部署于以太坊測試鏈和 plasma 側(cè)鏈上,模擬向合約里寫入訪問控制合約相關(guān)信息。實驗進行的寫入次數(shù)分別為 50 次、100 次、200 次、 500 次、800 次。實驗結(jié)果如下圖 6 所示。
從圖中數(shù)據(jù)可以看出,在以太坊測試鏈上由于受到區(qū)塊同步等因素的影響,數(shù)據(jù)寫入的延遲起伏較大,且延遲時間較高。對于工業(yè)物聯(lián)網(wǎng)來說,保持數(shù)據(jù)傳輸?shù)姆€(wěn)定是重中之重,因此以太坊區(qū)塊鏈并不完全適配于工業(yè)物聯(lián)網(wǎng)環(huán)境。但可以看到在 plasma 側(cè)鏈上,寫入數(shù)據(jù)的延遲一直維持在一個很低的時間且在不同的寫入次數(shù)下都能保持穩(wěn)定。說明對于工業(yè)物聯(lián)網(wǎng)環(huán)境 plasma 側(cè)鏈更加符合要求。
吞吐量是衡量一個訪問控制模型策略傳輸速度的重要指標[23]。在測試了側(cè)鏈的穩(wěn)定性之后,還需要測試側(cè)鏈的吞吐量以保證面對海量數(shù)據(jù)傳輸時不會出現(xiàn)數(shù)據(jù)擁堵和側(cè)鏈宕機的情況。為測試側(cè)鏈應(yīng)對不同數(shù)據(jù)量時的吞吐量,實驗通過 docker 容器模擬 10 個客戶端節(jié)點向側(cè)鏈發(fā)送 50 次、100 次、 200〃次、400 次、700 次、1100 次、1600 次并發(fā)請求,分別對策略寫入請求和訪問資源請求進行記錄,實驗結(jié)果如圖 7、圖 8 所示。從圖中數(shù)據(jù)可以看出,面對不同數(shù)量級的并發(fā)請求時,側(cè)鏈的吞吐量一直穩(wěn)定在 210TPS 左右,策略寫入請求和訪問資源請求基本沒有差異,具備承載工業(yè)物聯(lián)網(wǎng)訪問控制的能力。
3.3 安全性分析
(1) 透明性
本文通過區(qū)塊鏈上的智能合約實現(xiàn)分布式的訪問控制機制。客體的違規(guī)記錄、資源的授權(quán)、訪控策略的存儲均由區(qū)塊鏈負責,實現(xiàn)整個授權(quán)過程中的透明性。
(2) 不可偽造性
Loom 側(cè)鏈基于 Plasma Cash 框架模型實現(xiàn),該框架下每進行一次操作就會分配一個唯一的 ID,并將操作記錄在稀疏 Merkle 樹中[24]。通過這個 ID 可以檢索到 Merkle 樹結(jié)點的位臵,進而找到操作記錄。通過 ID 的不可偽造性防止側(cè)鏈作惡,實現(xiàn)側(cè)鏈的安全。
(3) 隱私性
在整個訪問過程中,客體和主體之間不發(fā)生直接接觸,雙方的請求和資源均由信息點收集和發(fā)送,互相無法得到對方的信息,保證了隱私性[25]。
3.4 訪問控制策略存儲占用分析
隨著工業(yè)物聯(lián)網(wǎng)中設(shè)備、請求數(shù)量的不斷增加,訪問控制合約的代碼量也隨之飛速增長,對區(qū)塊鏈的存儲造成了不小的壓力。由于不同訪問控制策略的架構(gòu)不同,因此存儲空間占用的大小和增速也不同。所以在訪問控制合約設(shè)計時,應(yīng)當充分考慮對區(qū)塊鏈造成的存儲壓力。目前常用的防控策略主要有 RBAC(基于角色的訪問控制)和 ABAC(基于屬性的訪問控制)兩種。RBAC 策略將角色和權(quán)限關(guān)聯(lián),用戶通過系統(tǒng)給予的角色來獲得相應(yīng)的權(quán)限 [26]。該策略能夠支持物聯(lián)網(wǎng)環(huán)境的跨域控制、設(shè)備異構(gòu)等特性。ABAC 策略則是將屬性作為控制權(quán)限的關(guān)鍵要素,通過屬性關(guān)聯(lián)權(quán)限,實現(xiàn)動態(tài)化的節(jié)點安全接入[27]。為分析訪控策略對區(qū)塊鏈造成的存儲壓力,實驗參考設(shè)計了兩種常用的訪控策略與本文策略進行對比實驗,分析合約大小隨設(shè)備數(shù)目增長情況。合約的相關(guān)信息如表 1 所示。
因此這里假設(shè)設(shè)備數(shù)量為 n ,每個設(shè)備都會發(fā)起訪問控制請求。那么訪控策略中設(shè)備端每需要部署 a 個合約,就會產(chǎn)生 a 個主體客體對,即該策略中就會部署 a n 個合約。由此可以得到合約大小隨設(shè)備數(shù)量增長的表達式:本文策略: f x x ( ) 65.13 * 65.05 ? ? RBAC 策略: 2 g x x ( ) 20.5 * 34.9 ? ? ABAC 策略: h x x ( ) 180.13 * 160.07
根據(jù)函數(shù)表達式繪制出如圖 9 所示的函數(shù)圖像??梢园l(fā)現(xiàn),RBAC 策略的代碼量隨著設(shè)備數(shù)目的增加迅速增長,4 個設(shè)備以上就高于本文所設(shè)計的策略。ABAC 策略代碼增長率雖然小于 RBAC 策略,但與本文策略相比增速依然很快。相較于其他常用策略,本文提出的策略在保證數(shù)據(jù)傳輸效率的同時,節(jié)省了大量的存儲空間,更適用于工業(yè)物聯(lián)網(wǎng)海量節(jié)點的使用場景。
4 結(jié)束語
本文提出了一種基于主側(cè)鏈合作的工業(yè)物聯(lián)網(wǎng)訪問控制模型策略,首先,為了解決海量數(shù)據(jù)傳輸時區(qū)塊鏈性能不足的問題,通過 Plasma 方案對區(qū)塊鏈進行側(cè)鏈擴容。通過側(cè)鏈負責智能合約執(zhí)行,主鏈負責數(shù)據(jù)批量驗證的方式實現(xiàn)主側(cè)鏈合作的數(shù)據(jù)高效傳輸。其次,在訪問控制模型的設(shè)計上,在與主客體直接相連的部分設(shè)計了執(zhí)行點,將資源與策略的管理相分離。不僅從根源上切斷數(shù)據(jù)的泄露,達到數(shù)據(jù)安全防范的效果;而且更有利于工業(yè)物聯(lián)網(wǎng)中輕量級節(jié)點設(shè)備的請求和資源傳輸,提高策略的管理效率,滿足工業(yè)物聯(lián)網(wǎng)環(huán)境下訪問控制的需求。
下一步的研究中將橫向?qū)Ρ雀鞣N側(cè)鏈協(xié)議進行線下部署實驗,從中選取更加符合工業(yè)物聯(lián)網(wǎng)環(huán)境的高性能側(cè)鏈技術(shù),最終實現(xiàn)策略的實際落地實現(xiàn)。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >