国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

物聯(lián)網(wǎng)下的區(qū)塊鏈訪問控制綜述*

2019-07-08 08:54史錦山
軟件學報 2019年6期
關鍵詞:動態(tài)性訪問控制控制策略

史錦山, 李 茹

1(內蒙古大學 計算機學院,內蒙古 呼和浩特 010021)

2(內蒙古自治區(qū)無線網(wǎng)絡與移動計算重點實驗室(內蒙古大學),內蒙古 呼和浩特 010021)

自1999年麻省理工學院Ashton教授首次提出物聯(lián)網(wǎng)概念發(fā)展至今,物聯(lián)網(wǎng)已經(jīng)可以實現(xiàn)物與物、物與人、人與人之間在任何時候、任何地點的有效連接.物聯(lián)網(wǎng)中會產(chǎn)生海量的數(shù)據(jù),其中具有大量的個人隱私,這些隱私信息一旦泄漏,會給用戶帶來巨大的損失.作為數(shù)據(jù)保護的基石性技術之一,訪問控制可保障數(shù)據(jù)僅能被擁有相應權限的用戶訪問[1].因此,物聯(lián)網(wǎng)下的訪問控制機制也就成為了物聯(lián)網(wǎng)安全和隱私保護的重要研究內容之一.

隨著物聯(lián)網(wǎng)技術和應用的不斷發(fā)展,物聯(lián)網(wǎng)從早期依托射頻識別(radio frequency identification,簡稱RFID)技術的物流網(wǎng)絡發(fā)展到目前萬物皆可連的“智慧地球”,物聯(lián)網(wǎng)環(huán)境下的訪問控制也隨之不斷發(fā)展.主要的訪問控制方法有:基于角色的訪問控制(role-based access control,簡稱 RBAC)[2-5]、基于屬性的訪問控制(attributes based access control,簡稱ABAC)[6-11]、基于使用控制模型(usage control,簡稱UCON)的訪問控制[12-15]和基于權能的訪問控制(capability-based access control,簡稱CapBAC)[16-20]等.

RBAC在物聯(lián)網(wǎng)概念出現(xiàn)之前已經(jīng)被提出,最初是為了解決大型企業(yè)級系統(tǒng)的訪問控制問題.RBAC將角色和一組權限關聯(lián)在一起,用戶根據(jù)系統(tǒng)所賦予的角色獲取相應的權限.隨著物聯(lián)網(wǎng)的發(fā)展,學者們將RBAC用于物聯(lián)網(wǎng)中的訪問控制中,可支持物聯(lián)網(wǎng)環(huán)境的可擴展性[21]、跨域訪問控制[22]和設備異構[23,24]等特性.但是RBAC作為一種靜態(tài)的訪問控制方法,無法提前預設{用戶,角色}、{角色,權限}的對應關系,因此無法解決物聯(lián)網(wǎng)節(jié)點動態(tài)接入的問題.ABAC是一種動態(tài)的訪問控制模型,與RBAC需要管理者提前預設{角色,權限}等對應關系不同,ABAC使用屬性作為訪問控制的關鍵要素,而屬性是主體和客體內在固有的,通過實體屬性發(fā)現(xiàn)機制可以挖掘出獨立、完備的主體、客體等的屬性集合,因此不需要管理者手工輸入,然后通過自動化的屬性-權限關聯(lián)關系發(fā)現(xiàn)機制可以快速挖掘出{屬性,權限}.因此,ABAC不僅可以解決物聯(lián)網(wǎng)中節(jié)點的動態(tài)接入問題,而且對于節(jié)點移動和訪問數(shù)據(jù)變化帶來的動態(tài)性也可以完美解決.物聯(lián)網(wǎng)下的ABAC考慮了節(jié)點輕量級[7,10]、動態(tài)性[8]的物聯(lián)網(wǎng)特性做出了局部改進.在物聯(lián)網(wǎng)中實現(xiàn)訪問控制,不僅需要考慮節(jié)點的動態(tài)接入問題,還需要考慮訪問過程中節(jié)點屬性的可變性問題.而UCON不僅解決了節(jié)點動態(tài)接入問題[14],而且還在訪問控制過程中考慮了連續(xù)性和可變性兩個重要屬性[15].連續(xù)性體現(xiàn)在訪問控制會對請求者訪問資源的整體過程進行實時監(jiān)控,可以隨時撤銷其資源使用權限;可變性是指屬性在訪問控制過程中是可變的,在UCON中,一般將屬性分為不變屬性和可變屬性兩種,其中,可變屬性會隨著環(huán)境和行為等的變化而改變.

上述RBAC,ABAC和UCON這3個訪問控制模型都由一個集中式的授權決策實體依據(jù)訪問控制策略和其他屬性信息進行訪問控制決策,即以上方法均是引入中央可信實體的概念構建的.隨著物聯(lián)網(wǎng)在生活領域的深入應用,用戶對數(shù)據(jù)隱私和個人隱私信息的保護提出了更高的要求.但是每個訪問請求都指向同一個中央可信實體,由中央可信實體保存所有信息,并依據(jù)所保存的信息完成所有決策.這本身就是技術層面的不安全,需要依賴技術之外的法律層面來保障安全.而近年頻出的隱私泄露事件,如韓國三大信用卡公司信息泄露事件、蘋果iCloud云端系統(tǒng)漏洞風波等,都對中央可信實體的可信度提出了質疑.

RBAC,ABAC和UCON這3種方法都需要一個集中式的服務器來完成授權決策,而CapBAC在物聯(lián)網(wǎng)環(huán)境中已經(jīng)實現(xiàn)了輕量級[18]的分布式[16,18,19]的訪問控制,而且支持動態(tài)性[17,20]和可擴展性[17,20].雖然 CapBAC分布式的設計避免了使用集中式服務器所帶來的單點故障問題,但是 CapBAC在物聯(lián)網(wǎng)中輕量級的設備上實現(xiàn)分布式的訪問控制決策時,輕量級設備并不能保證自己的安全性,有可能會被攻擊者通過安全性薄弱的物聯(lián)網(wǎng)設備作為突破口威脅到訪問控制的安全,因此,分布式CapBAC無法解決在不可信環(huán)境下的物聯(lián)網(wǎng)訪問控制.

區(qū)塊鏈是一種去中心化的分布式技術,是一種以密碼學算法為基礎的點對點分布式賬本技術,是一種互聯(lián)網(wǎng)上的共享數(shù)據(jù)庫技術.區(qū)塊鏈從技術上解決了基于信任的中心化模型帶來的安全問題,它基于密碼學算法保證價值的安全轉移,基于哈希鏈及時間戳機制保證數(shù)據(jù)的可追溯、不可篡改特性,基于共識算法保證節(jié)點間區(qū)塊數(shù)據(jù)的一致性,基于自動化的腳本代碼和圖靈完備的虛擬機保證可編程的智能合約.2015年,區(qū)塊鏈技術從金融領域擴展到物聯(lián)網(wǎng)領域.主要的應用之一就是用于物聯(lián)網(wǎng)訪問控制,代替物聯(lián)網(wǎng)訪問控制的中央可信實體.

當將區(qū)塊鏈技術與物聯(lián)網(wǎng)相結合時,訪問控制作為物聯(lián)網(wǎng)數(shù)據(jù)保護的關鍵技術之一,成為了主要的結合領域.目前有兩種結合方式:一種是區(qū)塊鏈技術與現(xiàn)有的物聯(lián)網(wǎng)訪問控制模型結合,區(qū)塊鏈充當現(xiàn)有訪問控制模型的可信實體,目前主要的研究見表1,包括區(qū)塊鏈與RBAC模型結合[25]、區(qū)塊鏈與ABAC模型結合[26-28]和區(qū)塊鏈與 CapBAC結合[29-31]以及其他物聯(lián)網(wǎng)場景下模型的結合[32,33];另一種是提出一種新的完全基于區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制模型,區(qū)塊鏈作為可信實體的同時,基于區(qū)塊鏈的特性設計了基于交易或者智能合約的訪問控制方法,見表 2,按照區(qū)塊鏈架構的不同可以分為基于比特幣區(qū)塊鏈改進的訪問控制模型[34-37]和基于以太坊區(qū)塊鏈的具有智能合約的訪問控制模型[38-40].

Table 1 Research on integrating blockchain into existing access control model表1 將區(qū)塊鏈融入現(xiàn)有訪問控制模型的研究

Table 2 New access control model based entirely on blockchain表2 基于區(qū)塊鏈提出的訪問控制模型

物聯(lián)網(wǎng)環(huán)境下的訪問控制需要考慮以下的問題.

物聯(lián)網(wǎng)終端節(jié)點設備輕量級的問題.物聯(lián)網(wǎng)終端設備的計算和存儲能力一般較弱,而且這些計算和存儲能力主要是為物聯(lián)網(wǎng)設備自身功能服務,無法存儲大量數(shù)據(jù)和進行大計算量任務,甚至有些傳感器節(jié)點沒有存儲和計算能力;物聯(lián)網(wǎng)海量終端節(jié)點的問題.物聯(lián)網(wǎng)中具有大量終端節(jié)點,隨之而來的還有終端節(jié)點種類和其產(chǎn)生的數(shù)據(jù)較多的問題;物聯(lián)網(wǎng)動態(tài)性的問題.部分物聯(lián)網(wǎng)終端節(jié)點具有移動性,因此需要考慮節(jié)點移動性和節(jié)點動態(tài)接入的問題.

下文將從這 3個方面來分析物聯(lián)網(wǎng)訪問控制在沒有使用區(qū)塊鏈時是如何解決這些問題,以及使用區(qū)塊鏈后如何解決這3個問題.

本文接下來的部分按如下組織:第1節(jié)從區(qū)塊鏈的概念以及發(fā)展演進、區(qū)塊鏈的鏈式結構、區(qū)塊結構和共識機制這 4個方面介紹區(qū)塊鏈技術.第 2節(jié)從物聯(lián)網(wǎng)終端節(jié)點設備輕量級的角度,總結物聯(lián)網(wǎng)訪問控制在沒有使用區(qū)塊鏈時是如何解決這些問題,使用區(qū)塊鏈后如何解決該問題.第 3節(jié)從物聯(lián)網(wǎng)海量終端節(jié)點的角度總結了物聯(lián)網(wǎng)訪問控制在沒有使用區(qū)塊鏈時是如何解決節(jié)點數(shù)量龐大所帶來的一系列問題,使用區(qū)塊鏈后如何解決這些問題.第 4節(jié)從物聯(lián)網(wǎng)動態(tài)性的角度總結了物聯(lián)網(wǎng)訪問控制在沒有使用區(qū)塊鏈時各個模型解決動態(tài)性的方法和側重點以及使用區(qū)塊鏈后如何解決動態(tài)性問題.第 5節(jié)根據(jù)現(xiàn)有的研究提出了兩類基于區(qū)塊鏈的訪問控制模型,然后對全文進行總結,并討論了基于區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制在未來的發(fā)展中將面臨的問題.

1 區(qū)塊鏈概述

1.1 區(qū)塊鏈概念以及發(fā)展演進

區(qū)塊鏈最初作為比特幣的底層記賬系統(tǒng)而被人熟知,直到2015年,區(qū)塊鏈才作為一個單獨的概念被研究者關注.區(qū)塊鏈并不單純指其鏈式的數(shù)據(jù)結構,而是包括P2P網(wǎng)絡技術、共識機制[43]、密碼學技術、鏈上腳本[44-46]等一系列技術結合后的產(chǎn)物.雖然區(qū)塊鏈目前并沒有形成統(tǒng)一的定義,但是可以通過區(qū)塊鏈的發(fā)展演進來理解區(qū)塊鏈.

如圖1(a)所示,區(qū)塊鏈起源于2008年中本聰發(fā)表的論文[47],當時的區(qū)塊鏈是一種能在互不信任或者弱信任的參與者之間維持一套不可篡改的去中心化的分布式記賬系統(tǒng),主要用于金融領域[48].學術界將其命名為區(qū)塊鏈 1.0,主要用于數(shù)字貨幣中.其主要特征是:(1) 建立了以區(qū)塊為單位的鏈狀數(shù)據(jù)結構;(2) 全網(wǎng)共享賬本;(3) 非對稱加密;(4) 源代碼開源.基于以上特征,區(qū)塊鏈具有了賬本公開透明、可追蹤、不可篡改的性質.

隨著研究者對區(qū)塊鏈的思考與探索,2013年末,以太坊的概念被Buterin提出,2014年成立了以太坊基金會并創(chuàng)建了以太坊項目.以太坊的出現(xiàn),標志著進入?yún)^(qū)塊鏈2.0時代.區(qū)塊鏈2.0中,區(qū)塊鏈可以被看做一種分布式、去中心化的計算與存儲架構.技術架構如圖1(b)所示,區(qū)塊鏈2.0的主要特征有:(1) 智能合約;(2) DAPP;(3) 虛擬機.區(qū)塊鏈2.0將區(qū)塊鏈的應用范圍擴展到金融領域之外,使其不僅僅是一個賬本,而是具有了可觀的計算能力.

1.2 區(qū)塊鏈的鏈式結構

區(qū)塊鏈的數(shù)據(jù)結構是以區(qū)塊為單位的交易通過密碼學算法連接起來的鏈狀數(shù)據(jù)結構.如圖 2所示,區(qū)塊分為區(qū)塊頭和區(qū)塊體,通過區(qū)塊頭中封裝的前一個區(qū)塊的哈希值將區(qū)塊鏈接起來形成一個鏈式結構.一個區(qū)塊的改變會導致鏈在其后的所有區(qū)塊的改變,因此區(qū)塊鏈不可篡改,并且可追蹤和保證安全.

1.3 區(qū)塊內部結構

以圖2的比特幣區(qū)塊為例,區(qū)塊頭中封裝了塊高度、時間戳、塊哈希、前一個塊的哈希、Merkle根等數(shù)據(jù),區(qū)塊體中存儲著本區(qū)塊所有的交易信息.塊高度指明了該區(qū)塊在區(qū)塊鏈中的位置;時間戳為該區(qū)塊產(chǎn)生的時間;塊哈希為區(qū)塊頭的哈希值,比特幣中通過求解一定難度的哈希值來滿足工作量證明算法;Merkle根是一個哈希值,通過該區(qū)塊中的所有交易構成的Merkle樹的根.區(qū)塊體中存儲著本區(qū)塊中的所有交易數(shù)據(jù).

區(qū)塊是由挖礦節(jié)點構造的,挖礦節(jié)點首先會在區(qū)塊頭中填充版本、父哈希、Merkle根、時間戳、難度和Nonce這6個字段,其中:版本號、父哈希和難度在構造區(qū)塊時已經(jīng)確定;Merkle根需要將本區(qū)塊中所有的交易組成一個Merkle樹,然后在區(qū)塊頭中記錄Merkle根,當Merkle根生成后,區(qū)塊體也同時生成;時間戳是挖礦節(jié)點填充區(qū)塊頭字段時的時間,以 Unix紀元時間編碼;Nonce用來改變塊哈希的值,使其滿足難度目標,比特幣中挖礦就是不斷改變 Nonce來計算區(qū)塊頭的哈希值,直到找到一個哈希值滿足難度目標.當挖礦節(jié)點找到滿足難度的哈希值后,將該哈希值作為塊哈希填充到區(qū)塊頭中,這樣就生成了一個完整區(qū)塊,然后將該區(qū)塊發(fā)送給所有的鄰居節(jié)點.

隨著區(qū)塊鏈的發(fā)展,對區(qū)塊的功能提出了更多的要求.以太坊為了滿足智能合約的需求,對Merkle樹進行了改進,提出了Merkle Patricia樹作為數(shù)據(jù)組織形式[49,50].而且與比特幣保存一棵Merkle樹不同,以太坊保存了3棵Merkle Patricia樹,分別是狀態(tài)樹、交易樹和收據(jù)樹.其中:狀態(tài)樹用來記錄各個賬戶的狀態(tài),交易樹用來記錄交易內容,收據(jù)樹用來記錄每筆交易相應的收據(jù).區(qū)塊鏈根據(jù)需求和應用領域的不同,實現(xiàn)方式也不同,其區(qū)塊頭和區(qū)塊體中存儲的數(shù)據(jù)也會有區(qū)別.

1.4 共識機制

區(qū)塊鏈中的共識機制是為了解決區(qū)塊分布式存儲所產(chǎn)生的一致性問題,也就是拜占庭將軍問題.根據(jù)區(qū)塊鏈類型的不同,共識的環(huán)境和要求也不相同,所以使用的共識機制也各不相同.區(qū)塊鏈按照訪問和管理權限可以分為公有鏈、聯(lián)盟鏈和私有鏈等3類.下文將按照區(qū)塊鏈不同類型的特點來介紹各自類型下所使用的共識機制.

· 公有鏈中沒有中心化的官方組織及管理機構,參與的節(jié)點可自由進出網(wǎng)絡,讀寫數(shù)據(jù)的權限不受系統(tǒng)限制.公有鏈參與節(jié)點數(shù)量巨大,且對節(jié)點的信任度最低.典型的共識機制有工作量證明(proof of work,簡稱PoW)[51]、權益證明(proof of stake,簡稱PoS)和授權股份證明(delegated proof of stake,簡稱DPoS);

· 聯(lián)盟鏈是由若干機構聯(lián)合發(fā)起組成,僅限于聯(lián)盟成員參與,區(qū)塊鏈上的讀寫權限、參與記賬權限按聯(lián)盟規(guī)則來制定.聯(lián)盟鏈和公有鏈相比節(jié)點數(shù)量較少,且節(jié)點間有相當程度的信任.典型的共識機制有BFT(Byzantine fault tolerance)機制[52]和實用拜占庭容錯機制(practical Byzantine fault tolerance,簡稱PBFT)[53,54]等;

· 私有鏈是由私有組織自己建立,不同節(jié)點具有不同的權限.私有鏈假設參與節(jié)點不進行攻擊,進一步放

寬共識機制的假設條件.典型的共識機制有不考慮拜占庭故障的Paxos機制[55,56]及Raft機制.

在實際應用中,共識機制的選擇是根據(jù)區(qū)塊鏈應用的場景決定的,表 3為 3種類型區(qū)塊鏈中典型項目共識機制對比.以太坊針對礦池模式導致的算力集中問題而將PoW改進為Ethash;而螞蟻金服因為金融領域所需的高安全性而選擇了PBFT.

Table 3 Comparison of consensus mechanisms for blockchain projects表3 區(qū)塊鏈項目的共識機制對比

2 物聯(lián)網(wǎng)終端節(jié)點設備輕量級

物聯(lián)網(wǎng)中的終端設備如智能攝像頭、傳感器、可穿戴設備、智能家居、智能汽車等都有大小不一的計算和存儲能力,但這些計算和存儲能力主要是為物聯(lián)網(wǎng)設備自身的功能服務的,無法為訪問控制提供足夠的計算和存儲能力.因此,物聯(lián)網(wǎng)中的訪問控制多是將大數(shù)據(jù)量的計算和存儲放在資源受限的物聯(lián)網(wǎng)設備之外執(zhí)行.

2.1 未使用區(qū)塊鏈時的解決方法

物聯(lián)網(wǎng)環(huán)境下基于RBAC[21-24],ABAC[6-11]和UCON[12-15]的訪問控制模型在實現(xiàn)時都是由一個集中式的授權決策實體依據(jù)訪問控制策略和其他屬性信息進行訪問控制決策,其訪問控制中的計算和存儲主要通過集中式的服務器執(zhí)行.

· 在以RBAC為基礎的物聯(lián)網(wǎng)訪問控制中,需要計算和保存{用戶,角色}、{角色,權限}等大量信息,而物聯(lián)網(wǎng)設備的計算和存儲資源受限,無法承擔起訪問控制的需求,因此通過可信第三方服務器來維護和存儲{用戶,角色}、{角色,權限}信息;

· ABAC能夠有效地解決動態(tài)大規(guī)模環(huán)境下的細粒度訪問控制問題,是因為ABAC將主體和客體的屬性作為基本的決策要素,利用用戶所具有的屬性集合決定是否賦予其訪問權限,實現(xiàn)這一功能需要實體屬性發(fā)現(xiàn)機制、{屬性,權限}關聯(lián)關系發(fā)現(xiàn)機制、訪問控制策略描述機制、身份認證機制和權限實時更新機制等多種機制協(xié)同工作,因此所需的計算和存儲能力是輕量級的物聯(lián)網(wǎng)設備無法提供的,所以,以 ABAC為基礎的物聯(lián)網(wǎng)訪問控制需要利用第三方服務器挖掘和保存屬性集和{屬性,權限}關聯(lián)關系,通過{屬性,權限}來表達復雜的訪問控制規(guī)則,從而實現(xiàn)物聯(lián)網(wǎng)下的ABAC訪問控制;

· UCON包括主體、客體和權限這3個基本元素以及授權規(guī)則、義務和條件這3個與授權有關的元素,同時考慮了連續(xù)和可變屬性,實現(xiàn)這些功能所需的計算和存儲能力物聯(lián)網(wǎng)終端設備同樣無法負擔,所以需要由一個集中式的服務器為授權決策實體提供計算和存儲資源,然后依據(jù)訪問控制策略和其他屬性信息進行訪問控制決策.

上述這些訪問控制模型都有一個集中的實體用于訪問控制決策,考慮到集中式的實體是一個單點故障問題,隨后有學者提出使用分布式方法解決該問題,其中典型代表是物聯(lián)網(wǎng)環(huán)境下分布式的基于權能的訪問控制(distributed capability-based access control,簡稱DCapBAC)[57,58],利用物聯(lián)網(wǎng)設備組成的分布式平臺實現(xiàn)訪問控制.但是物聯(lián)網(wǎng)設備的計算和存儲能力較弱,很容易被惡意用戶攻擊,因此,單純的物聯(lián)網(wǎng)設備無法作為一個安全的決策實體[38].

綜上所述,物聯(lián)網(wǎng)設備無法為訪問控制提供足夠的計算和存儲資源,所以需要引入可信第三方來協(xié)助進行訪問控制,但是這個第三方機構的安全性卻無法保證.因此,物聯(lián)網(wǎng)訪問控制需要一個完全可信的第三方機構來提供存儲和計算能力.

2.2 使用區(qū)塊鏈后的解決方法

由于區(qū)塊鏈自身具有可以在假定參與者都不是可信的情況下在技術層面迫使所有參與者遵守誠信,而且具有不可篡改性和隱私保護性,所以區(qū)塊鏈可以成為物聯(lián)網(wǎng)訪問控制中可信第三方的角色,為訪問控制提供一個可信的環(huán)境.區(qū)塊鏈在物聯(lián)網(wǎng)訪問控制中作為可信平臺,為物聯(lián)網(wǎng)訪問控制提供了計算和存儲兩種能力.目前,研究者們對區(qū)塊鏈計算和存儲的使用方法各有不同,有的側重于使用區(qū)塊鏈的存儲能力,有的側重于利用區(qū)塊鏈的計算能力,更多的是同時使用計算和存儲能力.

