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