?

基于區塊鏈的可溯源訪問控制機制

2021-01-19 04:58謝絨娜李暉史國振郭云川張銘董秀則
通信學報 2020年12期
關鍵詞:發送給訪問控制客體

謝絨娜,李暉,史國振,郭云川,張銘,董秀則

(1.北京電子科技學院密碼科學與技術系,北京 100070;2.西安電子科技大學網絡與信息安全學院,陜西 西安 710071;3.中國科學院信息工程研究所,北京 100093)

1 引言

隨著云計算、物聯網、大數據等信息技術的發展,分布在不同域的各種不同系統、設備之間頻繁地互聯互通,相互之間數據的訪問和流轉成為一種趨勢。在數據訪問和流轉中,數據的安全性和隱私性成為制約信息技術發展的瓶頸。訪問控制技術為合法的主體在特定的訪問環境下授予一定的訪問權限,成為保障數據安全和隱私的主要手段。

現有的基于角色的訪問控制機制(RBAC,role based access control)基于主體的角色進行訪問授權,基于屬性的訪問控制機制(ABAC,attribute based access control)基于主體屬性、客體屬性和環境屬性進行訪問授權。傳統的訪問控制機制大多通過集中授權點進行訪問授權,存在單點失效導致整個控制系統失效以及性能瓶頸等問題,還存在訪問過程不可追蹤和溯源等缺點。如何實現訪問控制過程的無中心、透明性、可溯源成為訪問控制機制急需解決的問題。

區塊鏈技術允許建立一個分布式、透明的、不可篡改的賬本,因此受到越來越多的關注。自2008年被引入加密貨幣[1]以來,區塊鏈技術被廣泛應用于物聯網、云計算、大數據等場景[2-5]。Maesa 等[6]將區塊鏈技術引入訪問控制中,通過區塊鏈實現訪問控制策略的存儲和檢索,而訪問控制策略的評估通過傳統的訪問控制系統實現。文獻[7]將基于屬性的訪問控制策略轉化成智能合約(SC,smart contract)并部署在區塊鏈上,通過智能合約實現訪問控制策略的評估和屬性管理。上述文獻對于如何實現數據訪問的可追蹤和溯源沒有給出很好的解決方案,同時存在一次授權多次訪問的問題。

針對上述問題,本文利用區塊鏈無中心、透明性和不可篡改等優點,以基于屬性的訪問控制機制為基礎,提出了基于區塊鏈的可溯源訪問控制機制。該機制采用鏈上和鏈下相結合的方式,將客體資源存儲在鏈下的數據服務器中,基于客體存儲地址和摘要值生成客體索引存儲在區塊鏈上;將訪問控制策略以智能合約的方式部署在客體區塊鏈上,通過執行區塊鏈上的智能合約實現訪問控制過程的透明性,并將訪問授權日志和訪問日志記錄在日志區塊鏈上,在保障客體隱私性的前提下,實現訪問過程無中心、透明性和可溯源。

本文主要貢獻如下。

1) 提出了基于區塊鏈的可溯源訪問控制機制,把訪問控制策略以智能合約的形式部署在區塊鏈上,訪問控制執行和評估通過執行區塊鏈上分布式的智能合約實現,實現了訪問授權的無中心和透明性,有效防止了策略執行點和策略決策點非法授權或者拒絕訪問請求等問題,同時避免了集中授權造成的性能瓶頸。

2) 為保護客體資源的隱私性,采用鏈上和鏈下相結合的方式,客體資源采用鏈下的方式存儲在數據服務器,基于客體存儲地址及摘要值生成的客體索引存儲在客體區塊鏈上,提高了客體資源的安全性和隱私性。

3) 向授權訪問主體分發訪問憑據,并把訪問憑據不可修改地記錄在區塊鏈上。主體在對客體訪問時,通過區塊鏈對主體訪問憑據的有效性進行驗證,實現細粒度的訪問控制,有效避免了一次授權多次訪問的問題。

4) 將區塊鏈分為客體區塊鏈和日志區塊鏈,其中日志區塊鏈詳細記錄了訪問授權日志和客體訪問日志,實現訪問授權過程的可追蹤和可溯源。

2 相關工作

區塊鏈由于無中心、透明性、不可篡改等優點,被廣泛應用在物聯網、云計算、大數據等不同場景[2-5],用來實現數據的安全性和隱私性。訪問控制是保證數據安全的一種有效手段,傳統的訪問控制采用中心授權,存在單點失效以及性能瓶頸等問題,同時傳統訪問控制存在訪問過程不透明、不可追蹤和溯源等缺點,已有不少文獻將區塊鏈技術應用到訪問控制中。Maesa 等[6]利用區塊鏈技術實現訪問控制,通過比特幣協議實現訪問控制策略的存儲和檢索,而訪問控制策略的評估通過傳統的訪問控制系統實現。智能合約是部署在區塊鏈上的計算機程序,當滿足必要條件時,以無中心的方式自動執行某些功能。最近不少方案采用區塊鏈和智能合約實現訪問控制。文獻[8]對文獻[6]的方案進行改進,通過智能合約實現訪問控制的主要功能。為提高訪問控制策略評估的可審計性,文獻[7]將基于屬性的訪問控制策略轉化成智能合約并部署在區塊鏈上,通過智能合約實現訪問控制策略的評估和屬性管理。針對大數據資源的特點以及集中式訪問控制機制存在的問題,劉敖迪等[9]以ABAC 模型為基礎,提出一種基于區塊鏈的大數據訪問控制機制,該機制采用基于智能合約的訪問控制方法實現對大數據資源透明、動態、自動化的訪問控制。針對物聯網中的特點,杜瑞忠等[10]提出一種基于層級區塊鏈的物聯網分布式體系架構,該架構以ABAC 模型為基礎,采用智能合約的方式實現對物聯網設備基于屬性的域內和跨域的動態、自動化訪問控制。

數據安全保護是安全領域的一個研究熱點。2018年5月,通用數據保護條例(GDPR,general data protection regulation)在所有的歐洲國家強制執行,通過委托授權服務提供者實現對個人數據的控制,并通過第三方監管機構驗證服務提供者是否嚴格遵守GDPR。如何驗證服務提供者是否嚴格遵守GDPR 是數據保護機制面臨的挑戰。針對上述問題,Truong 等[11]基于區塊鏈和智能合約的優點,提出個人數據管理平臺,利用區塊鏈和智能合約實現數據授權的透明性,驗證服務提供者是否遵守GDPR,任何違反規則的行為都將被記錄,通過給每個參與者頒發公私鑰對進行身份管理,并采用非對稱加密算法保護參與者身份和敏感信息。在策略部署和訪問授權方面通過數字簽名算法對相關信息進行驗證,隨著管理數據量的增加,該算法在密鑰管理和訪問控制效率等方面都面臨巨大挑戰。Wu 等[12]提出了采用公共區塊鏈提供策略遵守的證據,并通過粘性策略的方式實現對跨域訪問中策略遵守的監管。針對區塊鏈數據的隱私性問題,Zyskind 等[13]結合區塊鏈和鏈下的數據存儲實現個人數據管理,但該方案僅考慮對用戶數據的讀操作,沒有考慮其他訪問操作。Kosba 等[14]提出一種去中心化的智能合約系統Hawk,該系統以密文形式在區塊鏈上存儲交易,實現交易的隱私性。Hawk 能以直觀的方式編寫智能合約,編譯器使用零知識證明等加密原語,自動生成有效的加密協議,使合同方與區塊鏈進行交互。為提高智慧城市中數據的可用性、完整性和隱私性,Makhdoom 等[15]提出了基于區塊鏈的隱私保護和數據共享方案PrivySharing,該方案將區塊鏈網絡分成不同的通道,不同通道的數據相互隔離,每個通道包含有限個授權組織處理特定類型的數據。PrivySharing 通過在智能合約中嵌入訪問控制規則實現對數據的訪問控制。針對數據跨域共享存在的安全問題,Rahman[16]等提出了跨域的數據共享平臺,并將數據共享平臺部署在一個全局的云服務器中。當有跨域訪問請求時,云服務器通過域內安全網關收集存儲在本地的數據,并通過區塊鏈記錄數據轉移。全局的云服務器通過區塊鏈來檢驗完全網關的錯誤行為,但該方案通過一個全局云服務中心實現數據共享,存在單點失效造成的安全問題和性能問題。王秀利等[17]提出了一種應用區塊鏈的數據訪問控制與共享模型,利用屬性基加密對數據進行訪問控制與共享,達到細粒度訪問控制和安全共享的目的。針對云存儲電子病歷(EMR,electronic medical record)共享的問題,牛淑芬等[18]提出了一種區塊鏈上基于可搜索加密的EMR 數據共享方案。該方案采用私有鏈和聯盟鏈實現EMR的安全存儲與共享,利用可搜索加密技術實現對聯盟鏈上關鍵字的安全搜索,利用代理重加密技術實現EMR 的共享。Neisse 等[19]利用部署在區塊鏈上的公開審計合同提高數據訪問、使用的透明度,實現記賬能力和溯源追蹤。

