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