黃敏敏,袁凌云,2+,潘雪,張杰
1.云南師范大學(xué) 信息學(xué)院,昆明650500
2.云南師范大學(xué) 民族教育信息化教育部重點(diǎn)實(shí)驗(yàn)室,昆明650500
物聯(lián)網(wǎng)(Internet of things,IoT)即“萬(wàn)物相連的互聯(lián)網(wǎng)”,是指將各種傳感設(shè)備與網(wǎng)絡(luò)結(jié)合起來(lái)形成的一個(gè)大型網(wǎng)絡(luò)?,F(xiàn)該網(wǎng)絡(luò)數(shù)據(jù)的增長(zhǎng)速度已遠(yuǎn)超集中式處理模式網(wǎng)絡(luò)帶寬的負(fù)載限制,已不能滿足IoT多維、實(shí)時(shí)的服務(wù)請(qǐng)求。邊緣計(jì)算作為新型計(jì)算范式被提出[1],為IoT 異構(gòu)設(shè)備間的實(shí)時(shí)通信、協(xié)作和存儲(chǔ)提供了理想場(chǎng)景。歐洲電信標(biāo)準(zhǔn)化協(xié)會(huì)(European Telecommunication Standard Institute,ETSI)將邊緣計(jì)算定義為在移動(dòng)網(wǎng)絡(luò)、近無(wú)線接入網(wǎng)絡(luò)(radio access network,RAN)和移動(dòng)用戶的邊緣側(cè)提供互聯(lián)網(wǎng)服務(wù)環(huán)境和云計(jì)算功能[2]。即提供服務(wù)的邊緣節(jié)點(diǎn)是大面積分散、多樣化及不確定的,故邊緣節(jié)點(diǎn)是置于不可信環(huán)境中的。當(dāng)惡意節(jié)點(diǎn)接入后,可協(xié)助相應(yīng)的惡意應(yīng)用服務(wù)跳過(guò)相關(guān)的安全認(rèn)證機(jī)制,并提供攻擊其他邊緣設(shè)備以竊取用戶隱私的機(jī)會(huì),數(shù)據(jù)的安全性受到了嚴(yán)峻的挑戰(zhàn)。為了促進(jìn)邊緣計(jì)算在IoT應(yīng)用中的發(fā)展,其數(shù)據(jù)的安全訪問(wèn)問(wèn)題亟需解決。
區(qū)塊鏈作為一項(xiàng)新型信息處理技術(shù),已成為滿足IoT 網(wǎng)絡(luò)安全需求最有前途的技術(shù)之一,在安全、訪問(wèn)控制方面存在天然的優(yōu)勢(shì)[3],為學(xué)術(shù)界解決邊緣計(jì)算模式下的數(shù)據(jù)安全和隱私保護(hù)等問(wèn)題提供了新思路。2020 年,中國(guó)移動(dòng)5G 聯(lián)合創(chuàng)新中心發(fā)布的《區(qū)塊鏈+邊緣計(jì)算技術(shù)白皮書》明確了邊緣計(jì)算與區(qū)塊鏈技術(shù)的結(jié)合是相互促進(jìn)、協(xié)同發(fā)展的。但是區(qū)塊鏈1.0 即比特幣(bitcoin,BTC)和區(qū)塊鏈2.0 即以太坊(ethereum,ETH)為追求去中心化而犧牲了擴(kuò)展性[4]。且隨著交易量的日益增加,系統(tǒng)整體性能受單個(gè)節(jié)點(diǎn)性能上限的限制越發(fā)明顯,導(dǎo)致了中央服務(wù)器的成本和性能瓶頸[5]。此外,區(qū)塊鏈網(wǎng)絡(luò)的安全性是基于每個(gè)節(jié)點(diǎn)在鏈上存儲(chǔ)所有事務(wù)以進(jìn)行驗(yàn)證得以保證的,故需要高擴(kuò)展性以支持其高安全性。這些問(wèn)題阻礙其在邊緣計(jì)算安全問(wèn)題上發(fā)揮最大的作用,不符合邊緣計(jì)算大帶寬、低延時(shí)的服務(wù)宗旨。
針對(duì)區(qū)塊鏈性能瓶頸問(wèn)題,有研究提出了鏈上、鏈下擴(kuò)容方案,而擴(kuò)容方案應(yīng)用過(guò)程中的安全性與性能之間又是互相制約的關(guān)系[6],特別體現(xiàn)在跨鏈交互問(wèn)題上。故基于擴(kuò)容方案部署邊緣計(jì)算網(wǎng)絡(luò)架構(gòu),需考慮區(qū)塊鏈所構(gòu)成的邊緣信任域之間的安全交互問(wèn)題。且域間設(shè)備安全交互過(guò)程中還存在身份認(rèn)證難、訪問(wèn)控制難及隱私保護(hù)難等[7]問(wèn)題。現(xiàn)有構(gòu)建域間信任的方式,一般是在域內(nèi)設(shè)置中心管理機(jī)構(gòu)來(lái)管理和驗(yàn)證身份。因是中心化的認(rèn)證方式,其節(jié)點(diǎn)設(shè)備間無(wú)法進(jìn)行身份的相互驗(yàn)證,缺乏跨域身份信任,導(dǎo)致不同信任域的IoT 設(shè)備無(wú)法便捷地互相訪問(wèn),同時(shí)數(shù)據(jù)也無(wú)法安全共享[8]。
針對(duì)上述邊緣計(jì)算與區(qū)塊鏈網(wǎng)絡(luò)架構(gòu)中的數(shù)據(jù)安全、跨域身份認(rèn)證難題,本文設(shè)計(jì)了主從多鏈結(jié)構(gòu),并集成邊緣計(jì)算提出了一種支持跨域訪問(wèn)控制的高擴(kuò)展性分布式可信認(rèn)證模型。本文的主要貢獻(xiàn)包括四方面:
(1)針對(duì)區(qū)塊鏈擴(kuò)展性瓶頸,采用鏈下擴(kuò)容方法設(shè)計(jì)了可無(wú)限伸縮的主從多鏈結(jié)構(gòu)。將大量的跨域工作轉(zhuǎn)移到主鏈上,減輕了從鏈的交易負(fù)擔(dān)。而從鏈無(wú)需向主鏈提交所有的交易數(shù)據(jù)便可提供數(shù)據(jù)可用性證明。
(2)基于鏈上擴(kuò)容方案的實(shí)現(xiàn)思路,將主從多鏈集合到邊緣計(jì)算上,部署了三層體系架構(gòu)。并基于橢圓曲線加密算法(elliptic curve cryptography,ECC)設(shè)計(jì)了邊緣節(jié)點(diǎn)的安全接入流程。通過(guò)主從鏈賦予邊緣可信,提高了網(wǎng)絡(luò)架構(gòu)的安全性與計(jì)算有效性。
(3)基于RBAC(role-based access control)提出了域間訪問(wèn)控制模型(inter domain-role-based access control,ID-RBAC)。并結(jié)合智能合約與角色權(quán)限設(shè)計(jì)了細(xì)粒度的訪問(wèn)控制策略。
(4)基于ID-RBAC模型設(shè)計(jì)了域內(nèi)、域間訪問(wèn)控制機(jī)制,包括具體的身份認(rèn)證流程、跨域數(shù)據(jù)管理方法。
邊緣網(wǎng)絡(luò)架構(gòu)在異構(gòu)邊緣節(jié)點(diǎn)的相互作用和跨邊緣節(jié)點(diǎn)的服務(wù)遷移下,數(shù)據(jù)的安全性風(fēng)險(xiǎn)增加。依托區(qū)塊鏈技術(shù)的分布式存儲(chǔ)、共識(shí)機(jī)制、加密不可篡改等特點(diǎn),許多研究基于區(qū)塊鏈賦予邊緣網(wǎng)絡(luò)安全可靠的訪問(wèn)與控制。Ma 等人[9]提出了一種基于區(qū)塊鏈的可信數(shù)據(jù)管理方案,是滿足可配置的邊緣區(qū)塊鏈安全系統(tǒng)。Pan 等人[10]定義了邊緣鏈,提出了一種基于區(qū)塊鏈和智能合約的邊緣物聯(lián)網(wǎng)系統(tǒng)。程冠杰等人[11]提出一種基于區(qū)塊鏈與邊緣計(jì)算的物聯(lián)網(wǎng)數(shù)據(jù)管理架構(gòu)。這些方法中,區(qū)塊鏈技術(shù)的加持維護(hù)了數(shù)據(jù)的安全性,但因目前區(qū)塊鏈擴(kuò)展能力的有限性,一定程度上限制了其支持邊緣計(jì)算中頻繁事務(wù)的訪問(wèn)處理能力。雖然邊緣計(jì)算將區(qū)塊鏈從受限的設(shè)備中卸載了出來(lái),但并未真正解決區(qū)塊鏈擴(kuò)展性問(wèn)題,整體性能上缺少優(yōu)勢(shì)??梢?jiàn),目前區(qū)塊鏈的存儲(chǔ)和計(jì)算能力還不足以應(yīng)對(duì)兩者集成后分散管理的性能挑戰(zhàn)。
吞吐量低、數(shù)據(jù)存儲(chǔ)困難和可擴(kuò)展性差等引起的性能問(wèn)題極大地限制了區(qū)塊鏈的發(fā)展[12]。鑒于此,眾多研究學(xué)者對(duì)區(qū)塊鏈擴(kuò)容技術(shù)展開(kāi)了研究。區(qū)塊鏈擴(kuò)容技術(shù)包括鏈上、鏈下兩種方法。其中鏈上擴(kuò)容[13-14]方案通過(guò)改變基本協(xié)議來(lái)提升區(qū)塊鏈整體性能,但存在節(jié)點(diǎn)故障導(dǎo)致數(shù)據(jù)丟失等問(wèn)題。不改變基本協(xié)議而對(duì)應(yīng)用層進(jìn)行改變以提升擴(kuò)展性的鏈下擴(kuò)容[15-17]方案,將各服務(wù)壓力轉(zhuǎn)移到鏈下處理,以減輕主鏈的負(fù)擔(dān),但不可避免地加劇了系統(tǒng)的中心化程度。同時(shí),系統(tǒng)中因多條鏈的存在,勢(shì)必涉及鏈之間的安全交互問(wèn)題,且其交互過(guò)程中會(huì)產(chǎn)生大量的密碼數(shù)據(jù),節(jié)點(diǎn)因此受到繁重的計(jì)算、驗(yàn)證負(fù)擔(dān)。許多研究在擴(kuò)容技術(shù)的基礎(chǔ)上集成了邊緣計(jì)算,致力于促進(jìn)區(qū)塊鏈擴(kuò)容技術(shù)的發(fā)展,以強(qiáng)化其與邊緣計(jì)算集成的協(xié)同作用。Li 等人[18]通過(guò)邊緣計(jì)算來(lái)構(gòu)建區(qū)塊鏈系統(tǒng),利用邊緣計(jì)算富余的算力解決復(fù)雜的密碼學(xué)計(jì)算問(wèn)題。Chuang 等人[19]提出了分層區(qū)塊鏈,并通過(guò)邊緣計(jì)算來(lái)減輕區(qū)塊鏈系統(tǒng)運(yùn)行帶來(lái)的存儲(chǔ)和計(jì)算負(fù)擔(dān)。這些方案在擴(kuò)容的基礎(chǔ)上集成邊緣計(jì)算,形成安全的分布式處理模式,兩者協(xié)同發(fā)展提高了系統(tǒng)的整體服務(wù)能力。但該模式下的信息系統(tǒng)與數(shù)據(jù)是分域管理的,信息系統(tǒng)呈現(xiàn)域內(nèi)互聯(lián)、域間孤立的特征,若不能關(guān)注到該特征,域間的設(shè)備和數(shù)據(jù)容易出現(xiàn)明顯的“孤島”現(xiàn)象。
為了解決各應(yīng)用域間的安全性、共享性問(wèn)題,許多學(xué)者對(duì)跨域共享展開(kāi)了研究。傳統(tǒng)的跨域共享機(jī)制采用集中式的身份認(rèn)證方法,如基于證書的公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)[20]和基于身份的密碼體制(identity-based cryptography,IBC)[21]。這種集中式處理方法的認(rèn)證資源極易耗盡,認(rèn)證效率不穩(wěn)定,特別不適用于多設(shè)備的服務(wù)場(chǎng)景,這與要求實(shí)時(shí)、高效地處理多并發(fā)事務(wù)邊緣計(jì)算發(fā)展模式不匹配。而在大規(guī)??缬驁?chǎng)景應(yīng)用中,陳彥冰等人[22]通過(guò)引入?yún)^(qū)塊鏈和無(wú)證書認(rèn)證技術(shù),提出一種基于醫(yī)療聯(lián)盟鏈安全高效的跨域認(rèn)證方案。趙平等人[23]設(shè)計(jì)了主從區(qū)塊鏈身份認(rèn)證結(jié)構(gòu)和匹配使用的分層拜占庭容錯(cuò)算法,實(shí)現(xiàn)了雙向異構(gòu)跨域身份認(rèn)證,其身份認(rèn)證較繁瑣復(fù)雜,產(chǎn)生大量的計(jì)算開(kāi)銷?;趨^(qū)塊鏈擴(kuò)容技術(shù),Jiang 等人[13]基于圖結(jié)構(gòu)的IOTA(Internet of things application)即Tangle 平臺(tái)設(shè)計(jì)了跨鏈框架,區(qū)塊鏈的擴(kuò)展性得到了提高,但該方法涉及到的用戶隱私數(shù)據(jù)問(wèn)題并未解決。Zhang 等人[24]提出了一種完全跨域的方法。Guo 等人[25]設(shè)計(jì)了一種支持分布式跨域身份驗(yàn)證的主從區(qū)塊鏈體系結(jié)構(gòu),解決了一定的用戶隱私問(wèn)題,但其對(duì)隱私數(shù)據(jù)的訪問(wèn)權(quán)限劃分不明確,不能做到數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,存在隱私數(shù)據(jù)過(guò)度訪問(wèn)等問(wèn)題。
上述各模型的安全方案對(duì)區(qū)塊鏈技術(shù)的依賴,致使這些方案在實(shí)現(xiàn)數(shù)據(jù)安全保護(hù)的同時(shí),還要考慮區(qū)塊鏈性能受限的問(wèn)題。而要兼顧高性能與高安全性要求,區(qū)塊鏈需要更具可擴(kuò)展性和分布式的設(shè)計(jì)。故本文重點(diǎn)關(guān)注邊緣計(jì)算和區(qū)塊鏈擴(kuò)容技術(shù)的協(xié)同作用,以高性能、低功耗以及高擴(kuò)展性的方式在邊緣側(cè)部署訪問(wèn)控制模型。兼顧區(qū)塊鏈的安全與性能,設(shè)計(jì)更加完善且有效的安全方案,以進(jìn)一步解決邊緣計(jì)算場(chǎng)景下應(yīng)用服務(wù)的跨域身份認(rèn)證與數(shù)據(jù)安全共享等問(wèn)題。
為突破傳統(tǒng)單鏈性能瓶頸,設(shè)計(jì)了主從多鏈結(jié)構(gòu),如圖1所示(圖中,Node0為通信節(jié)點(diǎn),其余為普通節(jié)點(diǎn))。該主從多鏈結(jié)構(gòu)包括一條主鏈(main chain,MC)和多條從鏈(slave chain,SC)。SC 作為域內(nèi)的可信平臺(tái),對(duì)域內(nèi)訪問(wèn)操作進(jìn)行管理,并定義了普通節(jié)點(diǎn)和通信節(jié)點(diǎn),普通節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)存儲(chǔ),通信節(jié)點(diǎn)是網(wǎng)絡(luò)交互的樞紐,連接到MC。MC 是從鏈間交互的橋梁,用于解析跨鏈請(qǐng)求,實(shí)現(xiàn)可信身份認(rèn)證。MC 定義了通信節(jié)點(diǎn)和緩存節(jié)點(diǎn),通信節(jié)點(diǎn)與SC 網(wǎng)絡(luò)進(jìn)行交互,實(shí)現(xiàn)鏈之間的互聯(lián)、互通,緩存節(jié)點(diǎn)通過(guò)CouchDB 狀態(tài)數(shù)據(jù)庫(kù)緩存跨域數(shù)據(jù)。通信節(jié)點(diǎn)構(gòu)成MC 與SC 的索引,將多個(gè)SC 銜接起來(lái)構(gòu)成一個(gè)無(wú)限擴(kuò)展的主從多鏈,具有很好的靈活性和擴(kuò)展性。成員關(guān)系服務(wù)提供者(membership service provider,MSP)是證書管理服務(wù)器,參與本地區(qū)塊鏈賬本的維護(hù),為加入?yún)^(qū)塊鏈的節(jié)點(diǎn)進(jìn)行身份審核和證書發(fā)放。
圖1 主從多鏈結(jié)構(gòu)Fig.1 Master-slave multi-chain structure
主從鏈結(jié)構(gòu)的優(yōu)點(diǎn)在于其可伸縮性強(qiáng),可通過(guò)動(dòng)態(tài)擴(kuò)展從鏈,使得整個(gè)系統(tǒng)的性能不會(huì)受限于某個(gè)鏈,打破其可擴(kuò)展性瓶頸。而主鏈作為可信認(rèn)證平臺(tái),保存其交易的哈希時(shí)間鎖,維護(hù)了從鏈間交易的原子性。
在主從多鏈下集成邊緣計(jì)算設(shè)計(jì)了三層分布式安全架構(gòu),如圖2 所示,包括設(shè)備層、從鏈網(wǎng)絡(luò)及主鏈網(wǎng)絡(luò),三層自下向上服務(wù)。設(shè)備層為上層提供可信計(jì)算服務(wù),該層中的邊緣設(shè)備通過(guò)身份注冊(cè)流程后,接入從鏈網(wǎng)絡(luò),組成從鏈網(wǎng)絡(luò)的“礦工”——邊緣節(jié)點(diǎn)(edge node,En)。En將數(shù)據(jù)預(yù)處理后存儲(chǔ)于SC節(jié)點(diǎn)中,SC 為當(dāng)前所在域的設(shè)備提供安全的數(shù)據(jù)存儲(chǔ)環(huán)境及域內(nèi)訪問(wèn)控制;SC 與MC 中的通信節(jié)點(diǎn)共同維護(hù)可靠的通信,為跨域訪問(wèn)控制提供服務(wù)。主鏈網(wǎng)絡(luò)支持跨不同SC 域之間進(jìn)行訪問(wèn)。該三層架構(gòu)覆蓋了區(qū)塊鏈和邊緣計(jì)算的核心功能,從存儲(chǔ)、網(wǎng)絡(luò)和計(jì)算不同層面提供了分布式安全服務(wù)。架構(gòu)中的從鏈、邊緣節(jié)點(diǎn)可根據(jù)需求進(jìn)行開(kāi)發(fā),是一個(gè)無(wú)限擴(kuò)展的聯(lián)盟。
圖2 分布式安全架構(gòu)Fig.2 Distributed security architecture
(1)下層為設(shè)備層,該層設(shè)兩個(gè)功能模塊:感知模塊、設(shè)備管理模塊。其中設(shè)備管理模塊設(shè)計(jì)了基于密碼學(xué)的安全接入流程,設(shè)備需經(jīng)過(guò)該流程的驗(yàn)證才可成為合法的En。
(2)中間層為從鏈網(wǎng)絡(luò),該層包含了數(shù)據(jù)處理和域內(nèi)訪問(wèn)控制兩個(gè)功能模塊。在數(shù)據(jù)處理模塊中,En對(duì)設(shè)備層采集到的數(shù)據(jù)進(jìn)行預(yù)處理,并統(tǒng)一格式后打包成塊,存儲(chǔ)于SC 帳本;域內(nèi)訪問(wèn)控制模塊是中間層的核心功能模塊,實(shí)現(xiàn)物聯(lián)網(wǎng)域內(nèi)訪問(wèn)管理。
(3)上層為主鏈網(wǎng)絡(luò),該層作為域間的可信共享平臺(tái),是數(shù)據(jù)跨域管理的控制器。該層設(shè)置了緩存模塊、域間訪問(wèn)控制模塊,域間訪問(wèn)控制模塊聯(lián)合SC共同管理跨域訪問(wèn)行為,緩存模塊對(duì)跨域數(shù)據(jù)及相關(guān)信息進(jìn)行緩存。
2.3.1 ID-RBAC 模型
在物聯(lián)網(wǎng)訪問(wèn)控制方案中,常見(jiàn)的訪問(wèn)控制模型有屬性集、權(quán)限集等,這些方法的集合保護(hù)措施不夠安全,且設(shè)計(jì)成本較高[26]。在邊緣計(jì)算和區(qū)塊多鏈架構(gòu)下,多設(shè)備、多節(jié)點(diǎn)的接入,加劇了訪問(wèn)與權(quán)限的復(fù)雜關(guān)系,使得授權(quán)管理變得繁瑣。同時(shí)頻繁申請(qǐng)、授權(quán)與訪問(wèn)操作更是加大了權(quán)限管理成本。基于角色的訪問(wèn)控制模型可以解耦用戶與權(quán)限的關(guān)系,并支持層次化的權(quán)限分級(jí)和權(quán)限繼承,極大簡(jiǎn)化了權(quán)限的管理。但因其是根據(jù)角色劃分用戶權(quán)限,導(dǎo)致實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制變得困難,通常需要?jiǎng)?chuàng)建更具體的角色版本或設(shè)計(jì)其他機(jī)制[27]。
智能合約具有高準(zhǔn)確性和智能性,不需人為參與便可自動(dòng)執(zhí)行。通過(guò)智能合約為訪問(wèn)用戶分配與他們身份信息相符的角色,使接受角色與用戶的關(guān)系轉(zhuǎn)變要比角色對(duì)應(yīng)權(quán)限的轉(zhuǎn)變更頻繁[28],即可降低授權(quán)的復(fù)雜性,并減少組織的管理成本。因此本文以RBAC模型為基礎(chǔ),利用智能合約來(lái)進(jìn)行用戶、角色與權(quán)限的邏輯劃分,提出域間訪問(wèn)控制模型ID-RBAC。
在ID-RBAC 模型下,設(shè)計(jì)了動(dòng)態(tài)授權(quán)機(jī)制,該機(jī)制可以動(dòng)態(tài)調(diào)整用戶在不同狀態(tài)下的權(quán)限。授權(quán)規(guī)則如角色A 持有權(quán)限Ⅰ,在域內(nèi)訪問(wèn)流程中滿足授權(quán)策略,權(quán)限Ⅰ被授權(quán)。而在域間訪問(wèn)流程中,該權(quán)限不能滿足所跨域的授權(quán)策略時(shí),權(quán)限Ⅰ被限制授權(quán)。即同一個(gè)角色對(duì)于同一個(gè)訪問(wèn)內(nèi)容,應(yīng)具有相同的權(quán)限,而在ID-RBAC 中,在域內(nèi)和域間訪問(wèn)過(guò)程中權(quán)限卻可能不同,這是因?yàn)椴捎昧思?xì)粒度劃分的合約機(jī)制。針對(duì)不同域中復(fù)雜的授權(quán)狀態(tài),ID-RBAC模型是靈活可用的。當(dāng)系統(tǒng)中需增加角色時(shí),可將其寫入到合約機(jī)制中,進(jìn)行權(quán)限動(dòng)態(tài)授權(quán)。ID-RBAC較傳統(tǒng)RBAC 的擴(kuò)展性、靈活性更優(yōu)。
2.3.2 ID-RBAC 的合約設(shè)計(jì)
角色的分配及訪問(wèn)控制過(guò)程通過(guò)智能合約實(shí)現(xiàn),基于ID-RBAC 設(shè)計(jì)了五個(gè)合約,分別實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的管理、隱私數(shù)據(jù)的訪問(wèn)控制、用戶角色的管理、數(shù)據(jù)跨域訪問(wèn)控制及跨域數(shù)據(jù)的緩存轉(zhuǎn)發(fā)。
(1)數(shù)據(jù)管理合約(data management contract,DMC){地址,資源,屬性},DMC 用于管理上鏈的數(shù)據(jù),通過(guò)DMC 合約對(duì)數(shù)據(jù)進(jìn)行分域與分類管理。地址指明某數(shù)據(jù)資源所處的IoT 域,屬性說(shuō)明數(shù)據(jù)資源的數(shù)據(jù)類型。
(2)隱私數(shù)據(jù)合約(private data contract,PDC){DMC 屬性,策略Policy,時(shí)間},通過(guò)DMC 合約的數(shù)據(jù)屬性構(gòu)建隱私數(shù)據(jù)集合(privacy dataset,PDS),并將PDS 存儲(chǔ)于私有數(shù)據(jù)庫(kù)(Private-DB),PDS 是系統(tǒng)特定成員(Member)所私有,其算法如下:
算法1PDC
(3)角色管理合約(role management contract,RMC){用戶屬性,用戶地址,PDC-Policy結(jié)果,用戶,}{角色1,角色2,…,角色N},{權(quán)限1,權(quán)限2,…,權(quán)限N}。當(dāng)新用戶加入網(wǎng)絡(luò)時(shí),RMC 根據(jù)其屬性、所在域進(jìn)行身份匹配,一個(gè)用戶可同時(shí)擁有多個(gè)角色。
根據(jù)用戶處于不同物聯(lián)網(wǎng)域,可分同域和異域用戶,一個(gè)從鏈維護(hù)一個(gè)域,故每個(gè)域都有相對(duì)應(yīng)的賬本,因此域間權(quán)限的劃分主要針對(duì)該域所維護(hù)的賬本。域所對(duì)應(yīng)的權(quán)限如表1。
表1 域權(quán)限的劃分Table 1 Division of domain authority
為了實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制,本文對(duì)每個(gè)賬本內(nèi)的數(shù)據(jù)進(jìn)行了分類,并設(shè)計(jì)了不同的訪問(wèn)“門檻”。根據(jù)RMC 合約對(duì)域內(nèi)用戶劃分了Ⅰ級(jí)、Ⅱ級(jí)、Ⅲ級(jí)及Ⅳ級(jí),各等級(jí)對(duì)應(yīng)的權(quán)限如表2。
表2 角色等級(jí)與權(quán)限的關(guān)系Table 2 Relationship between role level and authority
(4)跨域合約(cross domain contract,CrossD){訪問(wèn)屬性,RMC 結(jié)果},根據(jù)請(qǐng)求操作解析訪問(wèn)屬性,并結(jié)合RMC 獲取相應(yīng)權(quán)限后跨域調(diào)用。
(5)緩存合約(cache contract,cacheC){CrossD 結(jié)果,屬性},通過(guò)CrossD 的結(jié)果執(zhí)行CacheC,并根據(jù)數(shù)據(jù)屬性進(jìn)行分類緩存。
跨域訪問(wèn)及緩存算法如下:
算法2跨域緩存
為了確保提供計(jì)算服務(wù)的邊緣節(jié)點(diǎn)安全性,設(shè)計(jì)了如圖3 的安全接入流程,包括初值設(shè)定、注冊(cè)及身份認(rèn)證流程。其中初值設(shè)定的初始化由En執(zhí)行,通過(guò)ECC 生成公私鑰對(duì),作為系統(tǒng)所需的公共參數(shù)。結(jié)合設(shè)備MAC(media access control)地址值獲取其身份信息Enc,并將其打包存儲(chǔ)到區(qū)塊鏈上,以向區(qū)塊鏈網(wǎng)絡(luò)注冊(cè)自身。當(dāng)設(shè)備A向設(shè)備B發(fā)起訪問(wèn)請(qǐng)求時(shí),設(shè)備B通過(guò)區(qū)塊鏈網(wǎng)絡(luò)驗(yàn)證A的身份信息。
圖3 認(rèn)證流程Fig.3 Certification process
其邊緣節(jié)點(diǎn)認(rèn)證具體流程如下:
(1)初值設(shè)定
加入?yún)^(qū)塊鏈網(wǎng)絡(luò)的En采用ECC 計(jì)算公鑰和私鑰。當(dāng)Q在有限域Fp上滿足大于3 的素?cái)?shù)時(shí),整數(shù)對(duì)p取模,有方程E:
其中,a,b∈Fp,Ep(a,b),取任意數(shù)K得到私鑰SK。取橢圓曲線上基點(diǎn)Q,生成公鑰PK=Q*SK,并將公鑰進(jìn)行全網(wǎng)廣播。
(2)注冊(cè)
將En的MAC地址和SK值輸入式(2),計(jì)算得到Hash。通過(guò)SK 對(duì)其進(jìn)行加密得到Enc(SK,Hash),并將Enc存儲(chǔ)在本地及區(qū)塊鏈上,完成注冊(cè)。
(3)身份認(rèn)證
En成為礦工前需得到一致性認(rèn)可,即全網(wǎng)節(jié)點(diǎn)對(duì)其身份進(jìn)行驗(yàn)證。當(dāng)節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)起訪問(wèn)等行為時(shí),節(jié)點(diǎn)B查詢區(qū)塊鏈上是否存在A的身份信息。①存在,則通過(guò)A發(fā)布的PK對(duì)Enc(SK,Hash)進(jìn)行解密,得到Dec(SK,Hash),并與Enc(SK,Hash)進(jìn)行對(duì)比,對(duì)比結(jié)果一致則證明該節(jié)點(diǎn)是合法的,認(rèn)證通過(guò)。否則該節(jié)點(diǎn)已被污染,或是惡意節(jié)點(diǎn)偽造。②不存在,該節(jié)點(diǎn)不合法,斷開(kāi)連接。身份認(rèn)證避免了節(jié)點(diǎn)的偽造冒充,阻止將數(shù)據(jù)交付到惡意節(jié)點(diǎn)中。至此En與數(shù)據(jù)賬本建立了初始信任關(guān)系。
頒發(fā)、校驗(yàn)證書的MSP 為加入主從鏈網(wǎng)絡(luò)的各物聯(lián)網(wǎng)域及各實(shí)體生成公鑰、私鑰,并將域及用戶發(fā)布到主從鏈網(wǎng)絡(luò)中。
張仲平松了一口氣,再次緊張地看了一眼手機(jī)上的時(shí)間。他不知道樓上的情況到底怎么樣了。他朝自己的車子走去,偶一回頭,卻發(fā)現(xiàn)曾真拿著相機(jī)回身又向勝利大廈里面走去。
(1)發(fā)布域(HashX(pkMSPx),SignX,HashX),其中HashX(pkMSPx)是pkMSPx的哈希值,SignX與HashX分別表示域X進(jìn)行的數(shù)字簽名及哈希運(yùn)算。
(2)發(fā)布用戶(HashX(pkUAi),HashX(pkMSPx),State),其中pkUAi表示域X中Uxi用戶的公鑰,State表示用戶身份信息是否可用。
(3)驗(yàn)證(pkUAi,SignX(skUAi,N),N,HashX(pkMSPx)),N是進(jìn)行哈希計(jì)算的隨機(jī)數(shù)。
(4)將驗(yàn)證結(jié)果存儲(chǔ)到主從鏈賬本中。
(5)區(qū)塊鏈網(wǎng)絡(luò)驗(yàn)證通過(guò),開(kāi)始響應(yīng)發(fā)布域(HashX(pkMSPx),SignX,HashX,StaBC)與發(fā)布用戶(HashX(pkUAi),HashX(pkMSPx),State)請(qǐng)求。StaBC表示維護(hù)該新發(fā)布域的區(qū)塊鏈網(wǎng)絡(luò)信息。
3.3.1 隱私數(shù)據(jù)訪問(wèn)管理
PDC 和RMC 對(duì)隱私數(shù)據(jù)進(jìn)行了分層保護(hù)。PDC為每個(gè)域的隱私數(shù)據(jù)定義了隱私數(shù)據(jù)集合(privacy data set,PDS),RMC通過(guò)PDS里定義的訪問(wèn)策略PolicyN訪問(wèn)管理。
定義1隱私數(shù)據(jù)訪問(wèn)策略:PolicyN(隱私數(shù)據(jù)屬性Type,所在域Domain,訪問(wèn)權(quán)限P)。
隱私數(shù)據(jù)訪問(wèn)管理流程如圖4 所示。設(shè)Org1 有三個(gè)屬性的數(shù)據(jù){Public-DB1(屬性1,屬性2),Private-DB1(屬性3)}。屬性3 劃分在隱私數(shù)據(jù)集合中,存儲(chǔ)于私有數(shù)據(jù)庫(kù)中。同一個(gè)鏈上的組織成員可共享Public-DB1 中的數(shù)據(jù),而Private-DB1 中的數(shù)據(jù)為Org1 私有,隱私數(shù)據(jù)策略Policy1表示為:
圖4 隱私數(shù)據(jù)訪問(wèn)管理流程Fig.4 Privacy data access management process
3.3.2 域內(nèi)訪問(wèn)
域內(nèi)訪問(wèn)指訪問(wèn)行為發(fā)生在同一個(gè)邊緣物聯(lián)網(wǎng)域下的不同IoT 系統(tǒng)。如圖5 所示,設(shè)SC1 所管理的域中有用戶A、用戶B,用戶A在SC1 中向用戶B發(fā)布訪問(wèn)行為。
圖5 域內(nèi)訪問(wèn)流程Fig.5 Intra-domain access process
(1)IoT1-A 向MSP 發(fā)送一個(gè)狀態(tài)為身份注冊(cè)的請(qǐng)求,MSP驗(yàn)證通過(guò)后向其返回身份證書CertA,Time表示CertA的有效時(shí)間。
(2)A將其CertA、自身信息及訪問(wèn)內(nèi)容Ac三者打包成訪問(wèn)請(qǐng)求Ar。Ar打包成功后會(huì)被寫入到帳本中,區(qū)塊高度增加1。PackagedAAr為當(dāng)前Ar打包的狀態(tài),狀態(tài)有兩種標(biāo)識(shí):Success OR failure。
將Ar發(fā)送到SC1 以進(jìn)行解析驗(yàn)證。其中Dt表示A所訪問(wèn)的數(shù)據(jù)集合。SC1 是維護(hù)A所在域的從鏈網(wǎng)絡(luò),且作為該域內(nèi)訪問(wèn)可信認(rèn)證平臺(tái),訪問(wèn)流程中的各記錄會(huì)存儲(chǔ)在SC1 上,供歷史溯源。此外,域內(nèi)細(xì)粒度的訪問(wèn)控制策略依靠SC1 上的智能合約實(shí)現(xiàn)。
(3)SC1 將收到的Ar進(jìn)行解析,確認(rèn)當(dāng)前行為是域內(nèi)訪問(wèn),隨后通過(guò)MSP 進(jìn)行身份認(rèn)證。
①CertA有效認(rèn)證合法,則記錄其認(rèn)證結(jié)果,并修改A在SC1 賬本中的狀態(tài)信息。
②CertA無(wú)效驗(yàn)證失敗,則向A返回拒絕信息,表明A是不合法用戶,或是不屬于本域用戶,訪問(wèn)終止。
(4)通過(guò)身份驗(yàn)證后,SC1 調(diào)用RMC 合約并根據(jù)Dt為A自動(dòng)匹配角色,隨后根據(jù)角色權(quán)限生成訪問(wèn)令牌Token,發(fā)送給A所訪問(wèn)的IoT1-B,Deadline是訪問(wèn)令牌的有效期。若訪問(wèn)無(wú)法在令牌Deadline期內(nèi)完成,出于安全性考慮,用戶需重新進(jìn)行身份驗(yàn)證以生成新的Token′。
(5)IoT1-B將Token解析后保存,并打開(kāi)訪問(wèn)通道。
3.3.3 域間訪問(wèn)
域間訪問(wèn)是指發(fā)生在不同邊緣物聯(lián)網(wǎng)域下的訪問(wèn)行為,如圖6 所示,IoT1-C 與IoT2-D 之間的訪問(wèn)操作,其中SC2 做出訪問(wèn)應(yīng)答,MC 起調(diào)度作用。
圖6 域間訪問(wèn)控制流程Fig.6 Inter-domain access control process
(1)IoT1-C 向MSP 發(fā)送一個(gè)狀態(tài)為身份注冊(cè)的請(qǐng)求,MSP驗(yàn)證通過(guò)后向其返回身份證書CertC,Time表示CertC的有效時(shí)間。
(2)IoT-C 拿到CertC后向MC 發(fā)出跨域身份驗(yàn)證請(qǐng)求,并提交訪問(wèn)請(qǐng)求內(nèi)容。
(3)主鏈MC 將收到的Ar進(jìn)行解析,并將此訪問(wèn)狀態(tài)標(biāo)記為跨域。隨后對(duì)訪問(wèn)用戶進(jìn)行身份認(rèn)證。
①CertC合法驗(yàn)證通過(guò),將驗(yàn)證結(jié)果CrossT發(fā)送給SC2。
②CertC不合法,驗(yàn)證未通過(guò),該用戶無(wú)權(quán)訪問(wèn),返回拒絕信息,跨域訪問(wèn)進(jìn)程結(jié)束。
(4)SC2將CrossT進(jìn)行解析,并調(diào)用RMC 合約查詢C的角色,判斷C當(dāng)前角色是否滿足Policy。
①滿足Policy,則向MC 發(fā)送確認(rèn)信息。
②不滿足Policy,返回錯(cuò)誤信息。
(5)MC 解析SC2 返回的授權(quán)信息。
①解析結(jié)果為確認(rèn)授權(quán),調(diào)用CrossD、CacheC 合約獲取并緩存數(shù)據(jù)。打開(kāi)C對(duì)D的訪問(wèn)通道,并向IoT-C 發(fā)送訪問(wèn)令牌。
②解析結(jié)果拒絕授權(quán),則MC向C發(fā)送錯(cuò)誤信息,表明該數(shù)據(jù)集合不對(duì)該用戶開(kāi)放。
如該數(shù)據(jù)屬于PDS 集合的數(shù)據(jù),對(duì)已通過(guò)身份認(rèn)證但未滿足所訪問(wèn)域中PDS 集合訪問(wèn)策略中的用戶,其權(quán)限未授權(quán)被“激活”,該類用戶均無(wú)權(quán)對(duì)其訪問(wèn),故C無(wú)法訪問(wèn)當(dāng)前所申請(qǐng)?jiān)L問(wèn)的內(nèi)容。若繼續(xù)向該域繼續(xù)訪問(wèn),可重新選擇所要訪問(wèn)的集合,返回(2)修改Ac中的訪問(wèn)內(nèi)容信息,選擇其他的訪問(wèn)集合,重新打包Ar以發(fā)起新一輪的訪問(wèn)流程。
(6)C拿到令牌后開(kāi)始向D進(jìn)行訪問(wèn)。
3.4.1 不可偽造性證明
攻擊者需獲取合法節(jié)點(diǎn)的SK才能偽造合法節(jié)點(diǎn),而基于密碼學(xué)的ECC是以求解橢圓曲線離散對(duì)數(shù)問(wèn)題(elliptic curve discrete logarithm problem,ECDLP)的困難性為安全基礎(chǔ)的公鑰密碼系統(tǒng)。在已知PK和Q,逆向?qū)ふ襍K過(guò)程的困難就是ECDLP。本文通過(guò)窮舉搜索法試圖求解ECDLP,驗(yàn)證逆向?qū)ふ襍K幾乎不可能成功。
定理1已知Q=q和P=PK,P的階為N。E∈(Fp),當(dāng)L滿足Q=LP時(shí)求得SK,其中L滿足(0 ≤L≤N-1)。如果ECDLP 成立,則該方法不可行。
證明計(jì)算E∈(Fp)的點(diǎn)序列P,2P,3P,…,nP,直到nP=Q,則n=L??紤]最壞情況下,需要計(jì)算N步才能找到滿足nP=Q的答案,平均需要N/2 步才能解決ECDLP。因此,該計(jì)算的時(shí)間復(fù)雜度是指數(shù)級(jí)的O(N)。而當(dāng)N足夠大時(shí),該求解方法在計(jì)算時(shí)間上變得不可行,該方法的有效性無(wú)法保證,ECDLP難度成立。此時(shí)式(3)中的SK(PK,P)無(wú)窮小,那么攻擊者A成功偽造合法節(jié)點(diǎn)的成功概率SuccA幾乎為0。
可證得在本文方案下,邊緣節(jié)點(diǎn)是不可能被成功偽造和篡改的,滿足不可偽造性。
3.4.2 正確性測(cè)試
在ID-RBAC 模型下并發(fā)事務(wù)107 936 次,成功執(zhí)行107 934次,未成功執(zhí)行2次,成功率達(dá)到了99.99%,而0.01%的失敗率是可忽略的。
在ID-RBAC 模型中,身份認(rèn)證信息的上傳、訪問(wèn)、失效都以帶有時(shí)間戳的鏈結(jié)構(gòu)進(jìn)行記錄,其訪問(wèn)記錄可被追溯但不可篡改。即使攻擊者截獲相應(yīng)的身份認(rèn)證信息,也無(wú)法重放此消息躲避身份驗(yàn)證機(jī)制。因此,在訪問(wèn)響應(yīng)測(cè)試中,基于ID-RBAC 模型模擬惡意節(jié)點(diǎn)發(fā)生訪問(wèn)行為,驗(yàn)證該模型身份認(rèn)證與數(shù)據(jù)訪問(wèn)策略的正確性。表3 預(yù)設(shè)了四種場(chǎng)景,包括物聯(lián)網(wǎng)應(yīng)用下主要可能出現(xiàn)的訪問(wèn)攻擊類型。測(cè)試結(jié)果表明ID-RBAC 模型具有正確性,可正確實(shí)現(xiàn)對(duì)用戶的身份認(rèn)證并進(jìn)行有效的訪問(wèn)控制。
表3 響應(yīng)測(cè)試說(shuō)明Table 3 Response test description
本章圍繞吞吐量、時(shí)延和資源消耗三個(gè)性能指標(biāo)展開(kāi)實(shí)驗(yàn)驗(yàn)證與分析,且通過(guò)改變邊緣節(jié)點(diǎn)數(shù)進(jìn)行分組測(cè)試。為了評(píng)估模型擴(kuò)展性及優(yōu)越性,圍繞上述三個(gè)性能指標(biāo)與文獻(xiàn)[13]、文獻(xiàn)[24]進(jìn)行對(duì)比。
基于Hyper Ledger Fabric 開(kāi)源框架和Docker 容器技術(shù)搭建了區(qū)塊鏈開(kāi)發(fā)平臺(tái),并以此作為測(cè)試與評(píng)估平臺(tái)。在實(shí)驗(yàn)中,本文設(shè)定網(wǎng)絡(luò)中的所有合法節(jié)點(diǎn)都為背書(endorser)節(jié)點(diǎn)和提交(committing)節(jié)點(diǎn),錨(anchor)節(jié)點(diǎn)在域初始化時(shí)指定,主(leafer)節(jié)點(diǎn)在域初始化時(shí)選舉,且通過(guò)高魯棒拜占庭容錯(cuò)算法(robust Byzantine tolerance,RBFT)達(dá)成一致。智能合約使用Go 語(yǔ)言編寫。在Ubuntu 20.04 OS 上運(yùn)行邊緣計(jì)算平臺(tái),該平臺(tái)由3 個(gè)邊緣設(shè)備Edge1、Edge2 和Edge3 組成。同時(shí)這些邊緣設(shè)備作為區(qū)塊鏈網(wǎng)絡(luò)的“礦工”,為其提供存儲(chǔ)能力與計(jì)算能力。表4為實(shí)驗(yàn)詳細(xì)設(shè)置。
表4 實(shí)驗(yàn)設(shè)置Table 4 Experimental setup
吞吐量(throughput)是衡量并發(fā)處理能力的重要指標(biāo)。根據(jù)不同邊緣節(jié)點(diǎn)數(shù)進(jìn)行了3 組實(shí)驗(yàn),測(cè)量周期內(nèi)域內(nèi)與域間發(fā)生的所有事務(wù)流量:事務(wù)提交量(successfully committed transactions,Succ)和吞吐量,結(jié)果如圖7 所示。從實(shí)驗(yàn)可觀察到吞吐量、事務(wù)量總體上隨邊緣節(jié)點(diǎn)En的數(shù)量增加呈現(xiàn)穩(wěn)定增長(zhǎng)趨勢(shì)。當(dāng)En的數(shù)量不超過(guò)2 時(shí),吞吐量增長(zhǎng)到350 TPS左右后便處于滯停狀態(tài),是因?yàn)殡S并發(fā)事務(wù)的增加系統(tǒng)處理能力出現(xiàn)不足,導(dǎo)致此時(shí)的吞吐量不再增加甚至出現(xiàn)下降情況。而En數(shù)為3 時(shí),En富余的算力提升了系統(tǒng)的計(jì)算能力,起到了負(fù)載均衡的作用。由3個(gè)En的線性擬合預(yù)測(cè)線知,吞吐量隨事務(wù)量的增加是呈線性增長(zhǎng)的。在負(fù)載條件、交易時(shí)間一致的情況下,1個(gè)En提交的最大事務(wù)數(shù)是63 588,吞吐量是354.5 TPS,而3個(gè)En時(shí)的最大事務(wù)數(shù)為104 648,此時(shí)吞吐量達(dá)到583.4 TPS,事務(wù)數(shù)及吞吐量約是1個(gè)En的1.7倍??梢?jiàn)集成邊緣計(jì)算的區(qū)塊鏈網(wǎng)絡(luò)可極大提升其性能。特別地,在多并發(fā)訪問(wèn)的場(chǎng)景中,可通過(guò)增加En數(shù)來(lái)保證跨域認(rèn)證效率與吞吐量。
圖7 吞吐量與Succ隨時(shí)間的變化關(guān)系Fig.7 Throughput versus Succ over time
通過(guò)已發(fā)布事務(wù)的完成時(shí)間,加上各節(jié)點(diǎn)對(duì)事務(wù)達(dá)成共識(shí)的時(shí)間來(lái)計(jì)算時(shí)延。在180 s 內(nèi)持續(xù)發(fā)起事務(wù),得到不同Edge 數(shù)下域內(nèi)和域間執(zhí)行事務(wù)的最大時(shí)延(max latency)。以域內(nèi)、域間的最大時(shí)延總和計(jì)算出其平均值,結(jié)果如圖8 所示。結(jié)果顯示,不同En數(shù)下的時(shí)延差距較大,En數(shù)為3 時(shí)的時(shí)延最低且保持穩(wěn)定。1個(gè)En時(shí),處理事務(wù)過(guò)程中的最大時(shí)延為2.19 s,平均時(shí)延為0.69 s。而En數(shù)為3時(shí)的最大時(shí)延和平均時(shí)延分別是0.10 s、0.05 s,相比En數(shù)為1時(shí),最大時(shí)延降低了95.43%,平均時(shí)延降低了92.75%??梢?jiàn)集成邊緣計(jì)算的區(qū)塊鏈網(wǎng)絡(luò)繼承了邊緣計(jì)算實(shí)時(shí)性的優(yōu)點(diǎn),可根據(jù)網(wǎng)絡(luò)規(guī)模擴(kuò)展邊緣節(jié)點(diǎn)數(shù)以滿足實(shí)際應(yīng)用的實(shí)時(shí)性需求。
圖8 不同Edge數(shù)的最大時(shí)延情況Fig.8 Maximum latency for different number of edge
在交易時(shí)間txDuration 為180 s時(shí),修改測(cè)試并發(fā)交易數(shù)txNumber 分別為1 000、2 000、5 000,測(cè)試工作節(jié)點(diǎn)Node1 在主從鏈、單鏈環(huán)境下的CPU 占用情況與內(nèi)存使用情況,如表5 所示。可觀察到主從鏈工作過(guò)程中Node1 的CPU 占有率較低,內(nèi)存使用較小,整體上其資源開(kāi)銷較單鏈環(huán)境降低了50%左右??梢?jiàn)主從鏈環(huán)境下的資源復(fù)用情況良好,CPU 利用率較高。原因是主鏈節(jié)點(diǎn)Node0 分擔(dān)了工作節(jié)點(diǎn)Node1 的部分資源壓力,提高了事務(wù)處理的效率,釋放了一定的系統(tǒng)資源。因此,同一時(shí)間下,Node1 的CPU 占比較低。
表5 單鏈與主從鏈存儲(chǔ)開(kāi)銷對(duì)比Table 5 Single chain versus master-slave chain storage overhead
工作節(jié)點(diǎn)在不同邊緣節(jié)點(diǎn)數(shù)下的CPU 占用、內(nèi)存使用情況如圖9 所示。3個(gè)En下CPU 利用率穩(wěn)定在27%左右,需要的平均內(nèi)存為55 MB,相比1個(gè)En時(shí)有大幅度的降低。即使同一時(shí)間內(nèi)3個(gè)En處理的事務(wù)是1個(gè)En的兩倍,但其CPU 占用、內(nèi)存使用情況是1個(gè)En的50%。其原因是3 個(gè)邊緣節(jié)點(diǎn)較1 個(gè)邊緣節(jié)點(diǎn)可提供更多的系統(tǒng)資源,且分擔(dān)了更多的存儲(chǔ)壓力,有效地均衡工作節(jié)點(diǎn)的負(fù)載。此外,同一時(shí)間下,多節(jié)點(diǎn)環(huán)境會(huì)釋放更多的系統(tǒng)資源,提升了系統(tǒng)資源復(fù)用率。因此,基于多邊緣節(jié)點(diǎn)部署的主從鏈環(huán)境可實(shí)現(xiàn)較高的資源利用率,總體可擴(kuò)展性更強(qiáng)。
圖9 不同Edge數(shù)下的CPU 及內(nèi)存占用情況Fig.9 CPU and memory usage under different number of edge
Jiang 等人[13]基于公證機(jī)制提出了交互式的跨域框架以管理數(shù)據(jù)。針對(duì)隱私保護(hù)問(wèn)題提出了一種數(shù)據(jù)訪問(wèn)控制模型,并設(shè)計(jì)了一種特定的事務(wù)類型,以提供對(duì)不同鏈和節(jié)點(diǎn)的數(shù)據(jù)的細(xì)粒度訪問(wèn)控制。該方案的隱私訪問(wèn)控制方案只能保證物聯(lián)網(wǎng)數(shù)據(jù)的隱私保護(hù),未考慮到交易中涉及的用戶信息的隱私保護(hù),且適用于資源較少的物聯(lián)網(wǎng)應(yīng)用場(chǎng)景。本文方案將模型部署在大規(guī)模的物聯(lián)網(wǎng)場(chǎng)景下,且考慮交易過(guò)程中的隱私保護(hù),將其進(jìn)行比較,在應(yīng)用擴(kuò)展及隱私保護(hù)上有重要意義。Zhang 等人[24]為了解決底層密碼學(xué)基礎(chǔ)導(dǎo)致的“不完全跨域”問(wèn)題,提出了一種“徹底”的跨域認(rèn)證方案,以供來(lái)自不同域、不同設(shè)置的參與域使用。其有效解決了跨域通信中的實(shí)體認(rèn)證問(wèn)題,且給出了域內(nèi)、域間認(rèn)證流程。與其對(duì)比時(shí)延、TPS 等性能指標(biāo),在相同仿真環(huán)境下,本文方案雖增加了隱私數(shù)據(jù)集合、ECC 等復(fù)雜的認(rèn)證流程,但其性能指標(biāo)未有明顯下降。它們代表了區(qū)塊鏈在數(shù)據(jù)隱私保護(hù)、可信跨域研究的兩個(gè)重要方向,本文與之進(jìn)行比較,有較強(qiáng)的可參考性。
4.5.1 與其他方案的吞吐量對(duì)比
文獻(xiàn)[13]測(cè)試了不同內(nèi)存條件時(shí)的跨鏈吞吐量。在4 GB 內(nèi)存、4 GHz 內(nèi)核及交易數(shù)txNumber 為6 000 時(shí),對(duì)跨域訪問(wèn)行為進(jìn)行仿真,與本文TPS 對(duì)比結(jié)果如圖10 所示。當(dāng)其發(fā)送速率(sending rate)到達(dá)500 TPS 左右后,吞吐量開(kāi)始跟不上發(fā)送速率。而發(fā)送速率為1 332 TPS 時(shí),吞吐量只有645 TPS,發(fā)送速率與吞吐量的比值約為2∶1。而本文方案中吞吐量隨發(fā)送速率的增加呈線性增長(zhǎng),且在測(cè)試范圍內(nèi)發(fā)送速率與吞吐量的比值始終為1∶1。較文獻(xiàn)[13]而言,可獲得更高的吞吐量。
圖10 本文方案與文獻(xiàn)[13]的吞吐量對(duì)比Fig.10 Throughput comparison of our scheme and ref.[13]
在6 個(gè)peer 下進(jìn)行跨域查詢Invoke 和域內(nèi)查詢Query 操作,與文獻(xiàn)[24]進(jìn)行比較,結(jié)果如圖11 所示。在域間Invoke 操作時(shí),文獻(xiàn)[24]發(fā)送速率不超過(guò)30 TPS,吞吐量呈線性增加,發(fā)送速率繼續(xù)增加超過(guò)30 TPS 后,吞吐量開(kāi)始表現(xiàn)出瓶頸,到達(dá)最大值34 TPS 左右后趨于穩(wěn)定。此時(shí),系統(tǒng)性能已不足以處理更多的事務(wù)。當(dāng)發(fā)送速率為100 TPS 時(shí),與吞吐量的比值為3∶1。其域內(nèi)Query操作吞吐量與發(fā)送速率的比值是1∶1,呈線性關(guān)系。對(duì)比本文方案,Invoke、Query 操作的吞吐量始終隨發(fā)送速率增加呈線性增長(zhǎng),發(fā)送速率與吞吐量均接近1∶1。對(duì)比文獻(xiàn)[24],本文方案在跨域工作上處理事務(wù)的效率更高,整體性能更占優(yōu)勢(shì)。
圖11 本文方案與文獻(xiàn)[24]的吞吐量對(duì)比Fig.11 Throughput comparison of our scheme and ref.[24]
本文在Jiang 等人[13]、Zhang 等人[24]方案的基礎(chǔ)上實(shí)現(xiàn)了高效交互式的跨域訪問(wèn)控制。且較兩者有更穩(wěn)定的發(fā)送速率與吞吐量,結(jié)果符合預(yù)期目標(biāo)。
4.5.2 與其他方案的時(shí)延對(duì)比
一定發(fā)送速率下各方案的時(shí)延情況如表6 所示。可觀察到不管域內(nèi)或是域間,本文方案下的時(shí)延均是三者中最小。即使是在通信復(fù)雜的跨域場(chǎng)景,本文獲得毫秒級(jí)別的時(shí)延,相對(duì)文獻(xiàn)[13]、文獻(xiàn)[24]的方案,有較明顯的優(yōu)勢(shì),更適用于對(duì)時(shí)延敏感的物聯(lián)網(wǎng)應(yīng)用。
表6 一定發(fā)送率下的各方案時(shí)延對(duì)比Table 6 Comparison of delay of each scheme at certain transmission rate
4.5.3 與其他方案的資源開(kāi)銷對(duì)比
在4 GB內(nèi)存和4 GHz內(nèi)核配置下,評(píng)估各方案的資源開(kāi)銷情況。在交易測(cè)試時(shí)間txDuration 為180 s、并發(fā)交易數(shù)txNumber 為6 000 時(shí),對(duì)各方案進(jìn)行仿真得到工作節(jié)點(diǎn)CPU 平均占用值與內(nèi)存平均使用值,如表7 所示。從資源復(fù)用情況來(lái)看,Jiang 等人[13]、Zhang 等人[24]方案不宜在資源有限的物聯(lián)網(wǎng)設(shè)備中部署,而本文基于主從鏈結(jié)構(gòu)部署的方案,在并發(fā)交易量較大時(shí),其CPU 占比及內(nèi)存使用情況良好,可在大型物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中部署。
表7 資源開(kāi)銷情況對(duì)比Table 7 Comparison of resource overhead
區(qū)塊鏈作為安全技術(shù)代表有望打開(kāi)制約邊緣計(jì)算發(fā)展的束縛,但因計(jì)算效率低、共識(shí)能耗高等擴(kuò)展性瓶頸,使得其不能在解決邊緣計(jì)算安全問(wèn)題時(shí)發(fā)揮最大作用。因此本文設(shè)計(jì)了主從多鏈結(jié)構(gòu),并集成邊緣計(jì)算構(gòu)建了分布式安全的可信認(rèn)證模型,即域間訪問(wèn)控制模型(ID-RBAC),有效解決了數(shù)據(jù)孤島的問(wèn)題。同時(shí)細(xì)粒度的訪問(wèn)控制方法避免了越權(quán)訪問(wèn)數(shù)據(jù)、過(guò)度授權(quán)等情況。最后通過(guò)實(shí)驗(yàn)對(duì)模型的安全性、穩(wěn)定性做出了評(píng)估,并證明了邊緣計(jì)算與區(qū)塊鏈的結(jié)合有互補(bǔ)性。即邊緣計(jì)算為區(qū)塊鏈提供存儲(chǔ)、計(jì)算能力,區(qū)塊鏈為邊緣計(jì)算提供安全的審計(jì)功能。相比現(xiàn)有方法,本文方案具有更好的擴(kuò)展性,性能更優(yōu),符合現(xiàn)下環(huán)境的服務(wù)需求。
對(duì)于未來(lái)工作,考慮擴(kuò)大實(shí)驗(yàn)規(guī)模并優(yōu)化區(qū)塊鏈的共識(shí)算法,為區(qū)塊鏈網(wǎng)絡(luò)創(chuàng)造一個(gè)較現(xiàn)有方案更高性能、更低延時(shí)及更高帶寬的電信級(jí)服務(wù)環(huán)境。同時(shí)為進(jìn)一步提高訪問(wèn)控制效率,可以嘗試與隱私計(jì)算等技術(shù)結(jié)合起來(lái),優(yōu)化跨域訪問(wèn)控制模型。