但是,上述文獻對如何利用區塊鏈和智能合約實現訪問控制無中心、透明性、可追蹤和溯源都沒有給出完整的、詳細的解決方案。

3 基于屬性的訪問控制機制及其面臨的挑戰

本節以基于屬性的訪問控制為例,介紹復雜網絡環境下集中授權的訪問控制機制及其面臨的挑戰。

3.1 基于屬性的訪問控制

基于屬性的訪問控制主要包括3 個階段,主要步驟如圖1 所示。

第一階段為客體上傳階段,所有者將生成的客體上傳到數據服務器,主要步驟如下。

Step1數據所有者(DO,data owner),以下簡稱所有者,將生成的客體(O,object)上傳到數據服務器(DS,data service)。

Step2所有者針對客體生成對應的訪問控制策略(P,policy)上傳到策略管理點(PAP,policy administration point)。

第二階段為訪問授權階段,訪問控制系統對主體提出的訪問請求進行授權判斷,主要步驟如下。

Step3主體(S,subject)生成訪問請求(AR,access request)發送給策略執行點(PEP,policy enforcement point)。

Step4策略執行點針對主體的訪問請求生成訪問決策請求(ADR,access decision request)發送給策略決策點(PDP,policy decision point)。

Step5策略決策點針對訪問決策請求生成策略查詢請求(PQR,policy query request)發送給策略管理點,策略管理點查詢訪問控制策略庫(PR,policy repository)得到對應的訪問控制策略并發送給策略決策點。

Step6策略決策點根據訪問控制策略和訪問決策請求生成屬性查詢請求(AQR,attribute query request)發送給策略信息點(PIP,policy information point),策略信息點查詢相關主體屬性、客體屬性和環境屬性,并將查詢得到的屬性發送給策略決策點。

Step7策略決策點根據訪問控制策略和屬性進行訪問授權判斷,生成訪問控制結果(ACR,access control result)發送給策略執行點。

第三階段為客體訪問階段,對于同意授權的訪問請求,主體對客體進行訪問操作,主要步驟如下。

Step8對于同意授權的訪問請求,策略執行點提出客體請求(OR,object request)發送給數據服務器。

Step9數據服務器將客體發送給策略執行點。

Step10策略執行點將客體發送給主體。

3.2 基于屬性的訪問控制面臨的挑戰

從上述訪問授權過程可以看出,訪問控制執行和決策過程依賴于策略執行點和策略決策點,這樣的單一集中授權模式存在以下安全問題和性能問題。

1) 如果策略決策點或者策略執行點被收買或者攻擊,對于同意授權訪問控制結果,會返回一個否定的授權結果,反之亦然,甚至策略執行點直接拒絕主體的訪問請求。

2) 訪問控制過程不透明、不可追蹤。從所有者角度來看,其不能發現自己創建的客體錯誤的肯定授權或過度授權,從而導致隱私泄露;同樣,主體也無法發現錯誤的否定授權。

3) 所有訪問控制的決策和執行都集中在策略決策點和策略執行點,造成性能瓶頸問題,甚至存在單點失效導致整個系統無法運行等問題。

4) 整個訪問過程無法實現追蹤和溯源,對于錯誤的訪問控制授權和訪問執行,無法找到相關的參與主體。

4 基于區塊鏈的可溯源訪問控制機制的設計原則與架構

針對基于屬性的訪問控制在實際應用中存在的問題,本節提出了基于區塊鏈的可溯源訪問控制機制。該機制把訪問控制策略以智能合約的形式部署在區塊鏈上,通過執行區塊鏈上分布式智能合約對主體的訪問請求進行評估,實現了無中心的訪問授權管理。同時,利用區塊鏈透明性和不可修改等優點,把訪問授權過程記錄在區塊鏈上,實現訪問控制過程透明性和可追蹤。

4.1 基于區塊鏈的可溯源訪問控制機制設計原則

為保證基于區塊鏈的可溯源訪問控制機制的安全性,本文提出以下安全性假設條件。

條件1數據服務器半可信,它會準確執行每次訪問,但存在非法篡改客體,或者把客體泄露給非法主體,或者拒絕合法主體對客體訪問的可能。

條件2策略決策點或者執行點會被攻擊或者被收買成為失效節點,從而生成錯誤訪問決策或授權,或者拒絕主體對客體的訪問。

針對基于屬性的訪問控制存在的問題,基于區塊鏈的可溯源訪問控制機制遵循以下原則。

1) 訪問控制策略生成。訪問控制策略采用細粒度、語義表達豐富的策略描述語言。所有者描述的訪問控制策略自動轉化為智能合約并部署在區塊鏈上。

圖1 基于屬性的訪問控制機制

2) 訪問控制策略決策和執行。訪問控制策略的決策和執行通過執行區塊鏈上分布式的智能合約來實現,保證整個訪問授權過程的透明性和可溯源。

3) 對于肯定的授權結果通過給主體頒發一個語義描述豐富的訪問憑據(token)來表示,并記錄在區塊鏈上。主體訪問客體時,通過區塊鏈對訪問憑據進行驗證,防止一次授權無限制重復訪問客體等安全問題。

4) 區塊鏈分布式賬本的設計。訪問授權結果和訪問結果都記錄在區塊鏈賬本上。區塊鏈賬本上詳細記錄誰在什么時候對什么進行了什么操作,操作的原因是什么,操作的環境是什么。保證訪問過程的透明性,實現訪問過程可追蹤和溯源。

5) 客體資源離線存儲。數據采用傳統的數據庫管理系統,如Oracle、Sybase,或者分布式存儲系統,如GFS(Google file system)等方式存儲在鏈下的數據服務器上,保證客體資源的安全性和隱私性。如果客體直接存儲在鏈上,客體的安全性和隱私性會受到威脅;如果采用密態方式存在鏈上,客體訪問的靈活性和效率會大大降低,同時會大大增加賬本維護成本。

6) 主體的安全性和隱私性。在數據訪問過程中,主體屬性屬于個人隱私信息,所有主體相關屬性信息存在鏈下的策略信息庫中。

4.2 基于區塊鏈的可溯源訪問控制機制架構

基于區塊鏈的可溯源訪問控制機制架構如圖2所示,包括客體上傳、訪問授權和客體訪問3 個階段。在基于區塊鏈的可溯源訪問控制機制中,引入環境句柄(CH,context handler)執行訪問授權和客體訪問。根據不同的分工,把環境句柄細分為智能策略部署句柄(CHSPD,smart policy develop context handler)(簡稱策略部署句柄)、客體部署句柄(CHOD,object develop context handler)、智能策略執行句柄(CHPE,smart policy enforcement context handler)(簡稱策略執行句柄)、智能策略決策句柄(CHPD,smart policy decision context handler)(簡稱策略決策句柄)、訪問憑據驗證句柄(CHTV,token validation context handler)(簡稱憑據驗證句柄)、日志記錄句柄(CHL,log handler)。上述句柄為區塊鏈的各個節點,實現智能合約的執行、客體上鏈前的驗證和區塊鏈賬本的維護等。

第一階段為客體上傳階段,主要步驟如下。

Step1所有者將生成的客體上傳到數據服務器,數據服務器將客體在數據服務器的地址和摘要值發送給所有者。

Step2所有者針對客體生成對應的訪問控制策略上傳到策略管理點。

Step3策略管理點將所有者上傳的訪問控制策略轉化成智能合約的形式,生成智能訪問控制策略(SP,smart policy)發送給CHSPD,CHSPD 將SP 部署在區塊鏈上,部署成功后,CHSPD 將SP在區塊鏈中的地址SPA(smart policy address)發送給策略管理點進行存儲。所有者根據客體地址和摘要值等生成客體索引發送給CHOD,CHOD 將客體索引部署在區塊鏈上。

第二階段為訪問授權階段,主要步驟如下。

Step4主體生成訪問請求并發送給策略執行點。

圖2 基于區塊鏈的可溯源訪問控制機制架構

Step5策略執行點根據主體的訪問請求從策略管理點查詢智能訪問控制策略地址,根據訪問請求和策略地址生成訪問決策請求,并發送給CHPE。

Step6CHPE 將訪問決策請求發送給CHPD。CHPD 根據訪問決策請求中的策略地址調用對應的智能合約,智能合約生成屬性查詢請求發送給PIP,PIP 將屬性發送給智能合約,智能合約根據屬性進行訪問授權判斷,生成訪問控制結果。CHPD 將訪問控制結果發送給CHPE。

Step7CHPE 根據訪問控制結果生成訪問授權日志和訪問憑據,CHPE 和CHL 分別將訪問憑據和訪問授權日志記錄在區塊鏈上,同時將訪問憑據發送給主體。

第三階段為客體訪問階段,主要步驟如下。

Step8主體生成客體請求,并將客體請求發送給策略執行點,策略執行點將客體請求發送給數據服務器。

Step9數據服務器將客體請求中主體的訪問憑據發送給CHTV,CHTV 對訪問憑據有效性進行驗證,并把驗證結果發送給數據服務器,CHL 將訪問日志記錄在區塊鏈上。

Step10對于通過驗證的訪問憑據,數據服務器將客體發送給主體。