(1) 區(qū)塊鏈提供可信存儲

有研究者側重于使用區(qū)塊鏈的可靠存儲能力,利用區(qū)塊鏈不可篡改和可審計等功能為訪問控制提供一個安全的存儲空間.目前,使用區(qū)塊鏈存儲能力的方法主要可以分為3類.

· 第1類是利用區(qū)塊鏈存儲訪問控制策略,具體的研究有:Dorri等人將區(qū)塊鏈用于存儲訪問控制策略,同時利用區(qū)塊鏈不可篡改的特性生成一個時間順序的不可變的事務歷史[36];Alansari將區(qū)塊鏈用于存儲訪問控制策略的同時還存儲了用戶屬性,其計算密集的部分放在鏈外在安全硬件Intel SGX中執(zhí)行,區(qū)塊鏈僅作為可信平臺防止數(shù)據(jù)被篡改[26,27];Di Francesco等人也是將區(qū)塊鏈用于保存訪問控制策略,同時考慮到區(qū)塊鏈上的每一個塊生成后都不能刪除,會對網(wǎng)絡照成永久的負擔,因此還提出了一種自定義的高效格式編碼用來壓縮區(qū)塊大小,提高了區(qū)塊鏈存儲的利用率[28];

· 第2類是存儲物聯(lián)網(wǎng)中產(chǎn)生的數(shù)據(jù),Hashemi將訪問控制中的數(shù)據(jù)存儲和數(shù)據(jù)管理分離,區(qū)塊鏈用在數(shù)據(jù)存儲系統(tǒng)中,當作一個可信的事務數(shù)據(jù)庫來存儲數(shù)據(jù)[29];Ramachandran是將區(qū)塊鏈用在了數(shù)據(jù)源管理中,將其作為一種安全媒介來存儲數(shù)據(jù)源信息,然后通過智能合約記錄對數(shù)據(jù)的更改信息,防止惡意用戶直接破壞源數(shù)據(jù)[40];

· 第3類是直接存儲訪問權限,Shafagh等人就是將區(qū)塊鏈用于存儲訪問權限,保證權限不被篡改[34].

(2) 區(qū)塊鏈提供可信計算

另外,有些研究者認為使用區(qū)塊鏈來存儲數(shù)據(jù)在效率和性能上都不好,所以將數(shù)據(jù)存儲在鏈下,區(qū)塊鏈上僅存儲指向數(shù)據(jù)的哈希,區(qū)塊鏈為訪問控制提供一個可執(zhí)行智能合約的可信平臺.現(xiàn)有的研究有:Rifi等人利用的是區(qū)塊鏈計算能力,通過 3種不同類型的智能合約維護不同節(jié)點間的規(guī)則、認證和通信,將交易的數(shù)據(jù)存儲在另外的數(shù)據(jù)庫中,區(qū)塊鏈中僅保存指向該數(shù)據(jù)的哈希[39].

(3) 區(qū)塊鏈提供可信的計算和存儲

更多的研究者則是充分利用了區(qū)塊鏈的計算和存儲兩種能力,將重要數(shù)據(jù)保存在區(qū)塊鏈的同時,也利用區(qū)塊鏈的計算能力進行訪問控制決策.按照區(qū)塊鏈所提供的計算能力的大小,可以分為基于比特幣區(qū)塊鏈的研究和基于以太坊區(qū)塊鏈的研究這兩類.

· 對于第1類基于比特幣區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制研究,因為比特幣區(qū)塊鏈設計的目的是作為一種金融領域的交易平臺,將其應用到物聯(lián)網(wǎng)訪問控制中時僅僅是利用了鎖定腳本和解鎖腳本提供的計算能力,所以比特幣區(qū)塊鏈能夠提供的計算能力并不強.基于比特幣區(qū)塊鏈的研究有:Ouaddah利用令牌表示訪問權限,令牌傳遞時,將訪問控制策略以鎖定腳本的方式嵌入到交易中,用戶通過解鎖腳本證明其擁有令牌[30,31];隨后,Outchakoucht等人在文獻[30]的基礎上結合了機器學習算法,但是其區(qū)塊鏈的使用方法沒有改變[33];Jemel將區(qū)塊鏈用于訪問控制中的用戶合法性檢查[32];Ying提出一種基于區(qū)塊鏈的訪問控制架構,將訪問控制策略存儲在區(qū)塊鏈上,通過區(qū)塊鏈交易對這些策略進行管理[35];Zyskind等人將訪問控制策略存儲在區(qū)塊鏈中,將個人敏感數(shù)據(jù)存儲在鏈下,通過區(qū)塊鏈上的訪問控制策略管理鏈下的數(shù)據(jù)[37];

· 第 2類是基于以太坊區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制研究,其特點是支持智能合約,可以在智能合約中實現(xiàn)任意復雜的算法,計算能力相當可觀,相關的研究有:Cruz、Paul等人使用區(qū)塊鏈解決跨組織的 RBAC中驗證用戶角色真實性的問題,把區(qū)塊鏈作為一個可信平臺,通過智能合約創(chuàng)建、修改用戶及其屬性[25];Zhang等人將訪問控制的主要功能都通過智能合約實現(xiàn),包括多個訪問控制合約、一個法官合約和一個注冊合約,充分利用了區(qū)塊鏈的存儲和計算能力[38].

綜上所述,由于區(qū)塊鏈自身的安全、可審計、不可篡改、匿名等特性,使其可以完美地勝任物聯(lián)網(wǎng)訪問控制中可信第三方的角色.在計算能力方面,基于比特幣區(qū)塊鏈的架構所能提供的計算能力并不多,而且在算法復雜性和可擴展性上都有很多限制,但文獻[30,31]在其方案中融入了智能合約思想;基于以太坊的區(qū)塊鏈具有圖靈完備的太坊虛擬機,可以執(zhí)行任意復雜算法的智能合約,因此,利用智能合約來實現(xiàn)物聯(lián)網(wǎng)訪問控制將是未來的研究方向.在存儲能力方面,由于區(qū)塊鏈只能添加區(qū)塊,不能刪除歷史區(qū)塊,而且作為一種分布式系統(tǒng)區(qū)塊鏈會在每個完整節(jié)點上保存同樣的內容,所以區(qū)塊鏈的存儲能力并不廉價.

隨著區(qū)塊鏈的發(fā)展,區(qū)塊鏈已經(jīng)從一個賬本式的數(shù)據(jù)庫發(fā)展成為一個安全可信的平臺,與其代價高昂的存儲能力相比,區(qū)塊鏈提供的可信計算能力更值得大家利用.因此在使用區(qū)塊鏈存儲時,應該存儲訪問控制數(shù)據(jù),而不是像文獻[29]中那樣存儲物聯(lián)網(wǎng)設備產(chǎn)生的數(shù)據(jù).

3 物聯(lián)網(wǎng)海量終端節(jié)點

隨著物聯(lián)網(wǎng)的發(fā)展,物聯(lián)網(wǎng)終端節(jié)點的數(shù)量會變得非常龐大,同時,終端節(jié)點設備的種類及其產(chǎn)生數(shù)據(jù)類型的種類也非常多.大量的終端節(jié)點導致訪問控制無法使用靜態(tài)的方法直接將用戶和權限綁定,同時,眾多終端節(jié)點的類型代表著用戶和節(jié)點屬性的多元化,這都對物聯(lián)網(wǎng)訪問控制提出了新的挑戰(zhàn).

3.1 未使用區(qū)塊鏈時的解決方法

