亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈的多部門數(shù)據(jù)共享訪問控制流程建模

        2022-11-07 04:27:14蔣家昊鄧宏鏡黃河祥
        計算機集成制造系統(tǒng) 2022年10期
        關(guān)鍵詞:委派令牌訪問控制

        蔣家昊,張 璇,2,3+,鄧宏鏡,王 杰,黃河祥

        (1.云南大學 軟件學院,云南 昆明 650000;2.云南大學 云南省軟件工程重點實驗室,云南 昆明 650000;3.云南大學 教育部跨境網(wǎng)絡空間安全工程研究中心,云南 昆明 650000)

        0 引言

        目前,由于互聯(lián)網(wǎng)通信技術(shù)和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,大數(shù)據(jù)已經(jīng)滲透到生活中,良好的數(shù)據(jù)交互方式為各部門、各企業(yè)提供了便捷的數(shù)據(jù)共享,企業(yè)或政府部門可以利用大數(shù)據(jù)技術(shù)挖掘海量數(shù)據(jù)中的潛在價值,以幫助自身提高服務質(zhì)量、了解用戶意愿、推動產(chǎn)業(yè)升級[1]。在實際應用中,部門之間往往通過云服務器、物聯(lián)網(wǎng)等方法進行數(shù)據(jù)交互,從而使存儲和計算資源得到充分利用。然而,這些訪問方式仍然存在安全隱患,集中式管理方法可能導致數(shù)據(jù)泄露,無法保障數(shù)據(jù)訪問的安全性。例如,在邊境口岸出入境業(yè)務流程中,面向國際貿(mào)易的出入境人員首先需要申請各種許可證書,其需要在公安局、海關(guān)部門、工商局、交管等多個不同部門之間往返,這些部門間需要經(jīng)常共享和訪問數(shù)據(jù),如何確保數(shù)據(jù)的一致性、真實性、完整性和合法性顯得尤為重要。

        目前,面向多部門間的訪問控制模型均基于單一的訪問控制技術(shù),如基于角色的訪問控制(Role-Based Access Control, RBAC)、基于屬性的訪問控制(Attribute-Based Access Control, ABAC)等,然而這些技術(shù)各有弊端。例如,RBAC缺乏對管理員授權(quán)操作的限制,容易濫用角色權(quán)限,ABAC容易暴露敏感屬性。為了提高多部門多企業(yè)間數(shù)據(jù)共享的安全性,改善現(xiàn)有訪問控制模型的不足,本文面向邊境口岸的出入境信息共享業(yè)務,基于HyperledgerFabric聯(lián)盟鏈,混合基于屬性、能力的訪問控制技術(shù),提出一種基于區(qū)塊鏈的多部門數(shù)據(jù)共享訪問控制方法CABAC(capability-attribute based access control)。CABAC模型在繼承ABAC模型靈活性的基礎(chǔ)上引入能力令牌,通過不同角色各自具有的屬性分配相應的訪問權(quán)限,并生成相應的能力令牌,用戶可以根據(jù)訪問策略將自身擁有的能力令牌委派給其他用戶,獲得能力令牌的用戶便能對訪問對象執(zhí)行相應的操作。相比現(xiàn)有的訪問控制模型,該模型優(yōu)化了繁瑣重復的身份驗證過程,允許具有相同屬性的用戶之間進行能力委派,具有更好的靈活性。同時,與其他基于能力的訪問控制(Capability-Based Access Control, CBAC)模型不同,本文的能力令牌用單個能力劃分,一個用戶可以同時擁有多個能力令牌,因此在權(quán)限委派上具有更細的粒度。

        本文的主要貢獻如下:

        (1)首次提出混合基于屬性和能力訪問控制模型的數(shù)據(jù)共享訪問控制方案,通過開發(fā)鏈碼在實施訪問控制的前提下引入CBAC,以更細的粒度進行訪問能力的生成與委派,目前尚未有類似的方案。

        (2)針對面向多部門的出入境場景提出基于HyperledgerFabric聯(lián)盟鏈和星際文件系統(tǒng)(InterPlanetary File System, IPFS)的無中心安全信息存儲管理框架,對信息業(yè)務管理流程進行建模、闡述和分析,同時提供了標準可信的業(yè)務操作流程,能夠保證多部門協(xié)同過程中的數(shù)據(jù)不可篡改,而且業(yè)務流程按照約定的順序執(zhí)行,更符合多部門間數(shù)據(jù)共享的要求。

        1 相關(guān)工作

        1.1 中心化的訪問控制

        訪問控制技術(shù)最早可以追溯到1960年代提出的多級安全概念,由許多規(guī)則和法規(guī)組成,旨在對訪問計算、存儲、服務等資源設置條件,以確保安全訪問信息。隨著技術(shù)的發(fā)展,出現(xiàn)了自主訪問控制(Discretionary Access Control, DAC)和強制訪問控制(Mandatory Access Control, MAC),然后產(chǎn)生RBAC[2-3]和ABAC[4]。RBAC將用戶映射到角色,通過角色享有許可,通過定義不同角色與其之間的關(guān)系來規(guī)范用戶的行為,然而在開放的網(wǎng)絡環(huán)境中,RBAC無法適應復雜的環(huán)境,且存在角色爆炸問題;ABAC針對復雜信息系統(tǒng)中的細粒度訪問控制和大規(guī)模用戶動態(tài)擴展問題,將實體屬性的概念聯(lián)系在一起,通過對主體、客體、權(quán)限和環(huán)境統(tǒng)一建模進行訪問控制。GUSMEROLI等[5]提出CBAC模型,訪問權(quán)限以令牌(token)的形式存在,通過為實體賦予權(quán)限實施訪問控制,同時支持權(quán)限的委派和撤銷。然而,以上模型均基于中心化的架構(gòu),用戶無法得知自己數(shù)據(jù)被使用的情況。隨著云端技術(shù)與區(qū)塊鏈技術(shù)的成熟,傳統(tǒng)訪問控制模型的弊端逐漸顯露出來。

        1.2 基于區(qū)塊鏈的訪問控制

        自從NAKAMOTO等[6]首次提出比特幣區(qū)塊鏈后,區(qū)塊鏈技術(shù)即被廣泛應用于金融、醫(yī)療、交通等領(lǐng)域。訪問控制技術(shù)可以很好地與區(qū)塊鏈技術(shù)結(jié)合,達到對共享數(shù)據(jù)、物聯(lián)網(wǎng)設備和公共服務的訪問控制。CRUZ等[7]將RBAC與以太坊智能合約結(jié)合,提出使用智能合約的基于角色的訪問控制(Role Based Access Control using Smart Contract, RBAC-SC)框架,采用智能合約創(chuàng)建和分配用戶角色,同時提出質(zhì)詢—響應協(xié)議對角色的所有權(quán)、分配權(quán)進行驗證;ZHU等[8]通過集成ABAC和區(qū)塊鏈技術(shù),將基于事務的訪問控制(Transaction-Based Access Control, TBAC)運用于數(shù)字資產(chǎn)管理服務,開發(fā)了DAM-Chain數(shù)字資產(chǎn)管理平臺,能夠保存和發(fā)布主體與對象,發(fā)起訪問請求并授權(quán)。為了解決物聯(lián)網(wǎng)(Internet of Things, IoT)設備分布廣泛但資源有限,難以采用傳統(tǒng)方法抵御惡意攻擊的問題,ZHANG等[9]同樣提出一種RABAC方案,其在區(qū)塊鏈網(wǎng)絡中將節(jié)點分為授權(quán)節(jié)點和公共節(jié)點,將IoT設備與區(qū)塊鏈分開,引入授權(quán)節(jié)點充當區(qū)塊鏈客戶端,授權(quán)節(jié)點可以通過查詢部署過的鏈碼,檢索已經(jīng)注冊的訪問憑證,來驗證請求者的身份及訪問策略的有效性;NAKAMURA等[10]以CBAC為基礎(chǔ),通過以單獨的能力作為基本單位來定義能力令牌,將傳統(tǒng)的能力令牌劃分為多個單獨的能力令牌,實現(xiàn)了更細粒度的訪問控制和更靈活的令牌管理;QI等[11]考慮區(qū)塊鏈分布式的基礎(chǔ)架構(gòu)將物聯(lián)網(wǎng)中的產(chǎn)品信息直接存儲在鏈上會導致數(shù)據(jù)管理的效率和隱私問題,開發(fā)了Cpds壓縮數(shù)據(jù)共享框架,通過鏈下的方式在參與者將數(shù)據(jù)提交到區(qū)塊鏈上之前對數(shù)據(jù)進行壓縮和加密,用戶使用時再根據(jù)策略解密,使大型工業(yè)系統(tǒng)通過安全有效的方式存儲和訪問大量產(chǎn)品數(shù)據(jù);ZHANG等[12]為解決智能電網(wǎng)數(shù)據(jù)共享中的隱私保護和數(shù)據(jù)安全問題,提出一種具有隱私保護的多權(quán)限屬性加密方案;LYU等[13]提出一個基于區(qū)塊鏈的安全訪問控制框架,引入基于區(qū)塊鏈的訪問令牌機制實現(xiàn)對內(nèi)容的共享、審核和撤銷,同時引入布谷鳥過濾器提高驗證中令牌訪問查詢的效率;YANG等[14]提出一種基于屬性加密和區(qū)塊鏈技術(shù)的醫(yī)療數(shù)據(jù)共享方案,該方案結(jié)合基于屬性的加密和基于屬性的簽名,實現(xiàn)了數(shù)據(jù)隱私和細粒度的訪問控制機制;ULLAH等[15]提出一種基于區(qū)塊鏈的數(shù)據(jù)共享和訪問控制系統(tǒng)用于物聯(lián)網(wǎng)設備之間的通信,該系統(tǒng)通過訪問控制智能合約實現(xiàn)了物聯(lián)網(wǎng)中數(shù)據(jù)共享的信任、授權(quán)和認證;XU等[16]提出一種具有魯棒性的、基于身份的能力令牌管理策略,利用智能合約對訪問控制進行注冊、委派和撤銷;BANERJEE等[17]為了使用物聯(lián)網(wǎng)環(huán)境中的數(shù)據(jù),提出具有恒定大小密鑰和密文的多權(quán)限屬性加密方案;LIANG等[18]為了解決集中式醫(yī)療服務系統(tǒng)中的信息孤島問題,提出一個基于輕量級信息共享的醫(yī)療區(qū)塊鏈系統(tǒng),使用交織編碼器對原始電子病歷進行加密。不同于已有工作,本文提出一種混合訪問控制框架,在ABAC的基礎(chǔ)上結(jié)合CBAC,能夠以更細粒度的模式實現(xiàn)訪問能力的生成和委托,同時在數(shù)據(jù)存儲上引入IPFS來減輕區(qū)塊鏈的數(shù)據(jù)存儲壓力。

        2 總體框架設計

        本章介紹了CABAC框架,模擬了不同部門對邊境口岸出入境信息的訪問控制流程,通過制定適當?shù)脑L問策略和屬性也可將本框架拓展到其他領(lǐng)域。與現(xiàn)有工作不同的是,本文首次提出一種混合訪問控制框架,該框架在RABAC中引入CBAC,可在實施訪問控制的前提下以更細的粒度進行訪問能力的委派。

        任何訪問控制系統(tǒng)的目的都是誰(主體)可以對什么資源(對象)進行什么操作(或設置權(quán)限)[5],本文設計的訪問控制框架涉及如下元素:

        S={si},為系統(tǒng)中所有主體的集合;

        O={oj},為系統(tǒng)中所有對象的集合;

        OP={opk},為系統(tǒng)中聲明的操作的集合(如讀、寫、執(zhí)行);

        C={cl},為系統(tǒng)中所有環(huán)境上下文的集合(如時間);

        CAP={capm},為系統(tǒng)中所有能力令牌的集合。

        訪問控制系統(tǒng)可以定義為

        opk∈OP,cl∈C,capm∈CAP

        for somei,j,k,l,m。

        該規(guī)則表示任意一個訪問控制系統(tǒng)都能由連接了主體S、對象O、操作OP、環(huán)境上下文C和能力令牌CAP的規(guī)則集∑n定義。

        出入境人員和各部門人員可以通過智能手機或個人電腦訪問區(qū)塊鏈網(wǎng)絡,從而執(zhí)行訪問控制,如圖1所示。圖中,本文所提框架由聯(lián)盟區(qū)塊鏈和IPFS組成,主要參與者有檢疫部門、交管部門、海關(guān)部門和公安部門。由于在邊境口岸出入境信息共享業(yè)務流程中涉及海量數(shù)據(jù),包括圖片類型的數(shù)據(jù)(如許可證、車輛的照片等),區(qū)塊鏈技術(shù)可以提供數(shù)據(jù)共享查詢通道,但是存在缺陷。例如區(qū)塊的大小限制了存儲在區(qū)塊鏈上的文件數(shù)量和類型,在比特幣區(qū)塊鏈中,每個區(qū)塊的大小僅為1 M,能夠存儲的信息十分有限,因此本文用IPFS以鏈下存儲的方式對區(qū)塊鏈的可存儲行進行拓展,將圖片文件存儲在IPFS中,同時將其返回的Hash值存儲到區(qū)塊鏈上,檢索時只需要對應文件的Hash值即可在IPFS中查詢到相應的文件。訪問控制部分主要涉及屬性管理合約(Attribute Management Contract, AMC)、策略管理合約(Policy Management Contract, PMC)、令牌生成合約(Token Generation Contract, TGC)、令牌管理合約(Token Management Contract, TMC)和訪問控制合約(Access Control Contract, ACC)5個智能合約。在訪問控制過程中,AMC負責存儲和管理主體和對象的屬性,PMC負責存儲和管理訪問控制策略,TGC負責根據(jù)策略生成相應的能力令牌,TMC負責存儲和管理已有的能力令牌,ACC負責基于以上信息響應訪問請求,智能合約的詳細設計見3.1節(jié)。

        2.1 實現(xiàn)訪問控制的智能合約設計

        在圖1所示的CABAC框架中涉及AMC,PMC,ACC,TGC,TDC 5個智能合約,其中AMC,PMC,ACC與RABAC有關(guān),負責存儲和管理主體、對象屬性與訪問策略;TGC和TDC與CBAC有關(guān),負責生成和委派相應的能力令牌。

        (1)AMC負責對主體和對象的屬性進行存儲和管理。AMC由管理員部署,而且只有管理員有權(quán)限執(zhí)行它。在本文模擬的多部門系統(tǒng)中,主體可以為各個部門中的職員,管理員可以為各部門中的行政主管,如果主體為物聯(lián)網(wǎng)中的設備,則管理員可以為其擁有者。為了區(qū)分不同的主體,每個主體都有唯一的標識符指定其身份,對象同理。在本系統(tǒng)中,用HyperledgerFabric中證書頒發(fā)機構(gòu)CA頒發(fā)的證書作為身份標識信息,如表1中的“MI9ZT…”。表1所示為主體屬性和對象屬性的舉例展示,例如主體[MI9ZT…]的姓名為Alice,所屬部門為海關(guān),所屬科室為稅務室,職位為主管等;對象[FU1B3]是姓名為“Bob”的物聯(lián)網(wǎng)設備,所屬部門為檢疫部門,所屬科室為食品檢驗處。AMC還定義了SubjectGet(),SubjectAdd(),SubjectDel(),ObjectGet(),ObjectAdd(),ObjectDel()方法,分別用于獲取、添加、刪除主體和對象的屬性。

        表1 主體、對象的屬性

        (2)PMC負責存儲和管理本文定義的訪問策略,與AMC相同,只能由管理員(對象的擁有者)執(zhí)行。在本文中,訪問策略定義為一組主體屬性(SA)、一組對象屬性(OA)、一組訪問能力(Cap)和一組環(huán)境上下文(Cxt)的組合,即在環(huán)境上下文Cxt下,具有SA屬性的主體可以對具有OA屬性的對象進行Cap操作。在訪問能力Cap中設置了兩個參數(shù),第1個true/false代表是否具有該能力,第2個1/0代表是否可以對該能力進行進一步委派。在環(huán)境上下文Cxt中設置了一個參數(shù)Parm,如果Parm為0則不運用動態(tài)訪問控制,如果為1則需要再設置開始時間StartTime和結(jié)束時間EndTime,表示只有在這段時間內(nèi)才能訪問該對象。表2舉例說明了一個訪問控制策略,主體屬性SA={部門:海關(guān),科室:稅務室,職位:主管},對象屬性OA={部門:檢疫部門,科室:食品檢驗處},訪問能力Cap={Read,Write,Execute,Degelated},環(huán)境上下文Cxt={Parm:1,StartTime:1622505600,EndTime:1625043600}。其中StartTime和EndTime為Unix時間戳,代表在北京時間2021年6月1日8時~2021年6月30日17時,海關(guān)部門的稅務室主管可以對檢疫部門食品檢驗處的信息進行讀、寫和執(zhí)行操作,同時可以將這些能力進一步委派給下一個主體。與文獻[19]不同的是,由于訪問策略不針對某個特定主體或?qū)ο?,一個策略可以限定多個主體和對象之間的訪問控制,這些策略均以表格的形式存儲在PMC中,同時該合約中還定義了policyGet(),policyAdd(),policyDelete(),policyUpdate()方法,可以對訪問策略進行獲取、增加、刪除、和修改操作。

        表2 訪問策略示例

        續(xù)表2

        (3)TGC負責在ACC通過主體的訪問請求后,根據(jù)訪問策略為其生成相應的能力令牌,同時提供了tokenGenerate()方法,用于生成能力令牌。本文參考NAKAMURA等[10]的工作,將傳統(tǒng)包含多個操作的能力令牌拆分為單獨的能力令牌,能力令牌不再以主體為單位,而是以一個單一的授權(quán)能力作為單位,即不像之前的CBAC方案為每個主體頒發(fā)一個能力令牌,而是為每一個授權(quán)的能力創(chuàng)建一個單獨的令牌。能力令牌的結(jié)構(gòu)定義為

        CAPSo[IDs][IDo][OP]=

        {IDp,{IDCh},Dep,DR}。

        (1)

        式中:IDs為主體的身份標識;IDo為訪問對象的身份標識;OP為一系列操作的集合,如讀取、寫入、執(zhí)行等,如果為NULL,則不允許對資源進行操作;IDp為給主體S賦予權(quán)限的父主體的身份標識;IDch為主體S賦予權(quán)限的子主體的身份標識;Dep為令牌在委托樹中的深度;DR表示是否可以進一步委派權(quán)限。

        以表2為例,如果ACC通過主體的訪問請求,TGC則會為該主體生成相應的3個能力令牌,即讀(read)能力令牌、寫(write)能力令牌和執(zhí)行(execute)能力令牌。

        (4)TMC負責存儲和管理主體已經(jīng)獲得的能力令牌。在主體獲得其授權(quán)的能力令牌后,若訪問策略中的委派參數(shù)為1,則允許主體進一步委派或撤銷其所有能力令牌。該方案具有更細的粒度,能夠允許主體委派和撤銷某個單一能力,主體間的委派關(guān)系以樹的數(shù)據(jù)結(jié)構(gòu)進行存儲。PMC提供了tokenGet(),tokenDelegate()方法,用于獲取主體已經(jīng)獲得的令牌和主體對自己已擁有令牌的委派,圖2所示為3個主體間的委派關(guān)系。主體A擁有讀、寫和執(zhí)行3個能力令牌,通過委派權(quán)限為True可以看出這3個能力均可委派給別的主體,主體A將讀和寫能力授予主體B,將執(zhí)行能力授予主體C,同時指定賦予主體B的“讀”能力可以進一步委派,而“寫”能力不可以進一步委派,賦予主體C的“執(zhí)行”能力可以進一步委派。讀、寫和執(zhí)行能力令牌中的子主體分別變?yōu)锽,B,C,而且B,C主體中的委派樹深度在委派完成后都變?yōu)?。

        (5)ACC負責響應從主體到對象的訪問請求,在本框架中起決定作用。主體對某個對象發(fā)起訪問請求時,需要將請求信息以事務的形式發(fā)送給ACC的accessControl()方法,請求信息包括主體標識、對象標識和操作。當ACC收到該事務后,會從AMC中獲取主體和對象屬性,再從PMC中查詢是否有相應的訪問策略。隨后,ACC從TMC中查詢主體是否已經(jīng)具有對該對象的能力令牌,若該主體之前就曾獲得過訪問該對象的能力令牌,則ACC直接通過訪問請求;若主體未擁有能力令牌,則ACC基于這些屬性、訪問策略決定是允許該主體對對象的訪問申請,然后將響應結(jié)果返回給主體和對象。

        2.2 多部門協(xié)同訪問控制流程建模

        本文面向的業(yè)務場景主要涉及文件上傳和訪問控制流程兩個過程,本章將對這兩個業(yè)務過程進行建模。

        2.2.1 區(qū)塊鏈/IPFS存儲數(shù)據(jù)流程

        IPFS與區(qū)塊鏈的存儲數(shù)據(jù)流程如圖3所示,首先將文件上傳到IPFS,再將返回的存儲地址哈希值以事務的形式提交到區(qū)塊鏈中。

        算法1contentaddressedhash。

        Require:ImageFiles //網(wǎng)絡中節(jié)點上傳的圖片文件

        1:file←request.file['upload'] //初始化IPFS

        2:api←ipfsapi.connect['localhost',4 200] //存入IPFS的源文件

        3:res←api.add(file) //返回二進制編碼

        4:Hv←convert(file,binary) //創(chuàng)建源文件的二進制索引碼

        5:digest←ch('sha 256').update(file).digest()

        6:Mds←(digest.bytelength.toString(16),'hex') //返回基于內(nèi)容尋址的哈希值

        7:content_addressed←combine(Hv,Mds,digest)

        8:return content addressed hash

        各部門上傳文件到IPFS的執(zhí)行流程如算法1所示[20],算法描述如下:文件由網(wǎng)絡中的peer節(jié)點上傳,首先用ipfsapi.connect()方法建立與IPFS的連接,再調(diào)用add()方法將圖片文件存儲到IPFS中,文件將會被切分為碎片,每一個不超過256 kB,用convert()方法將其轉(zhuǎn)換為二進制格式后作為輸入進行一次SHA256哈希運算[13]得到一個digest值,將digest值轉(zhuǎn)換為十六進制得到該文件基于內(nèi)容尋址的哈希值。

        2.2.2 訪問控制流程

        整個訪問控制流程中各合約的交互過程如圖4所示。首先,主體將對目標對象的訪問信息以事務的方式發(fā)送給ACC,ACC接收到來自主體的信息后,從AMC中查詢并獲取主體和對象的屬性。接著,ACC從PMC中查詢是否有相應的訪問策略,否則將禁止訪問的結(jié)果返回給主體,是則從TMC中查詢該主體是否擁有訪問對象的能力令牌;如果主體之前就擁有該對象的能力令牌,則將允許訪問的結(jié)果返回給主體,否則調(diào)用TGC為其生成相應的能力令牌。最后,ACC將響應結(jié)果返回給主體。訪問控制流程如算法2所示。

        算法2AccessControlProcess。

        Require:Subject_ID,Object_ID,Operations

        //訪問主體的ID,訪問對象的ID以及對訪問對象執(zhí)行的操作

        1:AccessRequest←Acc.accessControl(Subject_ID,Object_ID,Operations) //AMC返回主體和對象的屬性

        2:Subject_attributes←AMC.SubjectGet(Subject_ID)

        3:Object_attributes←AMC.ObjectGet(Object_ID) //PMC返回匹配的訪問策略

        4:AccessControlPolicy←PMC.policyGet(Subject_attributes,Object_attributes)

        5:if AccessControlPolicy!=“”

        6:Allowed_Capabilities←AccessControlPolicy.Capability

        7:end if //查詢主體是否擁有訪問令牌

        8:Subject.token←TMC.tokenGet(Subject_ID)

        9:if Subject.token==“”

        10:Subject.token←TGC.tokenGenerate(Allowed_Capabilities)

        11:end if

        12:return Subject.token

        主體對對象發(fā)起的訪問控制流程如算法2所示,算法描述如下:主體首先調(diào)用ACC的accessControl()方法,將自身的ID、訪問對象的ID、對訪問對象進行的操作作為輸入,AMC調(diào)用SubjectGet()和ObjectGet()方法獲取主體與對象的屬性,隨后調(diào)用PMC中的policyGet()方法獲取相應的訪問策略,如果訪問策略不為空,則TMC調(diào)用tokenGet()方法查詢主體是否之前已經(jīng)獲得過對象的訪問能力令牌,如果為空,則調(diào)用tokenGenerate()方法為主體生成策略中定義的能力令牌,將結(jié)果返回給主體和對象。

        算法3TokenDelegationProcess。

        Require:SubjectA_ID,SubjectB_ID,CapabilityToken

        1:DelegationRequest←TMC.tokenDelegate(SubjectA_ID,SubjectB_ID,CapabilityToken,1,)

        //主體A將自己的能力令牌委派給對象B

        2:SubjectA.token←TMC.tokenGet(SubjectA_ID)

        3:if CapabilityToken==SubjectA.token

        4:if SubjectA.token.DelegationRight==1 //主體A的能力令牌是否可以進行委派

        5:SubjectB.token←TGC.tokenGenerate(SubjectA.token.Capability)

        6: SubjectB.token.Parent←SubjectA_ID

        7:SubjectB.token.Dep+=1

        8: SubjectB.token.DelegationRight←1

        9: end if

        10:end if

        10:return SubjectB.token

        主體間的令牌委派流程如算法3所示,算法描述如下:主體A想將自己的能力令牌CapabilityToken委派給主體B,使其擁有和自己同樣的能力。首先主體A調(diào)用TMC中的tokenDelegate()方法,將自己的ID、主體B的ID、想要委派的能力令牌、是否允許進一步委派作為輸入;然后TMC調(diào)用tokenGet()方法查詢主體A是否擁有該能力令牌,如果查詢結(jié)果與A的能力令牌匹配,則為B生成相同的能力令牌,并逐一修改令牌中的參數(shù)(父主體Parent、委派深度Dep、進一步委派權(quán)限D(zhuǎn)elegationRight);最后將能力令牌返回主體B。

        3 CABAC實驗分析

        通過仿真實驗對本文所提CABAC框架的有效性進行驗證。實驗環(huán)境如下:操作系統(tǒng)為Ubuntu 18.04.5,CPU為Inter(R) Core(TM) i7-10700 CPU @ 2.90 GHz,內(nèi)存大小為16 GB,HyperledgerFabric版本為1.4.0,node.js版本為10.13.0,npm版本為6.4.1。測試區(qū)塊鏈網(wǎng)絡運行在單臺主機上,包括兩個CA和一個Orderer節(jié)點。

        3.1 訪問控制實例

        傳統(tǒng)的RABAC模型在訪問過程中通過主體和對象屬性決定是否允許訪問。由于混合了CBAC,相比基于單獨機制的訪問控制,本文方案在整個訪問流程中包含有關(guān)能力令牌生成與委派的相關(guān)步驟。通過生成細化到單獨操作的能力令牌,例如read操作能夠以更細粒度限制主體對訪問對象進行的操作,同時令權(quán)限的分配和管理更加靈活。

        本章模擬了一個訪問控制過程實例:部門數(shù)據(jù)管理員將文件上傳到IPFS并獲取哈希值QmSyzwqkCnp8waXtx7BqUN15DWPAGg9gCWgYeH

        n81MnrFK,如圖5所示;管理員為主體A添加主體屬性,如圖6所示;主體A對對象B發(fā)起訪問請求,獲得能力令牌并將該能力令牌委派給主體C。首先,ACC調(diào)用TGC中的tokenGeneration()ABI后,根據(jù)PMC中的訪問策略為主體生成相應的能力令牌。圖7所示為主體A的“read”能力令牌,該令牌表明主體A可以對對象B進行read操作,因為是新生成的令牌,所以沒有父主體,也沒有子主體,相應地在委派樹中的深度也為0。DelegationRight表明主體A可以將該令牌進行進一步委派。與NAKAMURA等[10]的方案不同的是,本文方案默認所有能力令牌的委派均可撤回。

        主體A將該“read”能力令牌委派給主體C后,能力令牌的信息如圖8所示??梢奃epth從0變成1,表示該令牌在委派樹中的深度為1,即有過一次委派關(guān)系。

        最終ACC會返回訪問請求信息,如圖9所示。ACC通過與其他幾個合約交互驗證了主體A和對象B的屬性,并根據(jù)匹配的訪問策略賦予主體A“read”能力令牌,同時指定該“read”令牌可進一步委派。

        3.2 區(qū)塊鏈網(wǎng)絡性能

        3.2.1 存儲空間性能

        本文使用的數(shù)據(jù)為云南省各口岸班車運營數(shù)據(jù),包括20萬條記錄。

        存儲空間壓縮比

        (2)

        式中:H為區(qū)塊鏈中每個區(qū)塊頭數(shù)據(jù)量的大??;iHash為事務在IPFS中的哈希值;N為區(qū)塊鏈中事務的數(shù)量;Tx為區(qū)塊鏈中每個事物的數(shù)據(jù)量。區(qū)塊頭為80 B,每個區(qū)塊平均包括500個交易,每個交易約為250 B。IPFS返回的哈希值只占46 B。由公式可以推出隨著交易數(shù)量的增加,數(shù)據(jù)的壓縮比明顯增加。圖10和圖11所示分別為數(shù)據(jù)壓縮比隨數(shù)據(jù)量的變化,以及區(qū)塊鏈直接存儲數(shù)據(jù)和存儲IPFS文件哈希值的數(shù)據(jù)量對比。可見,隨著數(shù)據(jù)量的增大,源數(shù)據(jù)與返回哈希值的占用存儲空間比越大,用IPFS進行鏈下存儲的優(yōu)勢越明顯。

        3.2.2 訪問控制流程性能

        本文方案與其他文獻方案在訪問控制流程中的功能比較如表3所示。

        表3 訪問控制方案對比

        由表3可見,ABAC[9]訪問控制方案在區(qū)塊鏈網(wǎng)絡中將節(jié)點分為授權(quán)節(jié)點AN和公共節(jié)點,當公共節(jié)點發(fā)起訪問請求時,授權(quán)節(jié)點AN將調(diào)用鏈碼記錄信息并響應訪問請求。AN不僅為物聯(lián)網(wǎng)設備分配屬性,還對訪問策略進行制定和決策,其通過查詢部署過的鏈碼檢索已經(jīng)注冊的訪問憑證,來驗證請求者的身份和訪問策略的有效性;CBAC[10]通過將單獨的能力作為基本單位定義能力令牌,將傳統(tǒng)的能力令牌劃分為多個單獨的能力令牌,實現(xiàn)了更細粒度的訪問控制和更靈活的令牌管理。本文方案結(jié)合ABAC和CBAC,既可指定訪問策略,也可劃分能力令牌,還能支持區(qū)塊鏈數(shù)據(jù)以鏈下方式存儲。

        在不同操作下,CABAC方案中不同操作的平均耗時如圖12所示,其中橫軸坐標表示操作名稱,縱軸坐標表示平均耗時(單位:ms)。可見,本文方案中所有操作消耗的時間均在450 ms之內(nèi),相比獲取屬性和委派能力令牌操作,生成能力令牌操作和最后的返回訪問結(jié)果操作需要花費更多的時間,但總體上可以接受。

        4 結(jié)束語

        為了實現(xiàn)部門與部門間的細粒度訪問控制,本文提出一種基于區(qū)塊鏈的多部門數(shù)據(jù)共享混合訪問控制方案,使用HyperledgerFabric聯(lián)盟鏈作為區(qū)塊鏈基礎(chǔ)架構(gòu),通過編寫鏈碼進行訪問控制和權(quán)限的委派,同時利用IPFS以鏈下存儲的方式拓展區(qū)塊鏈的可存儲性,減輕了區(qū)塊鏈的數(shù)據(jù)存儲壓力,最后通過仿真實驗驗證了該方案的可行性。與現(xiàn)有基于區(qū)塊鏈的訪問控制方案相比,本文提出混合基于屬性和能力的訪問控制模型的數(shù)據(jù)共享訪問控制方案,能夠在實施訪問控制的前提下,以更細的粒度進行訪問能力的生成與委派。然而,本文方案未涉及基于屬性文件的加密,在數(shù)據(jù)安全性上有待提升。此外,在本文提出的令牌委派過程中,尚未對委派對象設置限制,容易出現(xiàn)隨意委派能力令牌的情況。這是未來進一步研究的內(nèi)容。

        猜你喜歡
        委派令牌訪問控制
        稱金塊
        基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
        動態(tài)令牌分配的TCSN多級令牌桶流量監(jiān)管算法
        計算機工程(2018年8期)2018-08-17 00:26:54
        ONVIF的全新主張:一致性及最訪問控制的Profile A
        動態(tài)自適應訪問控制模型
        通信學報(2016年11期)2016-08-16 03:20:32
        淺析云計算環(huán)境下等級保護訪問控制測評技術(shù)
        大數(shù)據(jù)平臺訪問控制方法的設計與實現(xiàn)
        煙草專賣內(nèi)管委派制對縣級局內(nèi)部監(jiān)管的思考
        新形勢下如何發(fā)揮專賣內(nèi)管委派制的作用和效能
        高校實行會計委派制的利與弊
        成人无码区免费AⅤ片WWW| 亚洲一区二区三区高清在线观看| 亚洲天堂成人av在线观看| 人妻无码一区二区三区免费| 亚洲精品成人网站在线观看| 曰本人做爰又黄又粗视频| 国产精品户露av在线户外直播| 久久老子午夜精品无码| 蜜桃在线观看视频在线观看| 亚洲av成熟国产精品一区二区 | 在线视频色系中文字幕| 人妻无码中文字幕| 狠狠色婷婷久久一区二区| 国产精品美女久久久久浪潮AVⅤ| 国产精品自拍视频在线| 一本久道综合色婷婷五月| 毛片在线播放a| 国产精品无码久久久久久蜜臀AV | 国产黑色丝袜在线观看视频| 日本免费三级一区二区| 久久天天爽夜夜摸| 视频一区视频二区亚洲免费观看| 亚洲精品偷拍自综合网| 狠狠躁天天躁中文字幕| 可以免费在线看黄的网站| 久久婷婷夜色精品国产| 久久精品免费一区二区喷潮| 中文字幕久无码免费久久| 久久久一本精品99久久| 国产内射一级一片内射高清视频1| 97se狠狠狠狠狼鲁亚洲综合色| 中国亚洲女人69内射少妇| 蜜臀av一区二区三区人妻在线| av在线免费高清观看| 全球中文成人在线| 欧洲一区在线观看| 久久国产精品免费专区| 国产麻豆精品一区二区三区v视界| 一区一级三级在线观看| 亚洲国产一区中文字幕| 五月av综合av国产av|