基于區塊鏈的可溯源訪問控制機制具有以下優勢。

1) 利用區塊鏈公開透明、無中心、不可篡改等優點,基于區塊鏈的可溯源訪問控制機制把訪問控制策略、訪問控制執行和策略決策過程記錄在區塊鏈中,有效防止了策略執行點和策略決策點被收買或者攻擊造成的非法授權或者拒絕訪問請求等安全問題,同時避免了集中授權造成的性能瓶頸問題。

2) 區塊鏈中詳細記錄了訪問授權日志、訪問日志,訪問請求主體可以通過區塊鏈查看訪問授權日志記錄,確保自己沒有被非法拒絕。

3) 所有者也可以通過區塊鏈查看客體訪問過程,保證自己的客體資源沒有被非法授權或者過度授權。

4) 超級用戶可以通過查看區塊鏈訪問授權和訪問過程,實現整個過程的可追蹤和溯源。

5) 策略決策點和策略執行點可以通過區塊鏈證明自己誠實地執行訪問控制策略。

5 基于區塊鏈的可溯源訪問控制機制原理

本節詳細介紹基于區塊鏈的可溯源訪問控制機制如何進行客體上傳、訪問授權和客體訪問。為提高訪問控制和數據追蹤溯源的效率,本文將區塊鏈分成客體鏈objectBlockChain 和日志區塊鏈logBlockChain。objectBlockChain 用于記錄智能訪問控制策略、客體索引、訪問憑據,logBlockChain 用于記錄訪問授權日志和訪問日志??腕w上鏈時,多個節點通過實用拜占庭容錯(PBFT,practical Byzantine fault tolerance)算法進行共識,各個節點調用函數putData(data)將data上傳到區塊鏈上,同時調用函數getData(data)得到區塊鏈上的數據,data 可以為任意類型和結構的數據。

5.1 客體上傳與策略部署

5.1.1客體上傳

所有者調用算法1 進行客體上傳。

算法1objectUpload(object,policy)

輸入待上傳的客體object 和對應的訪問控制策略policy

輸出客體部署結果flag,flag=true 表示客體部署成功,flag=false 表示客體部署失敗

客體上傳協議如圖3 所示。在客體上傳時,所有者調用函數objectReposit()將客體上傳給數據服務器進行存儲,得到客體地址object_address,計算客體的摘要值 object_hash 。所有者根據object_address、object_hash、object_attribute 等信息生成客體索引object_index。采用鏈下方式存儲的客體具有以下優點:1) 區塊鏈上僅存儲客體索引而不是客體本身,提高了客體的安全性和隱私性;2) 在對客體訪問時,通過對比摘要值對客體完整性進行驗證,有效避免客體在存儲和傳輸過程中被篡改的風險;3)通過客體地址可以快速找到待訪問的客體,提高客體訪問效率,如果客體為敏感的信息,所有者可以將客體以密態的形式存儲在數據服務器中。

圖3 客體上傳協議

5.1.2訪問控制策略部署

為了提高訪問控制策略轉化效率,降低所有者的負擔,本文將策略管理點分成策略轉化點和策略庫,其中策略轉化點負責訪問控制策略轉化。策略轉化點調用函數policyTranslate()為policy 生成策略標識符policyID,并將policy 轉化成智能合約的形式,得到智能策略smartpolicy。策略轉化成功后,CHSPD 調用函數policyDevelop()將smartpolicy 部署在客體區塊鏈上,并返回smartpolicy 在客體區塊鏈的地址smartpolicy_Address。策略部署成功后,策略管理點調用函數policyReposit()將policyID、smartpolicy_Address、policy 存儲在策略庫中,便于后續訪問控制策略查詢。

除了所有者針對客體制定的訪問控制策略外,訪問控制系統還會針對單個或多個客體制定系統訪問控制策略。對于系統訪問控制策略,同樣按照上述方法進行策略部署和存儲。

智能訪問控制策略部署成功后,所有者將object_index 發送給CHOD,CHOD 將object_index部署在客體鏈上,完成客體及訪問控制策略的部署。

CHSPD 和CHOD 為客體區塊鏈網絡的節點,維護區塊鏈賬本和智能合約的運行。在客體上鏈和策略部署過程中,不同節點之間通過PBFT 算法達成共識。

對于客體上鏈和訪問控制策略的制定與部署,所有者可以委托可信第三方進行。

5.2 訪問授權

在基于區塊鏈的可溯源訪問控制機制中,對于同意授權的訪問請求生成token,token 詳細記錄了訪問客體時需要滿足的時間、地點等屬性信息。通過算法2 對主體的AR 進行授權評估,訪問授權協議如圖4 所示。策略管理點調用函數policyQuery()根據 AR 在策略庫中查找對應的 policy 及smartpolicy_Address。策略執行點根據訪問請求和策略地址生成訪問控制請求發送給CHPD。CHPD根據smartpolicy_Address 調用對應的智能合約對訪問請求進行評估。在策略評估過程,根據需要從策略信息點查找策略評估需要的主體屬性、客體屬性和環境屬性,生成訪問控制結果accessResult 和訪問授權結果flag。CHPD 將訪問授權結果記錄在客體區塊鏈上。對于肯定授權,CHPE 調用函數tokenGenerate()生成token,并將其記錄在客體區塊鏈上。CHPE 根據訪問控制結果調用函數authorizeLogGenerate() 生成訪問授權日記authorizeLog,并將其發送給CHL,CHL 將訪問授權日志記錄在日志區塊鏈上。日志區塊鏈上詳細記錄了肯定授權日志和否定授權日志。

算法2accessAuthorize(AR)

輸入主體對客體訪問請求AR

輸出授權結果 flag 和訪問憑據 token,flag=true 表示同意授權,flag=false 表示不同意授權

圖4 訪問授權協議

所有的訪問控制結果不管是肯定授權還是否定授權都記錄在日志區塊鏈上,主體通過日志區塊鏈可以查看訪問請求是否被拒絕,同時可以對授權結果進行驗證,防止策略執行點和策略決策點聯合起來進行欺騙行為。通過訪問授權日志對客體的訪問請求進行追蹤和溯源,防止惡意主體進行非法訪問或者重放攻擊等。在訪問授權結束后,將token記錄在客體區塊鏈中,便于后續主體對客體訪問時,對主體訪問憑據的有效性進行驗證,有效避免了一次授權,主體對客體無限次訪問,同時可以杜絕主體將訪問憑據泄露給其他非法主體等安全問題。

5.3 客體訪問

在訪問授權階段,對于同意授權的AR,CHPE會給主體返回一個token。主體在提出客體請求時,將token 一起發送給策略執行點??腕w訪問協議如圖5 所示,通過算法3 實現主體對客體的訪問。策略執行點將主體的訪問憑據發送給數據服務器DS,CHTV調用函數tokenValidate()對token的有效性進行驗證,調用函數accessLogGenerate()生成訪問日志accessLog,并將訪問日志accessLog發送給CHL,CHL 將訪問日志記錄在日志區塊鏈上。

算法3objectAccess(OR,flag,object)

輸入主體對客體請求OR

輸出訪問結果flag,flag=true 表示訪問憑據驗證通過,并將客體object 發送給主體subject;flag=false 表示表示訪問憑據驗證沒有通過

在客體訪問過程中,所有token 及其驗證結果都記錄在區塊鏈上,主體通過區塊鏈可以查看訪問憑據的驗證結果,有效防止了數據服務器非法拒絕服務。同時日志記錄句柄將訪問日志accesslog 記錄在日志區塊鏈上,后續可以通過日志區塊鏈實現客體訪問追蹤和溯源。

圖5 客體訪問協議

5.4 訪問憑據數據結構

token 是主體訪問客體的唯一憑據,詳細記錄了主體訪問客體時需要滿足的各種條件。關鍵字?值(key-value)的方式是區塊鏈中廣泛采用的數據結構,本文采用關鍵字?值的方式設計訪問憑據的數據結構。訪問憑據關鍵字包括主體、所有者、客體地址。訪問憑據記錄了訪問憑據ID 值、訪問憑據摘要值、隨機數、策略地址、策略ID 號、客體摘要值、客體允許操作的時間{time}、允許對客體進行的操作{op}、主體操作客體需要滿足的環境屬性{e}、客體屬性、主體屬性。{time}為允許操作的時間集合、{op}為主體可對客體進行的操作集合、{e}為主體對客體進行操作時需要滿足的環境屬性集合,包括對客體操作的位置屬性、操作平臺屬性等。

訪問憑據詳細記錄了主體對客體進行操作所必須滿足的各種條件。通過訪問憑據可以實現對客體細粒度的訪問控制。

5.5 實用拜占庭共識機制

共識算法是區塊鏈中的關鍵技術,實用拜占庭容錯算法已經被廣泛應用于各種場景。本文智能訪問控制策略部署、客體部署、訪問授權、訪問授權日志記錄、訪問日志記錄都通過PBFT 共識算法將相關數據記錄到客體區塊鏈和日志區塊鏈中。下面講解如何利用PBFT 算法將智能訪問控制策略部署到客體區塊鏈中。