物聯(lián)網(wǎng)自身具有節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的特點,因此,物聯(lián)網(wǎng)中的訪問控制需要適應這些情況.物聯(lián)網(wǎng)中不同的訪問控制模型,解決這些問題的方法也各有不同.

· RBAC以角色和權限為核心,把一組權限與角色關聯(lián)在一起,用戶則根據(jù)所在系統(tǒng)中所指定的角色取得權限.雖然RBAC需要存儲大量{用戶,角色}、{角色,權限}的信息,無法滿足物聯(lián)網(wǎng)中海量的節(jié)點和數(shù)據(jù)的訪問控制,但是通過用戶和權限相分離、用戶歸屬于某一角色等方法,RBAC降低了訪問控制表的存儲數(shù),使其擴展模型可以適用于少數(shù)物聯(lián)網(wǎng)場景.相關研究有:Yavari等人將實驗場景設為醫(yī)療保健場景,通過基于RBAC的方式管理可穿戴式和固定式傳感器獲取的人體安全數(shù)據(jù)[21];Liu等人針對制造業(yè)物聯(lián)網(wǎng)場景,提出了一種可以跨域訪問的基于 RBAC的訪問控制方法[22];Zhang等人提出了集成上下文相關信息的擴展RBAC物聯(lián)網(wǎng)訪問控制模型,將對象的操作轉換為服務,以Web服務方式為基礎管理物聯(lián)網(wǎng)中的設備,根據(jù)一組收集的系統(tǒng)和用戶環(huán)境上下文信息授予用戶相應的權限[23];

· ABAC將主體和客體的屬性作為基本的決策要素,由于屬性是主體和客體內在固有的,不需要手工分配,通過屬性-權限關聯(lián)關系發(fā)現(xiàn)機制構建{屬性,權限}關聯(lián)關系,然后根據(jù)每個訪問請求者的屬性以及所請求資源權限所需的屬性完成訪問授權,使得ABAC管理上相對簡單.因此,ABAC更加適用于節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的物聯(lián)網(wǎng).針對物聯(lián)網(wǎng)環(huán)境的ABAC改進模型也層出不窮,例如:針對物聯(lián)網(wǎng)設備資源受限的特征,提出了物聯(lián)網(wǎng)環(huán)境下 ABAC的改進模型[7,8];Wu等人針對物聯(lián)網(wǎng)中的跨域訪問控制,提出了基于ABAC的細粒度跨域訪問控制機制[9];Ouechtati等人將ABAC和信任概念結合,提出了針對物聯(lián)網(wǎng)環(huán)境的Trust-ABAC訪問控制模型[10];Sun等人將ABAC和RBAC相結合,提出了針對物聯(lián)網(wǎng)具有大規(guī)模動態(tài)環(huán)境的訪問控制模型[11];

· CapBAC將權限具現(xiàn)化為一種令牌,因此,CapBAC中主體可以把訪問權限授予另一個主體,該主體還可以進一步把全部或部分權限授予其他代理,每個階段的授權深度可控,因此可以通過分布式的方法來解決物聯(lián)網(wǎng)中節(jié)點多的問題.結合橢圓曲線密碼學、身份認證和上下文等相關技術,多個文獻研究了基于CapBAC的物聯(lián)網(wǎng)環(huán)境下的訪問控制模型.Sheng等人以權能為基礎,結合上下文和橢圓密碼體系構建了基于權能的物聯(lián)網(wǎng)訪問控制架構[16];Gusmeroli等人提出了以權能為基礎的細粒度的訪問控制模型[17];Mahalle等人針對物聯(lián)網(wǎng)環(huán)境下動態(tài)的網(wǎng)絡拓撲結構、受限的上下文環(huán)境和資源低功耗設備的弱物理安全特性,提出了一種身份認證和基于權能的物聯(lián)網(wǎng)訪問控制模型 IACAC(identity authentication and capability based access control)[18];Hernández-Ramos等人針對物聯(lián)網(wǎng)內部威脅,提出了結合標準橢圓曲線加密機制的物聯(lián)網(wǎng)訪問控制方案[19].

綜上所述,基于RBAC的物聯(lián)網(wǎng)訪問控制雖然通過將用戶權限分離、用戶歸屬某個角色的方式降低了訪問控制表的數(shù)據(jù)量,但是仍無法滿足物聯(lián)網(wǎng)的需求,僅適用于少量特定物聯(lián)網(wǎng)場景.基于ABAC的物聯(lián)網(wǎng)訪問控制可以自動獲取主、客體屬性,自動建設屬性-權限的關聯(lián)關系,適用于節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的物聯(lián)網(wǎng);基于 CapBAC的物聯(lián)網(wǎng)訪問控制通過分布式的設計,解決了物聯(lián)網(wǎng)節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的特點.物聯(lián)網(wǎng)環(huán)境下還有一些其他的訪問控制模型,但是這些模型中有的是針對特定的場景[14,15],有的是針對特定的問題[12,13],但是并沒有針對物聯(lián)網(wǎng)節(jié)點數(shù)量多而做出專門的設計,這里就不再討論了.

3.2 使用區(qū)塊鏈后的解決方法

將區(qū)塊鏈應用于物聯(lián)網(wǎng)訪問控制中,同樣需要解決物聯(lián)網(wǎng)由于海量終端節(jié)點所帶來的一系列問題.本文從以下 3個方面考慮區(qū)塊鏈的解決方法:首先考慮如何管理物聯(lián)網(wǎng)中數(shù)量龐大的終端節(jié)點;其次需要考慮龐大節(jié)點數(shù)量給區(qū)塊鏈帶來的存儲壓力,因為訪問控制策略以及相關事務會隨著節(jié)點的增多而增多;第三需要考慮龐大數(shù)量的終端節(jié)點對訪問控制性能的影響,因為目前比特幣和以太坊確認一條交易的時間較長,無法直接用在物聯(lián)網(wǎng)訪問控制中.

(1) 分層管理

物聯(lián)網(wǎng)具有數(shù)量龐大的終端節(jié)點,這些終端節(jié)點多是計算和存儲能力較弱的輕量級設備,甚至有的傳感器節(jié)點僅具有將收集到的環(huán)境數(shù)據(jù)輸出的功能而沒有技術和存儲能力.因此,第一個解決思路是分層,在物聯(lián)網(wǎng)的設備端將多個有關聯(lián)的設備組成簇,由功能較強的簇頭節(jié)點管理簇中所有終端節(jié)點.

這樣的好處是一方面減少了訪問控制直接管理物聯(lián)網(wǎng)節(jié)點的數(shù)量,降低訪問控制的負擔;另一方面,在設備端由功能較強的設備幫助管理功能弱的設備,使弱設備不用直接暴露在網(wǎng)絡中,提高了物聯(lián)網(wǎng)設備的安全性.

這方面的研究有:Rifi等人提出一個智能家居場景,智能建筑中的普通傳感器能力較弱,無法直接連接到區(qū)塊鏈,因此由功能強大的家庭網(wǎng)關安裝區(qū)塊鏈客戶端與區(qū)塊鏈相連,利用家庭網(wǎng)關管理智能建筑中的所有物聯(lián)網(wǎng)設備[39];Dorri等人同樣是在智能家居場景中假設每個家庭都有一個總是在線的、高資源的設備負責處理家里和外部的所有通信,同時,這個設備也是區(qū)塊鏈網(wǎng)絡中的一個節(jié)點,存儲著本地區(qū)塊鏈(local private BC)并具有共識功能[36];Ouaddah等人的區(qū)塊鏈訪問控制架構中,同樣提出用戶將區(qū)塊鏈錢包(wallet)作為一個授權管理器(authorization manager point),使用這個錢包管理著多個資源[31];Zhang等人同樣將物聯(lián)網(wǎng)設備連接到網(wǎng)關,有網(wǎng)關負責連接到P2P網(wǎng)絡[38].

(2) 壓縮存儲

物聯(lián)網(wǎng)數(shù)量龐大的終端節(jié)點導致區(qū)塊鏈需要存儲的數(shù)據(jù)也隨之增加,但是區(qū)塊鏈存儲的代價較大,所以需要減少區(qū)塊鏈的存儲壓力.

· 第1種解決方法是從區(qū)塊鏈本身考慮,即:在不增加區(qū)塊鏈塊大小的情況下,使每個塊存儲更多的信息.Maesa等人認為,區(qū)塊鏈上的每一個塊都不能刪除,因此會對網(wǎng)絡照成永久的負擔.所以提出一種自定義的高效格式編碼用來壓縮上傳到區(qū)塊鏈中的訪問控制策略的大小,具體方法是:定義一個協(xié)定的符號映射表,表示策略中可用操作數(shù)和數(shù)字代碼之間的映射關系,將屬性名稱和操作映射到一個簡短的數(shù)字值內,映射表會在將來的協(xié)議版本中不斷更新[28];

· 第 2種解決方法是將訪問控制策略存儲在鏈外,區(qū)塊鏈中僅存儲指向鏈外的哈希值.文獻[28]認為:最

簡單的解決方案是在將訪問控制策略存儲在鏈外,區(qū)塊鏈中僅存儲指向鏈外的哈希值.這個解決方案的好處是可以盡量減少存儲在區(qū)塊鏈上的數(shù)據(jù)量,因為策略占用的空間是獨立于策略大小的;主要缺點是策略本身存儲在區(qū)塊鏈之外不利于發(fā)揮區(qū)塊鏈技術安全性、可用性等優(yōu)勢.Rifi等人認為:將訪問控制事務數(shù)據(jù)存儲在區(qū)塊鏈中代價太大,因為所有區(qū)塊鏈網(wǎng)絡中的節(jié)點都需要存儲一個備份.所以,他們的方法是將包含大量數(shù)據(jù)的消息事務存儲在鏈外數(shù)據(jù)庫中,而不是將訪問控制策略存儲在鏈外,區(qū)塊鏈中僅保存指向該數(shù)據(jù)的哈希[39].

(3) 性能優(yōu)化

物聯(lián)網(wǎng)中龐大數(shù)量的終端節(jié)點會對訪問控制性能產(chǎn)生影響,目前的比特幣和以太坊確認一條交易的時間較長,無法直接用在物聯(lián)網(wǎng)訪問控制中.對訪問控制性能的優(yōu)化主要從兩個方面考慮:增加新區(qū)塊產(chǎn)生的速度和增加單個區(qū)塊中存儲的數(shù)據(jù)量.

目前,增加新區(qū)塊產(chǎn)生速度的一種方法是提高共識的速度,通過提出新的共識算法來提高共識速度.ByzCoin采用多個領導者共同快速決定是否應該將區(qū)塊添加到區(qū)塊鏈中,領導者小組由近期時間窗口的礦工動態(tài)組成,每個礦工的投票能力與其在當前時間窗口的挖礦區(qū)塊數(shù)量成正比[59],如圖 3(a)所示,一組領導者可以在一個共識周期產(chǎn)生多個區(qū)塊.Luu等人將礦工節(jié)點分成稱為“委員會”的組,每個委員會處理一組不相交的交易,在委員會內,節(jié)點運行拜占庭一致性協(xié)議以協(xié)定交易區(qū)塊,委員會將該交易區(qū)塊發(fā)送給最終委員會,最終委員會將收到的所有區(qū)塊整理到一個最終區(qū)塊中[60],如圖 3(b)所示.增加新區(qū)塊產(chǎn)生速度的另一種方法是并行地產(chǎn)生多個區(qū)塊,最初在Nxt社區(qū)中提出將有向無環(huán)圖(directed acyclic graph,簡稱DAG)與區(qū)塊鏈結合,將區(qū)塊鏈由鏈式結構改為有向無環(huán)圖結構,可以并行產(chǎn)生多個區(qū)塊.Boyen等人提出以一種名為Graphchain的框架,通過放棄將“區(qū)塊”“鏈”起來的概念來并行化的產(chǎn)生區(qū)塊[61],如圖 3(c)所示,Graphchain將數(shù)據(jù)組織形式從鏈擴展到了圖,挖礦節(jié)點可以并行產(chǎn)生區(qū)塊,其中每個區(qū)塊最少需要有兩個父區(qū)塊,從而使Graphchain是“瘦”的.Coelho將DAG與區(qū)塊鏈相結合,用基于DAG的賬本來實現(xiàn)疾病監(jiān)測[62].

增加區(qū)塊中存儲的數(shù)據(jù)量的研究有:Eyal等人提出一種名為 Bitcoin-NG的區(qū)塊鏈架構,將時間劃分為epoch,并且提出了微區(qū)塊的概念,微區(qū)塊并不包含工作量證明.如圖3(d)所示,領導者節(jié)點可以在其epoch期間單方面向區(qū)塊鏈追加多筆微區(qū)塊,直到新領導者節(jié)點被選出[63].文獻[59]的 ByzCoin是在 Bitcoin-NG基礎上設計的,所以ByzCoin繼承了Bitcoin-NG對區(qū)塊鏈的改進.

綜上所述,面對物聯(lián)網(wǎng)海量終端節(jié)點所帶來的問題,目前通過分層管理、壓縮存儲和性能優(yōu)化這 3個方面進行解決:分層管理的思想在未使用區(qū)塊鏈時就已經(jīng)被廣泛使用;壓縮存儲是使用區(qū)塊鏈所特有的問題,因為區(qū)塊鏈只增不減的特性;性能問題是目前將區(qū)塊鏈用于訪問控制中最主要的挑戰(zhàn)之一,多數(shù)物聯(lián)網(wǎng)場景都對相應時間有要求,而目前區(qū)塊鏈的性能并不高.

4 物聯(lián)網(wǎng)動態(tài)性

物聯(lián)網(wǎng)環(huán)境下節(jié)點的動態(tài)性不僅包含節(jié)點的動態(tài)接入問題,而且還包含節(jié)點的移動性以及訪問數(shù)據(jù)對象會實時變化等問題.這種動態(tài)性使得我們無法提前預知所有用戶信息,也無法準確了解用戶和權限結構,更無法提前預設用戶與權限的對應關系.

4.1 未使用區(qū)塊鏈時的解決方法

RBAC是一種靜態(tài)訪問控制模型,最初并不支持節(jié)點的動態(tài)接入.隨后,有研究者對RBAC進行改進,使其可以實現(xiàn)節(jié)點的動態(tài)接入.Zhang等人在 RBAC的基礎上添加了上下文感知和上下文約束,實現(xiàn)了角色和權限的實時動態(tài)管理[64].

ABAC作為動態(tài)的訪問控制模型天然支持節(jié)點的動態(tài)接入,ABAC以主體和客體的屬性作為基本的訪問控制決策要素,通過實體屬性發(fā)現(xiàn)機制,可以挖掘出獨立、完備的主體屬性、客體屬性、權限屬性和環(huán)境屬性集合,因此不需要管理者手工輸入主、客體屬性.然后,通過自動化的屬性-權限關聯(lián)關系發(fā)現(xiàn)機制,可以快速挖掘出{屬性,權限},通過主體屬性、客體屬性、權限屬性和環(huán)境屬性集合以及{屬性,權限}關聯(lián)關系實現(xiàn)動態(tài)性的訪問控制.因此,ABAC可以解決物聯(lián)網(wǎng)中節(jié)點的動態(tài)接入問題[6,8].

