閱讀《基於區塊鏈和用戶信用度的訪問控制模型 》總結


王海勇,潘啟青,郭凱璇.基於區塊鏈和用戶信用度的訪問控制模型[J].計算機應用,2020,40(06):1674-1679.


摘要

針對當前訪問控制中用戶權限不能隨着時間動態變化和訪問控制合約中存在的安全性問題,提出了一種以基於角色的訪問控制(RBAC)模型為基礎,同時基於區塊鏈和用戶信用度的訪問控制模型。首先,角色發布組織分發角色給相關用戶,並把訪問控制策略通過智能合約的方式存儲在區塊鏈中,該合約設定了訪問信用度閾值,合約信 息對系統內任何服務提供組織都是可驗證、可追溯且不可篡改的。其次,該模型根據用戶的當前信用度、歷史信用度 和推薦信用度評估出最終信用度,並根據最終信用度獲得對應角色的訪問權限。最后,當用戶信用度達到合約設定 的信用度閾值時,用戶就可以訪問相應的服務組織。實驗結果表明,該模型在安全訪問控制上具有一定的細粒度、動態性和安全性。
關鍵詞: 區塊鏈 智能合約 基於角色的訪問控制模型 訪問控制 用戶信用度


1 傳統訪問模型

  • 自主訪問控制DAC(Discretionary access control)指由用戶有權對自身所創建的訪問對象(文件、數據表等)進行訪問,並可將對這些對象的訪問權授予其他用戶和從授予權限的用戶收回其訪問權限。通過授權列表(或訪問控制列表)來限定哪些主體針對哪些客體可以執行什么操作。如此將可以非常靈活地對策略進行調整。自主訪問控制中,用戶可以針對被保護對象制定自己的保護策略。每個主體擁有一個用戶名並屬於一個組或具有一個角色,每個客體都擁有一個限定主體對其訪問權限的訪問控制列表(ACL),每次訪問發生時都會基於訪問控制列表檢查用戶標志以實現對其訪問權限的控制。
  • 強制訪問控制MAC(Mandatory Access Control))用來保護系統確定的對象,對此對象用戶不能進行更改。用戶不能改變他們的安全級別或對象的安全屬性。這樣的訪問控制規則通常對數據和用戶按照安全等級划分標簽,訪問控制機制通過比較安全標簽來確定的授予還是拒絕用戶對資源的訪問。一種強加給訪問主體(即系統強制主體服從訪問控制策略)的一種訪問方式,它利用上讀/下寫來保證數據的完整性,利用下讀/上寫來保證數據的保密性。
  • 基於屬性的訪問控制ABAC(Attribute Based Access Control)利用相關實體(如主體、客體、環境)的屬性作為授權的基礎來研究如何進行訪問控制。基於這樣的目的,可將實體的屬性分為主體屬性、實體屬性和環境屬性。在基於屬性的訪問控制中,訪問判定是基於請求者和資源具有的屬性,請求者和資源在ABAC中通過特性來標識。
  • 基於角色的訪問控制模型RBAC(Role-Based Access Control)問許可權分配給一定的角色,用戶通過飾演不同的角色獲得角色所擁有的訪問許可權。五個基本數據元素 :用戶 users(USERS)、角色 roles(ROLES)、目標 objects(OBS)、操作 operations(OPS) 、許可權 permissions(PRMS)。
    會話(sessions):表示用戶和角色之間被激活的映射關系。

2 基於區塊鏈和用戶信用度的訪問控制模型

2.1 BC-RBAC框架及工作流程

  • 本文提出的基於區塊鏈和用戶信用度的訪問控制(BCRBAC)模型,主要為了研究如何能安全有效地實現組織之間的訪問控制。BC-RBAC是一種基於區塊鏈和智能合約的訪問認證機制,主要由角色發布方、用戶、服務提供方、合約層和合約信用層組成。

  • 此架構主要以A為角色發布方、 B為服務提供方進行描述。工作流程:

    • 角色發布方A給用戶分配角色,並制定角色許可權限, 把相應的訪問策略(包含制定用戶信用度閾值)通過智能合約的形式發布在區塊鏈上,也將用戶信用度評估值發布在區塊鏈上,作為其他組織的推薦信用度
    • 用戶從角色發布組織A獲得角色信息,向服務提供方B資源訪問請求。當用戶初次進入訪問系統時,沒有對應的信用度
    • 服務提供方B接收到用戶的訪問請求,先查看智能合約上的訪問策略,審核用戶是否擁有相關角色,如果審核通過,對應智能合約就被激活。激活的智能合約根據合約設定和用戶的信用度,允許或禁止用戶的訪問。
    • 當用戶信用值達到合約條件或用戶未擁有用戶信用度時,服務提供方B確認用戶請求,並對用戶的訪問過程進行信譽評估。會根據從區塊鏈上其他組織提供的推薦信用度、用戶之前訪問的歷史信用度和當前信用度值,得出用戶最終信用度,並寫入區塊鏈中,方便其他組織參考。
    • 當評估的信用度低於智能合約中設定的信用值時,相應的智能合約就會自動暫停,用戶將無法訪問到服務提供方B。

2.2 面向BC-RBAC的智能合約

  • 合約層放置着系統內所有的智能合約(SmartContract,SC),SC用於創建用戶的角色分配和設置信用值的閾值,然后在區塊鏈上發布。
  • SC具有以下特征:
    • 允許角色發布組織向用戶發布角色(和其他相關 信息);
    • 允許角色發布組織以透明的方式管理和修改信息;
    • 允許角色發布組織在需要時撤銷向用戶發布的角色;
    • 允許合約根據信用度狀態和設置的訪問信用值,自動運行或停止相關合約。
  • 功能:添加/刪除角色,停用SC、根據據信用度存在狀態設置相應判斷結果、設定的信用度閾值和用戶的實際信用值判定SC是否暫停

2.3 用戶信用度計算方法

用戶信用度是由當前信用度、歷史信用度和推薦信用度組成的。

  • 當前信用度Current_T(u) 采用的是模糊層次分析法(FuzzyAnalyticHierarchyProcess,FAHP)。這個方法是先將用戶行為分為n個特性,再把每個特性分為多個證據類型,從而把模糊的、不確定的用戶行為信用評估問題細化成簡單的、明確的信用證據加權求和問題。

  • 歷史信用度History_T(u) 當用戶第一次登錄進行訪問控制后,首個歷史信用度 :History_T1(u)= Current_T1(u)。隨着訪問的次數逐漸增多,用戶的歷史的信用度就需要根據時間的推移而逐漸改變:

  • 推薦信用度Recommend_T(u)是根據用戶與其他服務組織之間的信用值計算所得。

  • 最終信用度的計算
    Final_T(u)=a×Current_T(u)+b×History_T(u)+c× Recommend_T(u),其中a+b+c=1, a>b>c。

其中a的比重最大, a的大小還依據用戶當前操作的危險級別來進行調整,危險級別分為高危級別和低危級別,分別對應a1和a2, a1 >a2。當用戶當前操作的危險級別為高危級別時,a1無限趨於1,b和c的比重就趨於0。設置等級的目的是防止用戶惡意刷取信用度,把信用度刷到最高級別,然后進行高危操作。


閱讀本篇論文,創新點在於信用度的生成與使用,並且也有意識的防止惡意提高信用度的行為。區塊鏈的運用有利於防止不法分子對於合約的攻擊和篡改,增強了訪問控制的安全性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM