鄧三軍,袁凌云,+,孫麗梅
(1.云南師范大學(xué) 民族教育信息化教育部重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650500;2.云南師范大學(xué) 信息學(xué)院,云南 昆明 650500)
隨著物聯(lián)網(wǎng)的迅速發(fā)展和智能設(shè)備的廣泛應(yīng)用,物聯(lián)網(wǎng)的隱私保護(hù)越來越受人們的重視。當(dāng)大量的物聯(lián)網(wǎng)設(shè)備收集、處理和共享數(shù)據(jù)時(shí),需要有相應(yīng)的訪問控制機(jī)制來防止未經(jīng)授權(quán)的資源訪問,保護(hù)敏感的隱私數(shù)據(jù)。例如,物聯(lián)網(wǎng)設(shè)備需要能夠拒絕抽取其數(shù)據(jù)或控制其執(zhí)行的未授權(quán)請求[1]。訪問控制的主要功能是防止未經(jīng)授權(quán)的用戶操作,限制未授權(quán)用戶對特定設(shè)備的操作。通過訪問控制機(jī)制,不同權(quán)利級別的用戶擁有各自級別的訪問權(quán)限,各個(gè)用戶只能訪問操作對應(yīng)權(quán)限下的隱私數(shù)據(jù)資源。能夠有效保障數(shù)據(jù)的安全。因此,物聯(lián)網(wǎng)的訪問控制機(jī)制已成為保護(hù)數(shù)據(jù)安全和隱私的重要研究內(nèi)容之一[2]。
近些年來許多研究者都是以RBAC模型為基礎(chǔ)進(jìn)行擴(kuò)展研究的,因?yàn)閭鹘y(tǒng)的用戶-角色-權(quán)限訪問控制模型中,角色與權(quán)限直接關(guān)聯(lián),一旦系統(tǒng)為用戶分配了角色,那么用戶便具有了角色所關(guān)聯(lián)的所有權(quán)限知道用戶訪問結(jié)束。這種訪問控制模型可以在一定程度上解決物聯(lián)網(wǎng)跨域訪問控制、設(shè)備異構(gòu)性和訪問控制模型的可拓展性等問題。但是,RBAC是一種靜態(tài)訪問控制機(jī)制,不能夠動(dòng)態(tài)調(diào)整{user-role}、{role-permission}之間的對應(yīng)關(guān)系[3]。因此,為了保證物聯(lián)網(wǎng)訪問控制授權(quán)的動(dòng)態(tài)性,對RBAC模型的擴(kuò)展研究引起了研究者們的廣泛關(guān)注。如文獻(xiàn)[4]Jason提出了基于智能合約的角色訪問控制模型,該模型采用智能合約技術(shù)實(shí)現(xiàn)跨域訪問,使應(yīng)用程序能夠獨(dú)立分散運(yùn)行,實(shí)現(xiàn)資源訪問和操作等響應(yīng),驗(yàn)證用戶角色的所有權(quán)限。雖然有利于提高訪問控制的靈活性和安全性,但其訪問權(quán)限細(xì)粒度劃分還不夠,訪問控制的動(dòng)態(tài)性還有待提高。文獻(xiàn)[5]黃美蓉提出了一種基于特征提取的訪問控制方法,把RBAC和BLP模型相結(jié)合解決了多級別、異時(shí)異地的用戶授權(quán)管理問題,該方法在判斷用戶訪問請求時(shí)具有較高的準(zhǔn)確性。但沒有分析其細(xì)粒度和安全性問題。
隨著信任管理被引入到計(jì)算機(jī)領(lǐng)域中,在訪問控制機(jī)制中也逐漸用到了信任模型。在文獻(xiàn)[6]中,馬佳樂等提出一種基于信任度的訪問控制方法,通過增加用戶管理模塊實(shí)現(xiàn)對用戶行為的信任的管理,但是其應(yīng)用環(huán)境是針對云計(jì)算,并不適合物聯(lián)網(wǎng)的訪問控制。文獻(xiàn)[7]李由由等提出一種基于信任度屬性的用戶實(shí)時(shí)映射模型,通過引入上下文環(huán)境和時(shí)間衰減性動(dòng)態(tài)判斷信任屬性,但是模型中信任度的計(jì)算比較復(fù)雜。
因此,本文在現(xiàn)有研究的基礎(chǔ)上,將RBAC和ABAC兩種訪問控制模型的優(yōu)勢相結(jié)合,提出了一種基于用戶信任度和屬性的訪問控制模型(RBAC based on user trust and attribute,TA-RBAC),通過引入用戶信任度分析,建立更靈活的授權(quán)機(jī)制,并將用戶的用戶總體信任值和訪問控制策略信息等關(guān)鍵數(shù)據(jù)存儲(chǔ)到區(qū)塊鏈上,利用區(qū)塊鏈不可篡改和可追溯等安全性特征保證其安全性。增強(qiáng)了原有訪問控制模型的權(quán)限細(xì)粒度性、動(dòng)態(tài)性和安全性。
在TA-RBAC訪問控制模型中,引入信任約束和用戶屬性集等模型元素,取消了直接的用戶角色分配,以信任值作為動(dòng)態(tài)角色分配的基礎(chǔ),只有當(dāng)用戶的信任值達(dá)到訪問控制策略設(shè)置的信任閾值時(shí),才能獲得相應(yīng)的角色及其權(quán)限[8]。同時(shí),在用戶與訪問資源的交互過程中,訪問控制模型會(huì)根據(jù)用戶的屬性、行為、推薦等情況,動(dòng)態(tài)調(diào)整用戶的信任值,實(shí)現(xiàn)訪問控制權(quán)限的動(dòng)態(tài)分配。TA-RBAC模型結(jié)構(gòu)如圖1所示。
圖1 TA-RBAC模型結(jié)構(gòu)
1.1.1 參數(shù)定義
模型中基于傳統(tǒng)RBAC模型中得參數(shù)定義部分詳見文獻(xiàn)[10],此處不再贅述,僅給出本文改進(jìn)模型部分的參數(shù)定義。
定義1 屬性集:包括用戶屬性、可靠屬性、性能屬性和安全屬性。
定義2 信任約束:作為用戶和角色的中間聯(lián)系紐帶,代替了用戶和角色之間的直接指派關(guān)系,通過信任度計(jì)算模型計(jì)算用戶訪問請求的信任度,信任度取值范圍為0-1。
定義3 可信度閾值:表示激活角色所需的最小信任度值。
1.1.2 訪問控制流程設(shè)計(jì)
TA-RBAC模型的訪問控制工作流程是對RBAC模型的擴(kuò)展。圖2為TA-RBAC訪問控制的工作流程。詳細(xì)步驟如下。
圖2 TA-RBAC模型訪問控制流程
(1)當(dāng)用戶訪問物聯(lián)網(wǎng)資源時(shí),需要激活用戶角色,當(dāng)訪問控制模型收到訪問請求時(shí),模型根據(jù)資源的信任度計(jì)算機(jī)制計(jì)算用戶的信任值,得到用戶的總體信任值,然后判斷該值是否滿足模型預(yù)設(shè)的最小信任度閾值,若滿足,則激活用戶角色。否則,拒絕用戶訪問請求。
(2)模型根據(jù)信任度授權(quán)規(guī)則,判斷計(jì)算的所得的用戶總體信任度值判斷該用戶所屬的權(quán)限區(qū)間,并授予其相應(yīng)的權(quán)限。
(3)用戶執(zhí)行其所獲得權(quán)限內(nèi)的訪問操作。
(4)模型記錄整個(gè)訪問過程中用戶的操作行為,并將其作為歷史信任度值的計(jì)算參考。
(5)用戶結(jié)束訪問,模型更新用戶總體信任度值,并將更新后的用戶信任度值訪問控制策略存儲(chǔ)到區(qū)塊鏈,供其它訪問控制機(jī)制計(jì)算其信任度時(shí)參考。
用戶信任度值由直接信任和間接信任計(jì)算的總信任值表示。其中,間接信任包括歷史信任和推薦信任。Direct_T(u)、Indirect_T(u) 和Final_T(u) 分別表示直接信任度、間接信任度和總體信任度。
1.2.1 直接信任度計(jì)算
對于用戶直接信任度值的計(jì)算,采用模糊層次分析法(fuzzy analytic hierarchy process,F(xiàn)AHP)[9]。該方法通過將用戶的訪問行為分解為不同的特征屬性,然后將每個(gè)特征屬性劃分成多個(gè)更小的證據(jù)類型,見表1。這樣用戶行為的模糊不確定性評估問題就被細(xì)化為一個(gè)簡單信任證據(jù)加權(quán)和問題。其計(jì)算步驟如下。
表1 用戶行為信任值評估證據(jù)類型
(1)用戶行為證據(jù)的預(yù)處理。該過程包括兩個(gè)方面:
1)用戶行為信任證據(jù)的采集與更新。通過使用網(wǎng)絡(luò)流量監(jiān)測工具以及入侵檢測系統(tǒng)等來獲取用戶行為證據(jù)。
2)用戶行為信任證據(jù)數(shù)據(jù)的標(biāo)準(zhǔn)化處理。為了便于統(tǒng)計(jì),必須對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,將其處理為[0,1]區(qū)間內(nèi)遞增的無量綱值,用信任證據(jù)矩陣E=(eij)mn表示。
(2)計(jì)算權(quán)重向量矩陣,以用戶的可靠屬性P為例,與可靠屬性相關(guān)的證據(jù)p1,p2,…,pn, 對于這n個(gè)證據(jù),根據(jù)其重要性,兩兩對比,得到n階初始矩陣
(1)
(3)構(gòu)造P的傳遞矩陣表示為e=pij,i,j∈[0,N], 其中,若pi比pj更重要,則pij=0; 反之pij=1; 若pi和pj同等重要,則pij=0.5。
(2)
從而得到相應(yīng)的初始判斷矩陣dij=(epij)n×n, 對dij的每一行求和得到Q=(q1,q2,…,qn)T, 其中
(3)
然后對Q進(jìn)行正規(guī)化,得到可靠屬性P的權(quán)重向量Wp=(w1,w2,…,wn)T, 其中
(4)
以同樣的方式計(jì)算出性能屬性和安全屬性的權(quán)重向量,最后計(jì)算出安全屬性S、可靠屬性P和性能屬性R相對于用戶行為信任值的總體權(quán)重W
(5)
(4)利用信任證據(jù)矩陣和屬性權(quán)重向量計(jì)算信任評估向量F。根據(jù)E×W, 矩陣對角值就是信任屬性評估值向量F=(f1,f2,…,fm)。
(5)用戶直接信任度值的計(jì)算。即
(6)
1.2.2 間接信任度計(jì)算
當(dāng)用戶第一次獲得對某一個(gè)資源系統(tǒng)的訪問權(quán)限時(shí),信任度計(jì)算模型將根據(jù)用戶的操作行為生成第一個(gè)歷史信任值History_T(u)=Direct_T(u)。 隨著訪問量的增加,用戶的歷史信任度會(huì)隨著時(shí)間的推移逐漸改變
(7)
其中,F(xiàn)inal_Ti(u) 為用戶的總體信任度,ti表示訪問時(shí)間,記錄著用戶從開始訪問到結(jié)束訪問的時(shí)間,當(dāng)n=0時(shí),表示用戶是第一次訪問資源,沒有對應(yīng)的歷史信任值。
因此,根據(jù)用戶訪問其它組織資源時(shí)獲得的信任度值,計(jì)算出的用戶推薦信任度值就作為間接信任度計(jì)算的主要依據(jù)。假設(shè)用戶u此前已經(jīng)與n個(gè)物聯(lián)網(wǎng)設(shè)備有過交互,第i個(gè)設(shè)備對用戶u的信任度值為Fi_u(t), 其自身的推薦權(quán)重因子為S(i), 則用戶u的推薦信任度計(jì)算公式為
(8)
基于用戶的歷史信任和推薦信任,得出用戶間接信任度值
Indirect_T(u)=α×History_T(u)+β×Recommed_T(u)
(9)
其中,α+β=1。 當(dāng)用戶不是第一次與該物聯(lián)網(wǎng)設(shè)備交互,此時(shí)的間接信任度計(jì)算主要依據(jù)為用戶此前與該設(shè)備的歷史信任度,在間接信任度的計(jì)算中,兩者所在的比重為:History_T(u)>Recommend_T(u)。 如果用戶第一次與物聯(lián)網(wǎng)設(shè)備交互,則用戶的歷史信任度為0,即History_T(u)=0; 便將推薦信任度作為間接信任度值計(jì)算的主要參考。
1.2.3 總體信任度計(jì)算
通過直接信任值和間接信任值的線性組合計(jì)算總信任值
(10)
其中,k為用戶訪問的總次數(shù),a為常數(shù),用于調(diào)整不同階段用戶直接信任和間接信任的權(quán)重,當(dāng)用戶初次訪問物聯(lián)網(wǎng)設(shè)備時(shí),訪問次數(shù)k為0,F(xiàn)inal_T(u) 主要由Direct_T(u) 決定;隨著用戶訪問量的增加,k增大,Direct_T(u) 的權(quán)重減小,Indirect_T(u) 的權(quán)重增大,F(xiàn)inal_T(u) 主要由Indirect_T(u) 決定。
1.2.4 信任度等級劃分
在實(shí)驗(yàn)中,將用戶信任度等級設(shè)置為g=(1,2,3,4,5,6), 在資源訪問的實(shí)際交互過程中,絕大部分用戶行為是基本可信或者中等可信的,而惡意用戶和特級用戶只是一少部分。因此,將每個(gè)信任區(qū)間的間隔分別設(shè)置(0.1,0.25,0.5,0.75,0.9),相應(yīng)的信任等級和信任值區(qū)間對應(yīng)以及對應(yīng)的角色和訪問權(quán)限關(guān)系見表2。
表2 用戶信任度等級區(qū)間劃分
Nick Szabo于1994年首次提出了智能合約的概念。它是一種合約技術(shù),能夠以計(jì)算機(jī)代碼定義相關(guān)約束的條款。當(dāng)合約的所有參與者根據(jù)條款達(dá)成協(xié)議時(shí),智能合約中事先約定的權(quán)利和義務(wù)將以代碼的形式自動(dòng)執(zhí)行,并在整個(gè)合約執(zhí)行過程中保持不變,以便最終數(shù)據(jù)不會(huì)被篡改[10]。區(qū)塊鏈的安全性、去中心化和不可篡改性為智能合約的運(yùn)作提供了一個(gè)安全、開放和可追蹤的理想平臺。為了完成物聯(lián)網(wǎng)設(shè)備的訪問控制,將物聯(lián)網(wǎng)設(shè)備的訪問控制授權(quán)、用戶角色的激活、模型的信任閾值設(shè)置、訪問控制策略的存儲(chǔ)交給部署在以太坊的4個(gè)智能合約來完成,分別是閾值設(shè)定合約(SVC)、角色激活合約(RAC)、權(quán)限授予合約(VRC)和策略存儲(chǔ)合約(PSC)[11]。其具有如下特征:①允許模型組織向用戶分配角色。②允許模型以透明的方式管理修改信息。③允許模型向分配給用戶的角色授予合理的權(quán)限。④根據(jù)用戶信任狀態(tài)和設(shè)置的訪問信任度閾值,允許合約自動(dòng)運(yùn)行或停止。
智能合約(SC)設(shè)計(jì)如下:
SVC合約:此合約是根據(jù)物聯(lián)網(wǎng)設(shè)備所處的環(huán)境以及歷史訪問控制模型所獲得的數(shù)據(jù)來設(shè)定本模型的最低可信度閾值。輸入最低可信度閾值,輸出閾值設(shè)定成功與否,如算法1所示。
算法1:閾值設(shè)定合約SV CONTRACT
輸入:可信度閾值TrustValue。
輸出:Set value succeed/failed。
(1)begin
(2)if input == null
(3)return error
(4)end if
(5)if val == nil
(6)return TrustValue already exist
(7)val = APIStub.SetState(TrustValue)//調(diào)用SetState()方法, 設(shè)置可信度閾值
(8)if val == nil
(9)return Set value succeed
(10)else
(11)return Set value failed
(12)end
RAC合約:該合約的功能是根據(jù)模型計(jì)算出的用戶總體信任值與模型設(shè)定的最小信任閾值的比較來確定是否激活用戶角色,只有成功激活角色的用戶才能進(jìn)行后續(xù)授權(quán)操作。輸入總體信任度值,輸出用戶角色激活成功與否,如算法2所示。
算法2:用戶角色激活合約 RA CONTRACT
輸入:用戶總體信任度值Final_T(u)
輸出:Activate the role succeed/failed
(1)begin
(2)if input == null
(3)return error
(4)else if Final_T(u) > SetValue
(5)return Activate the role succeed
(6)else
(7)return Activate the role failed
(8)end
VRC合約:當(dāng)用戶被激活角色之后,模型需要根據(jù)其總體信任度值區(qū)分其所屬權(quán)限等級,并授予其合適的權(quán)限,此時(shí)就需要使用VRC合約完成此項(xiàng)工作。輸入用戶總體信任度值,輸出用戶權(quán)限等級,如算法3所示。
算法3:VR CONTRACT
輸入:用戶總體信任度值Final_T(u)
輸出:權(quán)限等級 bad user、General user、Primary user、Intermediate user、Advance user或Premium user
(1)begin
(2)if input == null
(3)return error
(4)else if Final_T(u) < 0.1
(5)return bad user
(6)else if Final_T(u) > 0.1 && Final_T(u) ≤ 0.25
(7)return General user
(8)else if Final_T(u) > 0.25 && Final_T(u) ≤ 0.5
(9)return Primary user
(10)else if Final_T(u) > 0.5 && Final_T(u) ≤ 0.75
(11)return Intermediate user
(12)else if Final_T(u) > 0.75 && Final_T(u) ≤ 0.9
(13)return Advance user
(14)else if Final_T(u) > 0.9 && Final_T(u) ≤ 1
(15)return Premium user
(16)end
PSC合約:此合約主要用于存儲(chǔ)訪問控制策略信息。通過該合約,模型訪問控制策略信息和用戶信任值以事務(wù)的形式存儲(chǔ)在區(qū)塊鏈中,以保證關(guān)鍵信息的安全性。輸入策略文件,輸出策略存儲(chǔ)成功與否,如算法4所示。
算法4:策略存儲(chǔ)合約 PS CONTRACT
輸入:策略文件 policy file
輸出:Storage succeed/failed
(1)begin
(2)if input == null
(3)return error
(4)else if policy file not exist
(5)policy file 請求存儲(chǔ)
(6)creat structure data for policy file
(7)policy file{Id Address Time}
(8)data = APIstub.GetState(policy file)
(9)if data == nil
(10)return Storage succeed
(11)else
(12)return Storage failed
(13)end
通過仿真實(shí)驗(yàn),對本文提出的基于信任度的物聯(lián)網(wǎng)訪問控制模型的有效性以及模型效率進(jìn)行測試和分析。通過XACML提供的標(biāo)準(zhǔn)測試包進(jìn)行測試,并在個(gè)人計(jì)算機(jī)(Personal Computer,PC)上構(gòu)建以太坊區(qū)塊鏈實(shí)驗(yàn)平臺,在每個(gè)實(shí)驗(yàn)節(jié)點(diǎn)上安裝由go語言編寫的geth客戶端,使用Remix集成開發(fā)環(huán)境編寫和編譯智能合約,采用web3.js與各geth客戶端進(jìn)行交互,完成智能合約部署。實(shí)驗(yàn)環(huán)境詳見表3。
表3 實(shí)驗(yàn)環(huán)境配置
本文主要根據(jù)用戶在不同時(shí)刻所獲得的權(quán)限等級的變化情況來反映用戶總體信任度值對模型授權(quán)的影響,并以此驗(yàn)證模型訪問控制授權(quán)的動(dòng)態(tài)性。
通過入侵檢測等網(wǎng)絡(luò)測試技術(shù)獲得用戶的行為證據(jù)值,再根據(jù)FAHP的原理做范化處理后,分別得到可靠屬性平均值R=(r1,r2,r3,r4)、 性能屬性平均值P=(p1,p2,p3,p4,p5,p6,p7,p8) 和安全屬性平均值S=(s1,s2,s3,s4)。 然后分析計(jì)算每個(gè)屬性的權(quán)重值,最后通過式(4)計(jì)算出用戶的直接信任度值。在此基礎(chǔ)上,根據(jù)式(5)~式(8)得出用戶的最終信任度值。
對物聯(lián)網(wǎng)設(shè)備在10個(gè)不同的時(shí)刻進(jìn)行10次訪問,其中隨機(jī)進(jìn)行合法訪問和非法訪問,得出用戶信任度值以及權(quán)限等級的變化情況如圖3所示。
圖3 不同實(shí)驗(yàn)時(shí)刻用戶信任度值和權(quán)限等級變化情況
圖3展示了傳統(tǒng)RBAC模型和TA-RBAC模型在不同實(shí)驗(yàn)時(shí)刻的信任度值以及權(quán)限等級的變化情況。如圖所示,傳統(tǒng)RBAC模型中用戶權(quán)限等級保持不變;TA-RBAC模型中用戶信任度值隨著用戶在不同的實(shí)驗(yàn)次序的不同訪問行為而發(fā)生變化,用戶的權(quán)限等級也隨之變化。進(jìn)一步分析實(shí)驗(yàn)結(jié)果可知,傳統(tǒng)RBAC模型中,在訪問會(huì)話時(shí)當(dāng)用戶根據(jù)需求被分配到角色之后,就意味著用戶獲得了該角色所具有的全部權(quán)限且該用戶在后續(xù)訪問中的角色和權(quán)限不會(huì)再發(fā)生變化;而在本文所設(shè)計(jì)的TA-RBAC模型中,用戶擁有的角色和訪問權(quán)限會(huì)隨著用戶總體信任度值的變化而動(dòng)態(tài)變化。這樣,用戶在之后的訪問中若有危險(xiǎn)行為,用戶的總體信任度值就會(huì)就降低,其權(quán)限等級也會(huì)隨之降低。
實(shí)驗(yàn)中,隨著非法訪問操作次數(shù)的增加,用戶信任度值發(fā)生了顯著變化。如圖4所示,用戶信任度值隨著非法行為次數(shù)的增加呈明顯下降趨勢,這與實(shí)際情況相符。據(jù)此,TA-RBAC模型能夠按照預(yù)期及時(shí)完成用戶角色和訪問權(quán)限的更新。
圖4 用戶總體信任度值變化趨勢
實(shí)驗(yàn)結(jié)果表明,在傳統(tǒng)的RBAC模型中引入信任屬性,不僅減少了非法用戶的非法訪問次數(shù),而且在一定程度上解決了網(wǎng)絡(luò)擁塞問題。在實(shí)驗(yàn)中,我們首先比較了傳統(tǒng)RBAC模型和TA-RBAC模型在網(wǎng)絡(luò)時(shí)延方面的差異。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 平均網(wǎng)絡(luò)延遲對比
從圖5的實(shí)驗(yàn)結(jié)果可以看出,在沒有用戶請求的情況下,TA-RBAC和傳統(tǒng)RBAC模型的網(wǎng)絡(luò)都沒有受到影響,兩者之間沒有明顯差異,隨著請求數(shù)量的逐漸增加,TA-RBAC和傳統(tǒng)RBAC模型的網(wǎng)絡(luò)延遲也隨著增大。然而,在相同的訪問請求數(shù)下,TA-RBAC模型的優(yōu)勢逐漸體現(xiàn)出來,其網(wǎng)絡(luò)延遲始終低于傳統(tǒng)RBAC模型的網(wǎng)絡(luò)延遲。進(jìn)一步分析表明,在TA-RBAC模型中引入了信任度值,信任度值的變化控制了訪問權(quán)限的授予,通過智能合約的自動(dòng)化執(zhí)行,提高了模型處理訪問請求的速度,在提高模型效率的同時(shí),降低了網(wǎng)絡(luò)延遲。
就吞吐量而言,如圖6所示,隨著訪問量的增加,兩種模型的吞吐量都呈降低趨勢,但是TA-RBAC模型一直處于優(yōu)勢位置,這主要得益于TA-RBAC模型引入了信任度屬性,增加了模型訪問控制授權(quán)的動(dòng)態(tài)性,相比于傳統(tǒng)RBAC模型固定的授權(quán)模式,其擁有更高的效率,這使得單位時(shí)間內(nèi)所處理的訪問控制請求數(shù)量增加,從而增加了網(wǎng)絡(luò)的吞吐量。基于區(qū)塊鏈的智能合約運(yùn)行使得訪問控制策略的授權(quán)過程更加準(zhǔn)確高效。
圖6 平均吞吐量對比
為了驗(yàn)證本文所提模型在阻止惡意用戶訪問及安全性方面的優(yōu)勢,通過與傳統(tǒng)基于角色的訪問控制模型以及基于智能合約的訪問控制模型進(jìn)行對比。由圖3.9可知,當(dāng)惡意用戶比例分別是10%,20%,30%,40%,50%,60%,70%時(shí),本文所提出的TA-RBAC模型、基于智能合約模型和傳統(tǒng)RBAC模型的用戶交互成功率都有不同程度的下降,但是,傳統(tǒng)RBAC模型的下降速度最慢,尤其是當(dāng)惡意用戶比例超過60%時(shí),訪問成功率仍然維持在90%以上,而本文所提出的模型訪問成功率已下降到0.5以下。這是因?yàn)門A-RBAC模型中引入了用戶信任度分析,當(dāng)用戶進(jìn)行惡意訪問時(shí),模型通過監(jiān)測用戶的惡意訪問行為,計(jì)算出的用戶信任度也會(huì)降低,當(dāng)用戶的信任度下降到閾值以下,就無法再訪問系統(tǒng)資源,所以用戶訪問數(shù)量一定時(shí),惡意用戶的比例越高,訪問成功的用戶數(shù)量就越低,訪問成功率也越低?;谥悄芎霞s的訪問控制模型的訪問成功率也維持在相對較低的水平,這是因?yàn)橹悄芎霞s是部署在區(qū)塊鏈鏈上自動(dòng)運(yùn)行的腳本代碼,通過智能合約調(diào)用實(shí)現(xiàn)訪問控制策略上鏈執(zhí)行和存儲(chǔ),使惡意用戶無法篡改和盜取訪問控制策略信息,從而確保了訪問控制機(jī)制的穩(wěn)定安全運(yùn)行。
圖7 訪問成功率隨惡意用戶所占比例的關(guān)系
因此,相對于傳統(tǒng)RBAC模型,本文所提出的AT-RBAC 模型能夠更好限制用戶的惡意訪問行為,更好保證物聯(lián)網(wǎng)數(shù)據(jù)資源的安全性。
本文針對傳統(tǒng)RBAC模型在物聯(lián)網(wǎng)訪問控制中缺乏訪問控制授權(quán)動(dòng)態(tài)性以及訪問控制授權(quán)決策效率低下等問題,提出了一種基于信任度和屬性的物聯(lián)網(wǎng)訪問控制模型TA-RBAC,闡述了TA-RBAC模型的信任度值計(jì)算機(jī)制以及模型的訪問控制過程,利用區(qū)塊鏈存儲(chǔ)訪問控制策略,保障了其安全性,通過信任度屬性和智能合約提高了模型訪問控制授權(quán)決策過程的效率和準(zhǔn)確性。最后,通過實(shí)驗(yàn)驗(yàn)證了該模型的有效性,可以更好保護(hù)物聯(lián)網(wǎng)設(shè)備資源的安全。然而,本文中訪問控制策略等關(guān)鍵信息都直接存儲(chǔ)在區(qū)塊鏈中,這將增加區(qū)塊鏈存儲(chǔ)壓力。因此,下一步的研究工作主要集中在解決區(qū)塊鏈的存儲(chǔ)負(fù)擔(dān)上。