黃苗,徐庭銳,劉洋廷,張媛媛
(1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.四川虹微技術(shù)有限公司,成都610000)
物聯(lián)網(wǎng)與人類的生產(chǎn)、生活越來越密不可分,其普遍具有大規(guī)模、設(shè)備資源有限、異構(gòu)等特點(diǎn)。特別是在工業(yè)領(lǐng)域,為了發(fā)掘異地、異構(gòu)、異主的數(shù)據(jù)所蘊(yùn)含的巨大價(jià)值,需要為數(shù)據(jù)提供聯(lián)通的平臺(tái)和訪問的接口。而保證數(shù)據(jù)的安全和隱私是當(dāng)前物聯(lián)網(wǎng)面臨的兩大挑戰(zhàn)。訪問控制是通過監(jiān)控訪問記錄,制定訪問權(quán)限和規(guī)則,訪問權(quán)限的授予和取消等決策實(shí)現(xiàn)信息開放并且保證數(shù)據(jù)安全性的一種重要技術(shù)手段。傳統(tǒng)上多采用基于中心權(quán)威機(jī)構(gòu)的訪問控制方案,但這種方案會(huì)造成服務(wù)器性能瓶頸和遭受單點(diǎn)故障。智能合約基于去中心化的區(qū)塊鏈網(wǎng)絡(luò),可事先定義一組狀態(tài)和規(guī)則,并在滿足規(guī)則后強(qiáng)制自動(dòng)執(zhí)行的計(jì)算機(jī)代碼。以太坊創(chuàng)建之初便是以提供一個(gè)可編程的區(qū)塊鏈應(yīng)用平臺(tái),這也是其與比特幣最主要的區(qū)別。隨著以太坊智能合約的發(fā)展和成熟,新的訪問控制方案也多基于以太坊智能合約進(jìn)行對(duì)方案進(jìn)行實(shí)現(xiàn)和驗(yàn)證。
訪問控制的目的在于避免非授權(quán)用戶訪問操作權(quán)限受限的資源或者授權(quán)用戶執(zhí)行非權(quán)限范圍內(nèi)的操作。訪問控制涉及的基本概念包括主體(subject)、客體(object)、操作(operation)、環(huán)境(condition)。主體即請(qǐng)求訪問資源以執(zhí)行某種操作的用戶??腕w即主體請(qǐng)求訪問的資源,包括文件、應(yīng)用、服務(wù)器、API 等。操作指的是主體想對(duì)客體執(zhí)行的動(dòng)作,常見的操作包括讀、寫、執(zhí)行、修改、復(fù)制、刪除等。環(huán)境指每一次訪問請(qǐng)求的上下文信息,例如訪問的時(shí)間、地點(diǎn)、通信協(xié)議、通信加密方式等。新型的去中心化的訪問控制方案分為下面對(duì)本文介紹的研究工作涉及到的兩個(gè)經(jīng)典訪問控制模型進(jìn)行簡(jiǎn)單的介紹。
(1)基于屬性的訪問控制(Attribute-Based Access Control,ABAC)
也稱為基于規(guī)則的訪問控制(Policy-Based Access Control,PBAC),基于這種模型的訪問控制方案由主體、客體、操作和環(huán)境的屬性集確定主體對(duì)資源的訪問權(quán)限。其中主體的屬性包括ID、角色、組別、部門、級(jí)別、組織或公司等??腕w的屬性包括創(chuàng)建時(shí)間、資源擁有者、資源密級(jí)、資源類型等。這種模型支持使用自然語言描述訪問規(guī)則,例如,工廠車間管理員可以讀取生產(chǎn)設(shè)備數(shù)據(jù)。如果需要修改訪問權(quán)限,只需要修改相關(guān)屬性值。具備靈活、可擴(kuò)展等優(yōu)點(diǎn),適用于物聯(lián)網(wǎng)大規(guī)模應(yīng)用場(chǎng)景。
(2)基于權(quán)能的訪問控制(Capability-Based Access Control,CapBAC)
權(quán)能實(shí)質(zhì)是一個(gè)訪問主體持有的其可訪問的客體及對(duì)應(yīng)授權(quán)操作的數(shù)據(jù)結(jié)構(gòu),可以類比為令牌、門票、鑰匙。這種權(quán)能憑證(capability token)的一個(gè)重要特性是可轉(zhuǎn)移(transferable)以及可代理(delegable),無需通過中心實(shí)體的認(rèn)證,即一個(gè)主體的訪問權(quán)能可由一個(gè)主體自由轉(zhuǎn)移或授予另一個(gè)主體?;跈?quán)能的訪問控制方法需要保證權(quán)能不可被篡改,否則可能對(duì)訪問客體進(jìn)行未授權(quán)操作,危害客體信息安全。保證憑證不被篡改的方式主要有兩種,一是將保存權(quán)能的數(shù)據(jù)結(jié)構(gòu)保存在安全的位置,二是加密校驗(yàn)和(例如數(shù)字簽名)。另外,憑證也存在被復(fù)制的風(fēng)險(xiǎn)。
在比特幣最初由中本聰提出于2008 年提出,并于2009 年開發(fā)實(shí)現(xiàn),而區(qū)塊鏈則是比特幣的底層技術(shù)。區(qū)塊鏈(Blockchain)是一種不依賴中心權(quán)威機(jī)構(gòu)的由多方共同維護(hù),使用密碼學(xué)保證傳輸和訪問安全,能夠?qū)崿F(xiàn)數(shù)據(jù)一致存儲(chǔ)、難以篡改、防止抵賴的記賬技術(shù)[1]。所謂區(qū)塊實(shí)際上是包含特定字段的文字記錄。每個(gè)區(qū)塊間通過指向前一個(gè)區(qū)塊的散列值串聯(lián)成一個(gè)鏈條。每個(gè)加入?yún)^(qū)塊鏈網(wǎng)絡(luò)的節(jié)點(diǎn)都擁有一條完整的區(qū)塊鏈,參與即區(qū)塊鏈中的數(shù)據(jù)記錄對(duì)所有節(jié)點(diǎn)公開。區(qū)塊鏈?zhǔn)褂霉沧R(shí)機(jī)制對(duì)在差不多時(shí)間內(nèi)的發(fā)生的事務(wù)(即一條文字記錄,transaction)進(jìn)行共識(shí),從而保證在不同節(jié)點(diǎn)的數(shù)據(jù)一致性。
以太坊的概念最初由Vitalik Buterin 于2013 年提出,該平臺(tái)有類似比特幣的數(shù)字貨幣以太(ether),但其最重要的技術(shù)貢獻(xiàn)在于支持存儲(chǔ)在區(qū)塊鏈上的智能合約的開發(fā)。智能合約是一種可自動(dòng)執(zhí)行的計(jì)算機(jī)程序,即函數(shù)和狀態(tài)的集合。因區(qū)塊鏈的不可篡改特性,智能合約一旦部署在區(qū)塊鏈網(wǎng)絡(luò)中便很難篡改,事務(wù)參與者可事先約定一定的規(guī)則和操作,智能合約可在滿足規(guī)則后強(qiáng)制執(zhí)行預(yù)定操作并發(fā)送相應(yīng)事務(wù)?;谝蕴煌晟频纳鷳B(tài)環(huán)境和用戶廣泛的接受度,近幾年基于區(qū)塊鏈的訪問控制研究主要基于以太坊智能合約進(jìn)行實(shí)驗(yàn)驗(yàn)證,因此本文調(diào)研了今年來影響力較大的基于以太坊智能合約的訪問控制機(jī)制?;趨^(qū)塊鏈的訪問控制方案具有不依賴第三方中心實(shí)體、可自主決策、資源擁有者可保持其資源所有權(quán)等優(yōu)點(diǎn)。
文獻(xiàn)[2]基于該作者之前的工作提出了一種訪問控制參考模型并設(shè)想并實(shí)現(xiàn)了一種新型訪問控制方案FairAccess。該方案基于訪問憑證引入了包括授予、獲取、代理和撤銷憑證四種事務(wù)類型。但是基于區(qū)塊鏈的事務(wù)機(jī)制也使得該方案不能滿足對(duì)實(shí)時(shí)性有要求的應(yīng)用場(chǎng)景,以比特幣的工作量共識(shí)機(jī)制為例,一條事務(wù)大概需要十分鐘的確認(rèn)時(shí)間。
文獻(xiàn)[3]提出一種基于區(qū)塊鏈的和CapBAC 模型的訪問控制方案BlendCAC。該方案提出一種支持多級(jí)憑證代理模型,探索了代理授權(quán)和撤回機(jī)制。同時(shí)基于智能合約提出了一種憑證生命周期管理策略,即實(shí)現(xiàn)了訪問控制憑證的生成、傳遞和撤銷函數(shù)。該方案的多級(jí)代理路徑呈樹形,同時(shí)其訪問憑證以主體為單位表示。
文獻(xiàn)[4]提出一種包含訪問控制合約(Access Control Contract,ACC),決策合約(Judge Contract,JC),注冊(cè)合約(Register Contract,RC)的訪問控制框架。其中每一個(gè)訪問控制合約都為一個(gè)主客體對(duì)提供一個(gè)訪問控制接口函數(shù),該函數(shù)可實(shí)現(xiàn)基于預(yù)定義訪問策略的靜態(tài)訪問權(quán)限驗(yàn)證以及通過檢測(cè)主體行為實(shí)現(xiàn)動(dòng)態(tài)訪問權(quán)限驗(yàn)證。JC 通過分析來自ACC 的異常行為報(bào)告生成判罰,輔助ACC 的動(dòng)態(tài)訪問權(quán)限驗(yàn)證。注冊(cè)合約用于注冊(cè)訪問控制和異常行為判罰函數(shù)及其智能合約的信息以及這些函數(shù)的生命周期(注冊(cè)、更新以及銷毀)函數(shù)。但該方案不具備訪問代理功能,不適合對(duì)靈活性要求較高的場(chǎng)景。
文獻(xiàn)[5]是文獻(xiàn)[3]的改進(jìn)方案。不同于文獻(xiàn)[3]以主體為單位創(chuàng)建機(jī)能憑證(capability token),該方案以訪問操作為單位,以圖的形式表示代理路徑,實(shí)現(xiàn)了更加細(xì)粒度且靈活的憑證代理機(jī)制。除了憑證代理函數(shù),該方案還實(shí)現(xiàn)了如憑證創(chuàng)建、撤銷和驗(yàn)證的基于權(quán)能的訪問控制的主要函數(shù)。但該方案中,憑證明文存儲(chǔ)于區(qū)塊鏈中且未對(duì)憑證進(jìn)行加密,存在嚴(yán)重的安全隱患。
文獻(xiàn)[6]提出了一種結(jié)合區(qū)塊鏈的新的分布式架構(gòu),該架構(gòu)包含無線傳感網(wǎng)、管理員、代理節(jié)點(diǎn)、智能合約、區(qū)塊鏈網(wǎng)絡(luò)、管理中心節(jié)點(diǎn)六部分。考慮到大多數(shù)物聯(lián)網(wǎng)設(shè)備資源有限的特性,該架構(gòu)引入?yún)^(qū)塊鏈網(wǎng)絡(luò)以外(加入?yún)^(qū)塊鏈的節(jié)點(diǎn)都擁有一份完整的數(shù)據(jù)拷貝)的管理中心節(jié)點(diǎn)作為無線傳感網(wǎng)和區(qū)塊鏈網(wǎng)絡(luò)的中間節(jié)點(diǎn)。該方案的區(qū)塊鏈網(wǎng)絡(luò)共享一個(gè)不可刪除的智能合約,該合約定義了所有允許的操作。該方案有輕量(無須修改物聯(lián)網(wǎng)設(shè)備)、可擴(kuò)展性強(qiáng)、透明(隱藏了物聯(lián)網(wǎng)設(shè)備地址)、可并發(fā)修改訪問規(guī)則等優(yōu)點(diǎn),但因規(guī)則的創(chuàng)建、撤銷等操作都基于區(qū)塊鏈的事務(wù),無法滿足實(shí)時(shí)要求較高的場(chǎng)景。
訪問控制是物聯(lián)網(wǎng)場(chǎng)景下對(duì)數(shù)據(jù)開放同時(shí)保護(hù)數(shù)據(jù)安全和隱私的一種重要技術(shù)。近幾年的研究重心在于如何應(yīng)對(duì)傳統(tǒng)集中式訪問控制的性能和安全問題。區(qū)塊鏈作為支撐區(qū)塊鏈的基礎(chǔ)設(shè)施經(jīng)過了時(shí)間的檢驗(yàn),越來越多的科研工作者開始探索使用區(qū)塊鏈技術(shù)實(shí)現(xiàn)去中心化的應(yīng)用。本文首先對(duì)訪問控制作了基本概述,然后對(duì)區(qū)塊鏈和智能合約作了簡(jiǎn)單的介紹,最后對(duì)于最新的五篇基于智能合約的訪問控制方案的工作作了進(jìn)行粗略的介紹和分析。