本文通過策略部署句柄CHSPD 將智能訪問控制策略部署到客體區塊鏈中。CHSPD 至少有3f+1個,其中f為可能失效副本的最大個數,f≥1。本文根據CHSPD 的信任度將CHSPD 分為主節點CHSPD_primary 和副節點CHSPD_replica,主節點負責產生新的區塊,共識過程如圖6 所示,包括以下幾個主要步驟。

廣播(broadcast)。PAP 生成智能訪問控制策略部署請求,將smartpolicy 發送給CHSPD,CHSPD驗證請求的有效性,將策略部署消息發送給全網策略部署句柄。

預準備(pre-prepare)。主節點CHSPD_primary收到策略部署消息后,生成預準備消息pre-prepare message,并在全網公布預準備消息。

圖6 共識過程

準備(prepare)。副節點CHSPD_replica 收到預準備消息后,驗證預準備消息的有效性,生成準備消息prepare message,并將準備消息廣播給全網其他節點。

確認(commit)。副節點CHSPD_replica 收到其他節點發送的準備消息,驗證其他節點發送的準備消息與主節點發送的預準備消息是否一致。當該副節點收到2f個準備消息并驗證通過時,生成確認消息,并在全網公布確認消息。

響應(reply)。一旦副節點CHSPD_replica 收到2f+1 個確認消息(包括其自己),則認為策略部署達成了共識,并把執行結果發送給主節點和策略管理點。主節點不斷收集策略部署,進行排序生成新的區塊,并將新的區塊添加到客體區塊鏈上。達成共識后,記錄在區塊鏈上的智能訪問控制策略就是永久的。

在智能策略部署過程中,主節點 CHSPD_primary 負責智能策略的收集并打包成塊,達成共識后將新的區塊增加到區塊鏈上。主節點的選取根據各個節點的信任度進行選擇,節點的信任度根據節點在共識過程的參與度進行動態評價,如果主節點存在區塊記錄失誤,將取消該節點的主節點權限并降低該節點的信任度。

對于客體部署、訪問授權、訪問授權日志記錄、訪問憑據驗證和訪問日志記錄等共識過程,采用類似的方法。策略部署節點、客體部署節點、策略執行節點、策略決策點等可以為同一個節點,也可以為不同的節點,可以根據訪問控制系統的規模、節點的能力以及隱私程度進行選擇。

接下來,從安全性和性能2 個方面對本文提出的訪問控制機制進行分析。

6 安全性和性能分析

6.1 安全性分析

本文提出的基于區塊鏈的可溯源訪問控制機制將訪問控制策略、訪問授權、客體訪問過程都記錄在區塊鏈上,繼承了區塊鏈無中心、透明性、分布式和不可篡改等優點。

1) 無中心、透明性

本文提出的訪問控制機制通過執行部署在客體區塊鏈上分布式的智能合約進行訪問評估,實現訪問授權過程的無中心化和透明性。

2) 不可偽造性

利用區塊鏈不可篡改的特點,將所有訪問授權日志(包括肯定授權和否定授權)和訪問日志(肯定訪問和否定訪問)都記錄在日志區塊鏈上,任何人或組織都不可以偽造錯誤的訪問控制授權結果,有效杜絕了策略執行點和策略決策點被攻擊或收買造成的安全問題;訪問憑據和訪問日志記錄在區塊鏈上,有效杜絕了數據服務器的非法拒絕訪問等安全問題。

3) 可追蹤溯源

所有的訪問授權日志和客體訪問日志都詳細記錄在日志區塊鏈上,所有者(或者超級用戶)可以通過區塊鏈查看整個客體授權和訪問過程,驗證策略執行點、策略決策點、數據服務器是否按照訪問控制策略對客體進行受控訪問;所有者(或者超級用戶)通過日志可以對客體訪問和流轉過程進行追蹤和溯源,防止對客體進行錯誤的肯定授權或過度授權;主體可以通過區塊鏈查看整個授權結果、授權日志和訪問日志,防止策略執行點和策略決策點拒絕訪問或者錯誤授權,防止數據服務器非法拒絕訪問;數據服務器可以通過區塊鏈證明自己按照訪問控制策略對客體進行受控訪問。

4) 隱私性和可信性

在客體訪問過程中,將客體存儲在第三方服務器,客體地址、摘要值等生成的客體索引存儲在客體區塊鏈上,保護了客體隱私性。同時客體索引中包含了客體摘要值,防止半可信數據服務器對客體篡改,保護客體的可信性和完整性。

6.2 性能評估

為測試本文提出的訪問控制機制性能,本節搭建了聯盟鏈實驗環境。本次實驗的硬件環境如下:處理器為AMD 3600×1,內存為3 GB,操作系統為centos。在進行性能評估時,只測試鏈上的操作速度,比如客體索引上鏈、訪問控制策略部署、智能訪問控制策略評估、日志查看等,對于鏈下運行速度,比如客體索引生成、訪問控制策略轉化不予考慮。

在基于區塊鏈的可溯源訪問控制機制中,客體索引上鏈、訪問控制策略部署等都屬于寫區塊鏈,訪問控制策略評估為執行區塊鏈上的智能合約并將日志寫入區塊鏈,日志查看為讀區塊鏈的數據。下面通過測試讀區塊鏈、寫區塊鏈速度來對基于區塊鏈的可溯源訪問控制機制進行性能評估。

區塊鏈的讀寫速度不僅與硬件環境有關,同時與區塊鏈網絡中的節點個數也有很大關系。本文配置一個排序節點,peer 節點個數分別為5 和10,測試不同條件下讀寫區塊鏈的速度。測試時,通過模擬以不同速度不斷給區塊鏈發送交易,這些交易包括讀區塊鏈和寫區塊鏈,測試不同環境下讀寫區塊的速度和完成交易所花費的時間。

1) 讀寫區塊鏈速度

配置peer 節點個數為5,讀寫區塊鏈速度和時間分別如表1 和表2 所示。

表1 5 個peer 節點讀寫區塊鏈速度

表2 5 個peer 節點讀寫區塊鏈時間

從表1 和表2 中可以看出,讀區塊速度大于寫區塊速度,讀區塊的時間小于寫區塊的時間。這是因為寫操作涉及創建新的區塊、公布賬本等,包含的流程比讀操作多。

2) 讀寫區塊鏈速度與peer 節點關系

將區塊鏈peer 節點個數配置為10,分別測試讀寫區塊鏈速度和時間,如表3 所示。通過對比表1 和表3、表2 和表4 的數據發現,隨著peer節點個數的增加,讀和寫的速度在降低。因為隨著節點的增加,共識機制占用的時間增加,導致讀寫區塊鏈速度下降。

表3 10 個peer 節點讀寫區塊鏈的速度

從上述實驗分析可以看出,基于區塊鏈的可溯源訪問控制機制效率與聯盟鏈中節點個數有很大關系。節點個數影響訪問控制系統的規模,應在保證訪問控制規模和效率的前提下,選擇合適的節點個數。此外,交易的長度和結構也影響讀寫區塊鏈的效率,為提高訪問控制系統效率,應盡可能優化各個交易的數據結構,降低交易時延。

表4 10 個peer 節點讀寫區塊鏈時間

7 結束語

針對傳統訪問控制機制存在集中授權、訪問過程不透明、不可追蹤和溯源等缺點,充分利用區塊鏈無中心、透明性、不可篡改等優點,提出了基于區塊鏈的可溯源訪問控制機制。所提機制將訪問控制策略以智能合約的形式部署在區塊鏈上,訪問控制決策判斷通過執行部署在區塊鏈上的智能合約實現,保證整個訪問授權過程的透明性;為保護客體資源的隱私性,提出采用鏈下和鏈上相結合的方式,客體資源存儲在鏈下半可信的數據服務器,通過客體存儲地址和摘要值等信息生成客體索引存儲在客體區塊鏈上,授權主體通過客體地址訪問客體資源;對于授權主體頒發訪問憑據,將訪問憑據部署在區塊鏈上,訪問憑據詳細記錄訪問權限以及需要滿足的條件,主體訪問客體時,通過區塊鏈驗證訪問憑據的真實性和可信性,有效杜絕了一次授權多次訪問的問題,同時實現了細粒度的訪問控制;將訪問授權日志和訪問日志記錄在日志區塊鏈上,通過日志區塊鏈實現訪問授權和訪問過程的可追蹤和可溯源。通過對基于區塊鏈的可溯源訪問控制機制進行安全性分析發現,所提機制在保證客體資源隱私性的前提下,實現了訪問過程透明性、無中心、可追蹤和可溯源。

下一步將結合具體應用場景分析論證方案的可行性和適用性,并對方案性能進行分析,研究數據訪問溯源機制。

猜你喜歡
發送給訪問控制客體
一種跨策略域的林業資源訪問控制模型設計
社會公正分配客體維度與道德情緒的雙向互動
淺議犯罪客體
【微信小課堂】:如何向好友發送語音
內外網隔離中ACL技術的運用
你說我說大家說
云計算訪問控制技術研究綜述
公告
我的錄夢機
概述奧地利普通術語學中的對象客體
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合