UCON對于動態(tài)性問題的考慮更加深入,通過在訪問控制中加入連續(xù)性和可變性兩個重要因素,不僅可以對訪問請求者訪問資源的整體過程進行實時監(jiān)控,隨時動態(tài)性地調整其資源使用權限,而且考慮了屬性的動態(tài)性,訪問控制中,實體的可變屬性是隨著環(huán)境和上下文變化的.物聯(lián)網(wǎng)環(huán)境下的 UCON研究有 Zhang等人將UCON用于物聯(lián)網(wǎng)場景[14]和車聯(lián)網(wǎng)場景[15].

物聯(lián)網(wǎng)環(huán)境下 CapBAC對于動態(tài)性的支持主要體現(xiàn)在其分布式的設計上,基于分布式的設計,使其更適用于物聯(lián)網(wǎng)中動態(tài)的網(wǎng)絡拓撲結構.有學者對基于 CapBAC進行改進,結合橢圓曲線密碼學、身份認證和上下文等相關技術,提出了一種身份認證和基于權能的物聯(lián)網(wǎng)訪問控制模型,適用于動態(tài)的網(wǎng)絡拓撲結構、受限的上下文環(huán)境和資源低功耗設備的弱物理安全的物聯(lián)網(wǎng)環(huán)境[18].

上述 4種訪問控制模型在解決物聯(lián)網(wǎng)動態(tài)性問題時都有各自的側重點:RBAC設計之初并不支持動態(tài)性,研究者將其應用到物聯(lián)網(wǎng)環(huán)境時,通過對其拓展改進,使其可以實現(xiàn)節(jié)點的動態(tài)接入;ABAC自身的設計就使其支持物聯(lián)網(wǎng)的動態(tài)性;UCON對于動態(tài)性的考慮更進了一步,不僅考慮了訪問控制過程中權限控制的動態(tài)性,還考慮到了實體屬性也具有動態(tài)性;物聯(lián)網(wǎng)環(huán)境下,CapBAC作為一種分布式的訪問控制模型,更側重于解決物聯(lián)網(wǎng)動態(tài)的網(wǎng)絡拓撲結構問題.

4.2 使用區(qū)塊鏈后的解決方法

對于物聯(lián)網(wǎng)環(huán)境下節(jié)點的動態(tài)性問題,區(qū)塊鏈可以完美地解決.一方面是由于區(qū)塊鏈中用戶的身份是由其密鑰來證明的,因此節(jié)點可以在任意時間、任意地點連接到區(qū)塊鏈網(wǎng)絡,只要節(jié)點的簽名正確就可以進行操作;另一方面,區(qū)塊鏈本身采用的是P2P的網(wǎng)絡架構,當有用戶節(jié)點需要接入網(wǎng)絡時,只要連接到網(wǎng)絡中其他區(qū)塊鏈節(jié)點就可以了,而且由于區(qū)塊鏈的 P2P網(wǎng)絡結構并不是基于節(jié)點間的地理位置,因此節(jié)點只需選擇網(wǎng)絡中存在的區(qū)塊鏈節(jié)點并與其相連即可[65].因此,對于節(jié)點移動、頻繁接入、退出等情況,區(qū)塊鏈自身的特性就可以解決.

5 總結與展望

5.1 區(qū)塊鏈訪問控制模型小結

通過對上述使用區(qū)塊鏈的訪問控制模型的分析,總結出兩類將區(qū)塊鏈用于訪問控制中的模型,模型中并沒有詳細的設計細節(jié),僅僅表示出了他們的共同思想.

(1) 去中心的區(qū)塊鏈訪問控制模型

第 1類是對文獻[25,32,35-39]的總結,提取出他們提出模型的共同之處形成的模型,將其命名為去中心的區(qū)塊鏈訪問控制模型,其思想為:資源擁有者先將資源的訪問控制策略發(fā)布在區(qū)塊鏈中,然后,當資源請求者想要訪問該資源時,直接向區(qū)塊鏈中的訪問控制策略請求權限,由區(qū)塊鏈中運行的訪問控制策略決定是否授予訪問權限.區(qū)塊鏈在訪問控制中的作用不僅是存儲訪問控制策略和權限交易信息,而且提供自動執(zhí)行訪問控制策略進行權限授予等功能.具體流程如圖4所示:(1) 資源擁有者o為資源r生成訪問控制策略,并將其發(fā)布在區(qū)塊鏈中;(2) 區(qū)塊鏈收到訪問控制策略后進行驗證,驗證通過后將其存儲在區(qū)塊鏈中;(3) 資源請求者q想要訪問資源r,向區(qū)塊鏈發(fā)送請求訪問交易;(4) 區(qū)塊鏈收到請求訪問交易后,根據(jù)訪問控制策略決定是否授予q訪問權限;(5) 若區(qū)塊鏈中的訪問控制策略同意授予q訪問權限,則返回訪問權限.

去中心的區(qū)塊鏈訪問控制模型的優(yōu)點是:充分利用了區(qū)塊鏈的計算和存儲能力,將訪問控制策略存儲在區(qū)塊鏈上,遏制了越權行為且便于審計;同時,去中心的架構避免了中心節(jié)點被破壞導致系統(tǒng)崩潰的情況.缺點是將策略和權限授予記錄公開放在區(qū)塊鏈上,容易被攻擊者找到漏洞.

(2) 有中心的區(qū)塊鏈訪問控制模型

第 2類是對文獻[28,30,31,33,40]的總結,將其命名為有中心的區(qū)塊鏈訪問控制模型.模型思想為:仍然存在中心化的授權服務器,資源請求者先向授權服務器(文獻[30]中資源擁有者作為授權服務器)發(fā)送訪問請求,若策略同意,則向區(qū)塊鏈發(fā)布授予訪問權限的交易.區(qū)塊鏈記錄了該訪問權限并通知資源請求者,資源請求者訪問資源時,需先告訴區(qū)塊鏈使用該訪問權限.區(qū)塊鏈在訪問控制中的作用是記錄權限擁有者以及提供權限轉移功能.具體流程如圖5所示:(1) 資源擁有者o向授權服務器發(fā)送資源r的訪問控制策略;(2) 資源請求者q向資源r的授權服務器發(fā)送請求訪問的消息;(3) 若授權服務器中的策略同意,則向區(qū)塊鏈發(fā)送授予q訪問資源r訪問權限的交易;(4) 區(qū)塊鏈對收到的授權或交易進行驗證,驗證通過后,存儲在區(qū)塊鏈中;(5) 區(qū)塊鏈驗證通過后,通知q取得訪問權限;(6)q向區(qū)塊鏈發(fā)送交易使用訪問權限.

有中心的區(qū)塊鏈訪問控制模型將區(qū)塊鏈作為一個可信的存儲平臺,其訪問控制策略運行在授權服務器中,這樣做的優(yōu)點是:權限的授予和使用都被永久性的記錄在區(qū)塊鏈中無法偽造,便于審計;同時,由于訪問控制策略在授權服務器上運行,所以避免了區(qū)塊鏈低效對訪問控制的影響.缺點是無法保證授權服務器自身的公正性和安全性;依然存在單點故障問題.

5.2 總 結

綜上所述,首先對物聯(lián)網(wǎng)下常用的4種訪問控制模型進行了分析,其中基于RBAC,ABAC和UCON的訪問控制模型都需要一個集中式的服務器來完成授權決策;基于 CapBAC的物聯(lián)網(wǎng)訪問控制模型實現(xiàn)了分布式的架構,但是將訪問控制決策放在較弱的物聯(lián)網(wǎng)設備上并不安全.去中心化的區(qū)塊鏈從技術上解決了基于中心化模型帶來的安全問題,同時也能保證自己的安全性,為物聯(lián)網(wǎng)訪問控制帶來新的解決思路.本文從物聯(lián)網(wǎng)終端節(jié)點設備輕量級、物聯(lián)網(wǎng)海量終端節(jié)點、物聯(lián)網(wǎng)的動態(tài)性這3個角度對現(xiàn)有物聯(lián)網(wǎng)中主流訪問控制模型以及使用區(qū)塊鏈后的訪問控制模型進行了總結.

· 首先,物聯(lián)網(wǎng)設備無法為訪問控制提供足夠的計算和存儲資源,所以需要引入可信第三方來協(xié)助進行訪問控制,但是這個第三方機構的安全性卻無法保證.區(qū)塊鏈作為一種新興的去中心化的分布式技術,從技術上解決了基于信任的中心化模型帶來的安全問題,適合作為物聯(lián)網(wǎng)訪問控制的第三方機構.目前,對于區(qū)塊鏈的使用逐漸從當作一個可信數(shù)據(jù)庫保存訪問控制策略轉變?yōu)槔脜^(qū)塊鏈智能合約實現(xiàn)自動化的訪問控制;

· 其次,對于物聯(lián)網(wǎng)海量終端節(jié)點所帶來的問題,RBAC作為一種靜態(tài)的訪問控制模型,無法滿足物聯(lián)網(wǎng)的需求,僅適用于少量特定物聯(lián)網(wǎng)場景.基于ABAC的物聯(lián)網(wǎng)訪問控制屬于動態(tài)的訪問控制模型,適用于節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的物聯(lián)網(wǎng).基于 CapBAC的物聯(lián)網(wǎng)訪問控制通過分布式的設計,解決了物聯(lián)網(wǎng)節(jié)點數(shù)量多、種類多、數(shù)據(jù)類型多的特點.使用區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制模型從以下 3個角度解決節(jié)點的帶來的問題:第一,通過分層的方式簡化管理;第二,通過壓縮數(shù)據(jù)或將數(shù)據(jù)保存到鏈外等方法減小區(qū)塊鏈存儲壓力;第三,通過改進區(qū)塊鏈結構、改進共識算法等方法提高區(qū)塊鏈性能;

· 最后,對于物聯(lián)網(wǎng)動態(tài)性所帶來的問題,RBAC的原始模型并不支持動態(tài)性,后有學者將其應用到物聯(lián)網(wǎng)環(huán)境中時,對RBAC進行了改進,使其可以實現(xiàn)節(jié)點的動態(tài)接入;ABAC自身的設計就使其支持物聯(lián)網(wǎng)的動態(tài)性;UCON對于動態(tài)性的考慮更進了一步,不僅考慮了訪問控制過程中權限控制的動態(tài)性,而且考慮到了實體屬性也具有動態(tài)性;物聯(lián)網(wǎng)環(huán)境下,CapBAC作為一種分布式的訪問控制模型,更側重于解決物聯(lián)網(wǎng)動態(tài)的網(wǎng)絡拓撲結構問題.對于使用區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制,區(qū)塊鏈本身結構的設計特點就支持動態(tài)性.

5.3 展 望

下面對基于區(qū)塊鏈的物聯(lián)網(wǎng)訪問控制在未來的發(fā)展中將面臨的問題和挑戰(zhàn)進行討論.

(1) 模型的設計

區(qū)塊鏈可以為訪問控制提供可信的計算和存儲,但是實現(xiàn)可信的代價是存儲在區(qū)塊鏈上的數(shù)據(jù)會向所有人公開.對于使用智能合約實現(xiàn)訪問控制策略的方案來說,將訪問控制策略直接暴露給全網(wǎng)可能并不是一個很好的選擇,因此,設計一種適合的智能合約隱私保護方案是一個值得研究的問題.目前,保證智能合約代碼隱私性的技術有微軟提出的Confidential Consortium Blockchain,利用Intel SGX和Windows虛擬安全模式創(chuàng)建可信計算環(huán)境,在其中實現(xiàn)證明放入代碼的安全性和保證內部數(shù)據(jù)對外界不可見以及不被篡改的功能[66].

另一種思路是在目前的區(qū)塊鏈技術的基礎上實現(xiàn)訪問控制,因此,選擇物聯(lián)網(wǎng)訪問控制中的哪些功能放在區(qū)塊鏈中實現(xiàn),也是一個值得研究的問題.

(2) 跨組織訪問

目前研究的物聯(lián)網(wǎng)場景都較為單一,但是在現(xiàn)實中會出現(xiàn)跨組織或者跨域的訪問控制需求.這些組織或者域并不都相互信任,因此需要可信的第三方作為交流平臺.而區(qū)塊鏈恰好可以充當一個公開可信的平臺.因此,通過區(qū)塊鏈來解決跨組織或者跨鏈的訪問控制,也是值得研究的問題.

(3) 跨鏈訪問控制

區(qū)塊鏈上的數(shù)據(jù)只增加不減少,使用一條鏈為全世界用戶提供訪問控制的可能性微乎其微,所以必然存在多條鏈并存的情況.在不同區(qū)塊鏈間實現(xiàn)跨鏈的訪問控制不僅需要解決區(qū)塊鏈自身的差異性,而且需要解決訪問控制策略沖突、智能合約適應性等一系列問題.因此,跨鏈的訪問控制是一個挑戰(zhàn)性的工作.

(4) 時間優(yōu)化

目前的比特幣和以太坊確認一條交易的時間較長,無法直接用在物聯(lián)網(wǎng)訪問控制中,因此需要設計滿足物聯(lián)網(wǎng)訪問控制性能需求的區(qū)塊鏈.物聯(lián)網(wǎng)中的訪問控制對時間的要求較高,多數(shù)物聯(lián)網(wǎng)場景需要實時的訪問控制,而區(qū)塊鏈中出塊的速度直接制約著訪問控制的速度,因此,如何提高區(qū)塊鏈的性能,是未來必須要解決的一個問題.

目前,提升區(qū)塊鏈訪問控制性能的方法主要有3種:第一,通過設計新的共識算法來提高共識速度,這樣可以提高區(qū)塊鏈產(chǎn)生區(qū)塊的速度[59,60,63];第二,將區(qū)塊鏈的鏈式結構改為網(wǎng)狀結構,這樣可以并行產(chǎn)生多個區(qū)塊[61,62];第三,利用多個側鏈和主鏈合作,主鏈保證安全性,側鏈實現(xiàn)具體業(yè)務功能,通過多個鏈并行工作提高性能[67,68].

(5) 存儲優(yōu)化

區(qū)塊鏈的存儲是一個增量的過程,即只能增加而不能減少,所以會給存儲帶來巨大的負擔.因此,如何降低區(qū)塊鏈存儲的代價,是物聯(lián)網(wǎng)訪問控制需要解決的另一個問題.目前的解決方法有兩種:第一,壓縮區(qū)塊鏈中存儲的數(shù)據(jù),使相同大小的區(qū)塊存儲更多的內容[28];第二,將區(qū)塊鏈與區(qū)塊鏈存儲解耦[69],區(qū)塊鏈中存儲的是指向某個內容的哈希值[39].

猜你喜歡
動態(tài)性訪問控制控制策略
一種跨策略域的林業(yè)資源訪問控制模型設計
AMT坡道起步輔助控制策略
計及SOC恢復的互聯(lián)電網(wǎng)火儲聯(lián)合AGC控制策略研究
自組織多主體系統(tǒng)動態(tài)性的推理研究
建筑安裝工程預結算造價分析與控制策略
動態(tài)性對簡筆畫動物審美的影響及其神經(jīng)機制*
云的訪問控制研究
采用并聯(lián)通用內模的三相APF重復控制策略
云計算訪問控制技術研究綜述
支持節(jié)點協(xié)同的工作流模型構建方法研究