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

        ?

        大數(shù)據(jù)環(huán)境下基于用戶屬性的細(xì)粒度訪問控制

        2020-07-20 06:15:54王嘉龍臺憲青馬治杰
        計算機工程與設(shè)計 2020年7期
        關(guān)鍵詞:用戶組訪問控制組件

        王嘉龍,臺憲青,馬治杰

        (1.中國科學(xué)院 物聯(lián)網(wǎng)研究發(fā)展中心 數(shù)據(jù)與服務(wù)研發(fā)中心,江蘇 無錫 214135;2.中國科學(xué)院大學(xué) 微電子學(xué)院,北京 101407; 3.中國科學(xué)院 電子學(xué)研究所蘇州研究院地理空間信息系統(tǒng)研究室,江蘇 蘇州 215121)

        0 引 言

        隨著大數(shù)據(jù)環(huán)境下數(shù)據(jù)量的飛速增長,越來越多的企業(yè)和機構(gòu)選擇通過搭建大數(shù)據(jù)平臺的方式進(jìn)行數(shù)據(jù)的存儲、交付和擴展[1]。然而,隨之帶來的則是平臺上的數(shù)據(jù)安全問題(如非法用戶入侵)。為保證數(shù)據(jù)的安全訪問,需要對用戶和數(shù)據(jù)進(jìn)行細(xì)粒度的訪問控制,實現(xiàn)最小授權(quán)原則[2],保證信息資源不被非法使用和訪問[3]。

        Apache Ranger是一個集中式授權(quán)管理框架[4],支持絕大多數(shù)開源大數(shù)據(jù)組件的訪問控制。然而,其訪問控制模型基于用戶/用戶組指定靜態(tài)策略進(jìn)行授權(quán),不能根據(jù)用戶的多個屬性標(biāo)簽進(jìn)行分組授權(quán),更不能根據(jù)用戶的屬性變化進(jìn)行權(quán)限的動態(tài)變更,使得其僅適合應(yīng)用于少量用戶的權(quán)限管理中(詳細(xì)解釋參考1.2節(jié))。

        本文在Ranger基礎(chǔ)上設(shè)計并實現(xiàn)一種基于用戶屬性的訪問控制模型(user attribute based access control, UABAC)。UABAC模型將密文策略屬性基加密算法(ciphertext policy attribute based encryption,CP-ABE)[5]應(yīng)用于Ranger的訪問控制中,實現(xiàn)了基于用戶屬性的細(xì)粒度訪問控制,很好解決了大數(shù)據(jù)環(huán)境中訪問控制面臨的問題。

        1 Ranger的訪問控制模型

        Apache Ranger是一個開源的中央授權(quán)管理組件,解決授權(quán)和審計的問題。它以插件化的形式,對Hadoop生態(tài)組件如HDFS、Hive、Hbase、Knox、Yarn、Storm、Solr、Kafka等,進(jìn)行細(xì)粒度的數(shù)據(jù)訪問控制。通過操作Ranger控制臺,管理員可以輕松通過配置策略來控制用戶訪問文件、文件夾、數(shù)據(jù)庫、表或列的權(quán)限。

        1.1 模型基本結(jié)構(gòu)與授權(quán)方式

        Ranger將策略直接與用戶/用戶組綁定,進(jìn)行用戶權(quán)限的授予,其權(quán)限模型如圖1所示,具體解釋如下。

        U:Users,即為終端上訪問數(shù)據(jù)和服務(wù)的用戶。

        G:Groups,即為多個用戶組成的用戶組,一個用戶組可以有多個用戶,一個用戶也可以屬于多個用戶組。

        S:Subjects,即為用戶/用戶組創(chuàng)建的訪問數(shù)據(jù)和服務(wù)的實體(如讀寫數(shù)據(jù)的應(yīng)用程序)。

        HS:Hadoop Services,即Hadoop服務(wù),如NameNode、Resource Manager等,用戶或應(yīng)用程序請求Hadoop服務(wù)以提交任務(wù)及讀取任務(wù)的狀態(tài)時,需獲取相應(yīng)的權(quán)限。

        OPHS:Operations on Hadoop Services,即Hadoop服務(wù)支持的操作類型,如向YARN上提交MR任務(wù)等。

        ES:Ecosystem Services,即Hadoop生態(tài)服務(wù),位于Hadoop上的一組服務(wù)聯(lián)合提供一項數(shù)據(jù)服務(wù),如HDFS提供了分布式文件服務(wù),Hive提供了數(shù)據(jù)倉庫服務(wù),ES也可被習(xí)慣性的叫作Hadoop組件。終端用戶請求Hadoop組件獲取其上的數(shù)據(jù)對象時,必須獲取對應(yīng)服務(wù)的權(quán)限。

        OB:Data and Service Objects,即Hadoop組件服務(wù)的數(shù)據(jù)對象,不同服務(wù)提供了不同的對象,如HDFS的文件、Hive的表等。

        OP:Operations on Objects,即數(shù)據(jù)對象支持的操作類型,如HDFS支持Read、Write,Hive表支持select、create 等。

        圖1 Ranger的訪問控制模型[6]

        Ranger的訪問控制模型中,包含了兩種授權(quán)對象:服務(wù)資源和數(shù)據(jù)資源[7]。這兩類授權(quán)對象涵蓋了大數(shù)據(jù)組件的所有資源類型,統(tǒng)一和規(guī)范化了大數(shù)據(jù)平臺中授權(quán)對象的形式化描述。不同的授權(quán)對象擁有不同的操作類型,在授權(quán)時,使用(用戶或用戶組,授權(quán)對象,操作類型)三元組的形式描述訪問控制策略,使得用戶或用戶組直接獲得該授權(quán)對象的相應(yīng)操作權(quán)限。用戶或用戶組和授權(quán)對象為多對多關(guān)系,一項授權(quán)對象可以賦給多個用戶或用戶組,一個用戶或用戶組也可以獲得多項授權(quán)對象的訪問權(quán)限。在Ranger的用戶模型中,一個用戶可以同時屬于多個用戶組,一個用戶組也可以包含多個用戶,用戶可從用戶組繼承其擁有的權(quán)限,當(dāng)用戶擁有多個用戶組的時候,就擁有了多個用戶組對應(yīng)的權(quán)限集合。用戶可以創(chuàng)建多個實體,并將部分或全部權(quán)限賦予該實體。

        1.2 模型的缺陷

        Ranger的訪問控制模型將權(quán)限和用戶或用戶組直接進(jìn)行綁定,兩者之間的耦合關(guān)系非常嚴(yán)重。因此,Ranger模型存在以下三方面的問題。

        由于Ranger通過靜態(tài)策略進(jìn)行逐條授權(quán),所以當(dāng)面對海量用戶時,會導(dǎo)致靜態(tài)策略的指數(shù)增長。這樣不僅帶來巨大的時間和空間成本[8],更使得后續(xù)的權(quán)限變更十分復(fù)雜。

        Ranger對單個用戶或用戶組進(jìn)行授權(quán),當(dāng)需要對多個用戶的權(quán)限進(jìn)行統(tǒng)一管理,而這些用戶又不在同一個用戶組中的時候,只能逐條修改每個用戶的策略,無法對一類用戶進(jìn)行有效的抽象。

        在大數(shù)據(jù)環(huán)境下,面對動態(tài)變化的用戶和數(shù)據(jù)資源時,Ranger的模型無法實現(xiàn)權(quán)限隨著用戶屬性變化而動態(tài)變更,且Ranger使用單一用戶ID區(qū)分用戶,因此難以滿足大數(shù)據(jù)環(huán)境下復(fù)雜的用戶模型。

        2 UABAC模型

        本文在Ranger訪問控制模型基礎(chǔ)上,將屬性作為訪問控制的關(guān)鍵要素[9],提出了基于用戶屬性的訪問控制技術(shù)(UABAC)。

        2.1 UABAC基本思想

        UABAC拋棄了Ranger中用戶組的概念,為用戶分配屬性值,多個屬性組成用戶的屬性集合。算法根據(jù)用戶屬性集合判定訪問是否合法,實現(xiàn)了基于屬性的訪問控制。圖2展示了UABAC的組成結(jié)構(gòu),其中灰色框部分為基于Ranger原生模型的改進(jìn),具體描述如下。

        圖2 UABAC

        舍棄了用戶組的概念,用戶不再屬于用戶組,權(quán)限也不再賦予用戶組。

        引入用戶屬性(UA),用戶可以擁有多個屬性,同一屬性也可被分給多個用戶。

        權(quán)限不再賦予用戶/用戶組,而是通過統(tǒng)一的訪問控制機制進(jìn)行管理,在該模塊中基于用戶屬性指定訪問控制樹,訪問控制樹的詳細(xì)描述可參見2.2中的定義7。

        用戶通過其創(chuàng)建的客體向大數(shù)據(jù)平臺發(fā)送訪問請求,每次請求視為一次單獨的會話,請求的客體繼承該用戶的屬性值。

        2.2 UABAC基本概念

        在Ranger訪問控制模型基礎(chǔ)上,UABAC引入了用戶屬性的概念,并通過屬性值的邏輯運算進(jìn)行訪問控制。下面對UABAC模型的重要概念進(jìn)行定義。

        定義1 用戶屬性。表示用戶某項特征的信息,如“age”表示用戶的年齡。

        定義2 屬性值。用戶屬性的對應(yīng)取值,如“age”的可取值為“17”。屬性與屬性值成對出現(xiàn),以“key:value”的形式賦值給用戶。

        定義3 屬性取值范圍。根據(jù)屬性表達(dá)的具體含義,其取值范圍可分為原子型和集合型兩種。當(dāng)屬性類型為原子型,該屬性的取值為單個元素。當(dāng)屬性類型為集合型,該屬性的取值為枚舉集合中的多個元素,以“key:value”的形式通過空格字符連接,如“attr:val1 attr:val2 attr:val3”。

        定義4 偏序關(guān)系。同一屬性的對應(yīng)取值可能存在偏序關(guān)系,如“年齡:17”<“年齡:18”,表示對于“年齡”屬性,其取值“17”偏序于“18”。

        定義5 包含關(guān)系。不同屬性之間可能存在包含關(guān)系,如“部門”∈“公司”,表示公司包含了部門,這符合實際生活中對用戶進(jìn)行分層管理的場景。

        定義6 屬性值邏輯運算式。屬性值對應(yīng)的“key:value”可通過邏輯運算符“AND”、“OR”、“[m]of[n]”(m,n均為整數(shù),m17 AND 部門:d1 OR (公司:c1 公司:c2 公司:c3 1of3)”(1of3表示前面枚舉的3個屬性中至少出現(xiàn)一個屬性)。

        定義7 訪問控制樹。以樹狀結(jié)構(gòu)對一條屬性值邏輯運算式的形式化表達(dá),如“年齡>17 AND 部門:d1 OR (公司:c1 公司:c2 公司:c3 1of3)”可使用如圖3所示的樹表示。用戶的屬性值集合帶入運算后,由根節(jié)點輸出True或False。

        圖3 訪問控制樹示例

        2.3 訪問控制機制描述

        為實現(xiàn)基于用戶屬性的訪問控制,引入了CP-ABE算法。CP-ABE算法是一種非對稱加密算法,可以在加密文件時為其指定訪問控制樹,并將其嵌入到密文中。當(dāng)數(shù)據(jù)使用者進(jìn)行解密時,當(dāng)且僅當(dāng)用戶的屬性集合滿足該訪問控制樹時,才可解密成果。通過CP-ABE算法加解密過程,可以實現(xiàn)基于用戶屬性的訪問控制。其在UABAC模型的應(yīng)用中具體步驟如下:

        (1)系統(tǒng)初始化。指定初始化參數(shù),使用CP-ABE算法生成系統(tǒng)唯一的公鑰和主鑰[10],并將公鑰和主鑰以字符串的形式存儲在關(guān)系型數(shù)據(jù)庫中。

        (2)用戶注冊。管理員向系統(tǒng)發(fā)送新用戶的用戶名和屬性列表,系統(tǒng)將屬性列表轉(zhuǎn)換成CP-ABE算法可以識別的格式,并生成用戶唯一的私鑰,將新用戶及其私鑰存儲在關(guān)系型數(shù)據(jù)庫中。

        (3)資源的授權(quán)。

        1)管理員選定要進(jìn)行授權(quán)的資源對象(如HDFS上的文件)以及對應(yīng)的操作類型(如文件的Read、Write);

        2)管理員指定本次授權(quán)的訪問控制樹policy_tree,形式與定義7中的示例類似;

        3)根據(jù)本次要授權(quán)的資源對象名,生成一個與當(dāng)前時間相關(guān)的隨機字符串M;

        4)使用CP-ABE算法加密M,將2)中的訪問控制樹作為CP-ABE算法加密時的控制字段,得到加密后的密文S;

        5)申請創(chuàng)建策略,得到唯一值pid,并將(資源名,pid)二元組作為訪問控制策略,存入策略列表中;

        6)將(pid,S,M, policy_tree)四元組存入關(guān)系型數(shù)據(jù)庫中。

        (4)資源的訪問控制。

        1)根據(jù)本次訪問的用戶名,獲取事先生成的該用戶唯一私鑰;

        2)根據(jù)本次訪問的資源名,獲取對應(yīng)的策略列表,得到授權(quán)時指定的唯一值pid;

        3)根據(jù)pid查找關(guān)系型數(shù)據(jù)庫,獲取授權(quán)時隨機字符串M,加密后字符串S,訪問控制樹policy_tree;

        4)CP-ABE算法使用用戶唯一私鑰,解密失敗,則判定用戶非法,解密成功,則得到字符串M1;

        5)判斷解密結(jié)果M1是否與M相等,若相等,則判定用戶合法,否則,判定非法。

        (5)權(quán)限的變更。資源授權(quán)策略變更和用戶屬性變更均會導(dǎo)致用戶權(quán)限的變更,其各自的工作流程如圖4所示。

        圖4 權(quán)限變更流程

        2.4 數(shù)據(jù)資源的粒度劃分

        為實現(xiàn)數(shù)據(jù)資源的細(xì)粒度訪問控制,根據(jù)大數(shù)據(jù)組件常見的存儲類型,使用分層的方式對資源對象進(jìn)行粒度劃分。

        Server

        URI

        Database

        Table

        Row

        Partition

        Column

        View

        各層的具體含義詳見表1。

        表1 資源粒度描述

        從根節(jié)點到葉子節(jié)點的完整路徑表示了一個具體的資源對象,如server1->db1->table1->col1,表示了服務(wù)server1上的db1數(shù)據(jù)庫中的table1表的col1列,對于不同類型資源對象,擁有相應(yīng)的權(quán)限集合。

        對于文件、消息隊列來說,存在read、 write兩種權(quán)限;

        對于表來說,存在以下幾種權(quán)限:

        SELECT 表的查找

        INSERT 行的插入

        UPDATE 行的修改

        DELETE 行的刪除

        CREATE 表的創(chuàng)建

        DROP 表的刪除

        二元組(資源對象,權(quán)限操作符)用于表示一個具體的授權(quán)對象,如(server1->db1->table1->col1,SELECT) 表示對server1上數(shù)據(jù)庫db1中表table1內(nèi)col1列的select權(quán)限。授權(quán)時以授權(quán)對象為中心,通過為其指定訪問控制樹來限制獲得對應(yīng)權(quán)限的用戶集合。

        3 基于UABAC的訪問控制系統(tǒng)

        基于UABAC模型,設(shè)計系統(tǒng)來實現(xiàn)對大數(shù)據(jù)平臺上文件、表、消息等資源的訪問控制。

        3.1 總體結(jié)構(gòu)

        圖5展示了訪問控制系統(tǒng)與其它平臺或模塊的交互關(guān)系,其具體含義如下。

        圖5 訪問控制系統(tǒng)總體設(shè)計

        外部數(shù)據(jù)平臺:第三方數(shù)據(jù)中心,可通過數(shù)據(jù)ETL將數(shù)據(jù)通過數(shù)據(jù)存儲與訪問平臺導(dǎo)入到大數(shù)據(jù)平臺中進(jìn)行存儲;

        數(shù)據(jù)上傳者:可將本地數(shù)據(jù)通過數(shù)據(jù)存儲與訪問平臺的接口存儲到大數(shù)據(jù)平臺中;

        數(shù)據(jù)使用者:可將大數(shù)據(jù)平臺中的數(shù)據(jù)通過數(shù)據(jù)存儲與訪問平臺的接口下載到本地使用;

        數(shù)據(jù)存儲與訪問平臺:數(shù)據(jù)服務(wù)平臺,提供接口以供外部用戶存儲、訪問大數(shù)據(jù)平臺中的數(shù)據(jù);

        大數(shù)據(jù)平臺:通過大數(shù)據(jù)組件(如HDFS、HBase、Hive、Kafka)搭建的數(shù)據(jù)集群;

        Ranger:提供對大數(shù)據(jù)組件的訪問控制,為實現(xiàn)基于用戶屬性的訪問控制,需要對Plugin和Ranger Policy Admin Server進(jìn)行修改;

        訪問控制系統(tǒng):本文所實現(xiàn)的應(yīng)用系統(tǒng),為管理員提供大數(shù)據(jù)平臺中數(shù)據(jù)資源的權(quán)限管理功能,達(dá)到了基于用戶屬性的訪問控制目的。另外,系統(tǒng)接收數(shù)據(jù)存儲與訪問平臺傳來的新數(shù)據(jù)標(biāo)簽,方便管理員對新數(shù)據(jù)進(jìn)行授權(quán)管理;

        管理員:訪問控制系統(tǒng)的使用者,通過可視化界面操作系統(tǒng),完成大數(shù)據(jù)平臺中數(shù)據(jù)的權(quán)限管理。

        在介紹了訪問控制系統(tǒng)與外部各平臺的交互情況之后,下面對系統(tǒng)的軟件架構(gòu)進(jìn)行設(shè)計。

        圖6展示了訪問控制系統(tǒng)的軟件架構(gòu)及其依賴的軟件環(huán)境。軟件依賴環(huán)境中列出了應(yīng)用系統(tǒng)所需的基本運行環(huán)境,其中操作系統(tǒng)可為主流操作系統(tǒng)中的任何一種;Spring Boot是應(yīng)用系統(tǒng)開發(fā)的基本框架,其中內(nèi)置的Tomcat服務(wù)器可作為系統(tǒng)啟動的環(huán)境;MySQL用于存儲應(yīng)用系統(tǒng)的業(yè)務(wù)數(shù)據(jù);Ranger是本系統(tǒng)依賴的大數(shù)據(jù)訪問控制組件,本系統(tǒng)基于Ranger實現(xiàn)訪問控制策略的管理和對大數(shù)據(jù)組件的訪問控制。

        圖6 訪問控制系統(tǒng)軟件架構(gòu)

        訪問控制系統(tǒng)包含了4層:數(shù)據(jù)層、服務(wù)層、應(yīng)用層、展示層。數(shù)據(jù)層提供系統(tǒng)數(shù)據(jù)的交互,Spring JPA是一個ORM框架,實現(xiàn)MySQL數(shù)據(jù)庫中表到j(luò)ava對象的映射;fastjson是JSON數(shù)據(jù)處理框架,用于實現(xiàn)json字符串和java對象間的相互轉(zhuǎn)換。服務(wù)層提供系統(tǒng)的公共服務(wù),包括訪問控制模型的實現(xiàn),CP-ABE算法以及系統(tǒng)日志等服務(wù)。應(yīng)用層為系統(tǒng)的功能模塊,分為用戶管理、權(quán)限管理等。展示層提供終端用戶訪問系統(tǒng)的接口,以兩種形式展示:Web UI提供的HTML界面和REST接口提供的JSON數(shù)據(jù)。服務(wù)層、應(yīng)用層、展示層整體通過Spring MVC框架實現(xiàn)。

        3.2 UABAC在系統(tǒng)中的實現(xiàn)

        圖7中灰色部分為UABAC模型在系統(tǒng)中實現(xiàn)涉及的模塊,其各部分含義如下。

        圖7 系統(tǒng)訪問控制模塊的實現(xiàn)

        UABAC管理接口:負(fù)責(zé)UABAC模型中資源的授權(quán)、權(quán)限變更的實現(xiàn)。

        MySQL:關(guān)系型數(shù)據(jù)庫,用于存儲UABAC模型對應(yīng)的訪問控制策略以及CP-ABE算法的公共參數(shù)。

        Ranger ABAC Provider:負(fù)責(zé)用戶訪問會話的攔截,并根據(jù)用戶名進(jìn)行會話信息的增強[11]。

        Ranger ABAC Matcher:負(fù)責(zé)UABAC模型中的權(quán)限驗證,在此屏蔽非法用戶的訪問。

        管理員授權(quán)時,調(diào)用UABAC Admin API進(jìn)行訪問控制策略的設(shè)置。UABAC Admin API中實現(xiàn)2.3中UABAC模型的資源授權(quán)算法,通過該算法的6個步驟,產(chǎn)生了(資源名,pid)二元組和(pid,S,M,policy_tree)四元組。將(資源名,pid)二元組包裝成Ranger策略,發(fā)送給Ranger Policy Admin Server進(jìn)行創(chuàng)建,當(dāng)策略創(chuàng)建成功后,將(pid,S,M,policy_tree)四元組存入到MySQL的對應(yīng)表中,將pid設(shè)為主鍵。

        當(dāng)用戶U發(fā)起對大數(shù)據(jù)平臺上某項數(shù)據(jù)TO的訪問請求時,Ranger Plugin會攔截用戶的該請求,并進(jìn)行權(quán)限的驗證。通過Ranger ABAC Provider和Ranger ABAC Matcher進(jìn)行會話的增強和調(diào)用UABAC模型的訪問控制算法進(jìn)行權(quán)限的驗證,其具體的工作流程如圖8所示。由于Ran-ger Plugin只能識別Ranger策略,因此將Ranger策略作為獲取(pid,S,M, policy_tree)四元組的橋梁,最終通過CP-ABE算法解密S判斷用戶是否滿足訪問控制策略的要求。

        圖8 會話劫持與訪問控制

        3.3 系統(tǒng)的優(yōu)點

        系統(tǒng)在Ranger基礎(chǔ)上進(jìn)行了功能增強,其在功能上的技術(shù)改進(jìn)為如下4點。

        (1)拋棄用戶組概念,引入用戶屬性集合概念。

        用戶組的管理方式不適用于本系統(tǒng)的應(yīng)用場景,因此拋棄用戶組的概念,為用戶引入屬性集合。用戶可擁有多個屬性標(biāo)簽,通過屬性標(biāo)簽的組合來代表用戶的身份,與實際場景中的用戶管理方式一致。另一方面,用戶屬性集合豐富了用戶的身份信息,使得可通過屬性集合來判定用戶的當(dāng)前身份。

        (2)實現(xiàn)了基于用戶屬性的訪問控制。

        通過引入CP-ABE算法,實現(xiàn)了基于用戶屬性的訪問控制,通過為授權(quán)對象指定訪問控制樹,使得只有屬性集合滿足該樹的邏輯運算的用戶可以獲得對應(yīng)的權(quán)限,極大豐富了授權(quán)方式,使得權(quán)限控制更加靈活。

        (3)細(xì)粒度的訪問控制。

        根據(jù)大數(shù)據(jù)組件的數(shù)據(jù)類型,對數(shù)據(jù)資源進(jìn)行了不同粒度的劃分,并將(資源對象,權(quán)限操作符)二元組作為最基本授權(quán)對象,達(dá)到了細(xì)粒度的訪問控制目的。

        (4)兼容性高、可擴展。

        UABAC模型在Ranger原生模型基礎(chǔ)上改進(jìn),極大利用了Ranger原生模型的優(yōu)點,當(dāng)Ranger組件支持新的大數(shù)據(jù)組件的訪問控制后,UABAC模型可以無縫兼容,不需要進(jìn)行任何的修改,具備很高的可擴展性。

        4 安全性分析

        本文在Ranger訪問控制模型上,引入CP-ABE算法,其主要區(qū)別為:在Ranger策略中加入訪問控制樹,并通過CP-ABE算法的加、解密過程判斷用戶是否符合策略要求。

        首先,Ranger作為成熟的開源商用軟件,其策略模型的安全性已經(jīng)得到檢驗。其次,本文在Ranger策略中加入的訪問控制樹,是嵌入到通過CP-ABE算法加密隨機字符串得到的密文中的,根據(jù)文獻(xiàn)[12],在密鑰不被泄漏的前提下,非法用戶是無法成功解密獲得加密前的隨機字符串的,又由于字符串的隨機性,非法用戶無法通過猜測獲得該字符串。因此,UABAC模型的安全性與CP-ABE算法一致,可以保證當(dāng)且僅當(dāng)用戶屬性滿足訪問控制樹要求時,才可以訪問目標(biāo)資源。

        5 仿真實驗

        本實驗使用IDEA作為開發(fā)工具,選擇Java作為編程語言,基于Spring Boot框架開發(fā)了一個REST服務(wù)器實現(xiàn)了UABAC模型,并選擇MySQL數(shù)據(jù)庫作為授權(quán)策略的持久化存儲,另外基于Mockito框架開發(fā)了一個客戶端模擬終端用戶發(fā)出對服務(wù)器的數(shù)據(jù)請求。

        定義REST服務(wù)器上的文件F作為客戶端發(fā)出訪問請求的目標(biāo)文件,為文件F指定訪問控制樹,如圖9所示。訪問控制樹中包含3種屬性attr0、attr1、attr2,它們的值分別可以被指定為val0、val1、val2。根據(jù)訪問控制樹的定義,只有用戶同時含有attr0、attr1、attr2這3種屬性的時候,且其屬性值為{val0、val1、val2}中的一個時,該用戶才滿足訪問控制樹的邏輯運算,進(jìn)而擁有對應(yīng)的訪問權(quán)限,即文件F的訪問權(quán)限。

        圖9 訪問控制樹

        設(shè)置每次實驗的總用戶數(shù)分別為10、100、500、1000、1500、2000、3000、4000、5000、10 000。利用隨機函數(shù)生成每個終端用戶的屬性,使得總用戶數(shù)中合法用戶(同時具有圖7中3種屬性的用戶)和非法用戶(不同時具有,或僅具有部分圖7中3種屬性的用戶)的比值約為1∶2。統(tǒng)計每次實驗通過的用戶數(shù)(合法用戶判定為合法、非法用戶判定為非法的總個數(shù))、通過的合法用戶數(shù)(合法用戶判定為合法的個數(shù))和通過的非法用戶數(shù)(非法用戶判定為非法的個數(shù)),并計算每次實驗中單條測試平均時間(對單個用戶判定合法/非法所消耗的時間),實驗結(jié)果見表2。

        表2 正確性驗證實驗結(jié)果

        表2展示了每次實驗的總用戶數(shù)、通過的用戶數(shù)、通過的合法用戶數(shù)以及通過的非法用戶數(shù),據(jù)此可計算每次實驗的正確率(正確率=通過的用戶數(shù)/總用戶數(shù))。由表中數(shù)據(jù)可得,隨著總用戶數(shù)量的增多,每次實驗中通過的用戶數(shù)始終等于總用戶數(shù),即UABAC模型的正確率均為100%。而且,合法用戶與非法用戶個數(shù)的比值接近于1∶2,符合實驗預(yù)期結(jié)果。實驗結(jié)果表明,UABAC模型能夠?qū)崿F(xiàn)基于用戶屬性的訪問控制功能,正確率為100%。Ranger原生訪問控制模型僅支持對用戶進(jìn)行分組管理和授權(quán),不支持為用戶添加豐富多樣的屬性值,更無法實現(xiàn)如圖9所示的通過AND、OR等邏輯運算符構(gòu)成的復(fù)雜訪問控制結(jié)構(gòu),因此無法實現(xiàn)本實驗對應(yīng)的訪問控制場景。

        圖10折線圖展示了每次實驗中對單個用戶進(jìn)行授權(quán)和鑒權(quán)所耗費的時間,以毫秒為單位。由圖可知,隨著用戶個數(shù)的增多,單個用戶的耗時不會呈現(xiàn)上升趨勢,且逐漸穩(wěn)定在350 ms左右。由于大數(shù)據(jù)環(huán)境下多為GB級以上的數(shù)據(jù)訪問,毫秒級別的訪問控制耗時幾乎可以忽略不計,而且隨著用戶個數(shù)的增多,訪問控制的耗時穩(wěn)定不變。由于CP-ABE算法需要進(jìn)行初始化以生成系統(tǒng)公鑰和主鑰,因此在用戶數(shù)量較少時單個用戶測試時間較高,而公鑰和主鑰只需要生成一次,隨著用戶數(shù)量的增多使得平均每個用戶的測試耗時降低。綜上分析,本文的訪問控制方法不受系統(tǒng)中總用戶個數(shù)的影響,適用于大數(shù)據(jù)環(huán)境下針對多種類、大批量用戶的訪問控制場景。

        圖10 測試時間統(tǒng)計

        6 結(jié)束語

        本文針對大數(shù)據(jù)環(huán)境下訪問控制技術(shù)面臨的挑戰(zhàn),研究了開源組件Ranger的不足,并基于Ranger設(shè)計與實現(xiàn)了一種基于用戶屬性的細(xì)粒度訪問控制模型,最后驗證了模型的正確性并測試了其訪問控制的耗時。本方案實現(xiàn)了用戶屬性級別的訪問控制,并可根據(jù)動態(tài)屬性實現(xiàn)權(quán)限的動態(tài)變更,更加靈活、準(zhǔn)確完成訪問控制系統(tǒng)的授權(quán)工作。然而,此模型在解決用戶屬性繼承關(guān)系的權(quán)限問題上仍存在缺陷,需通過深入分析與研究,加以改進(jìn)和完善。

        猜你喜歡
        用戶組訪問控制組件
        無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
        能源工程(2022年2期)2022-05-23 13:51:50
        文件共享安全管理方案探討
        新型碎邊剪刀盤組件
        重型機械(2020年2期)2020-07-24 08:16:16
        U盾外殼組件注塑模具設(shè)計
        ONVIF的全新主張:一致性及最訪問控制的Profile A
        青云QingCloud發(fā)布資源協(xié)作功能實現(xiàn)資源共享與權(quán)限控制
        電腦與電信(2016年3期)2017-01-18 07:35:44
        動態(tài)自適應(yīng)訪問控制模型
        淺析云計算環(huán)境下等級保護(hù)訪問控制測評技術(shù)
        大數(shù)據(jù)平臺訪問控制方法的設(shè)計與實現(xiàn)
        ASP.NET中細(xì)分新聞類網(wǎng)站的用戶對頁面的操作權(quán)限
        亚洲大胆美女人体一二三区| 性久久久久久久| 九九视频免费| 人妻少妇精品视频一区二区三区 | 午夜一区二区三区免费观看| 国产精品一区二区三久久不卡| 免费无遮挡禁18污污网站| 日韩成人免费一级毛片| 成人黄网站免费永久在线观看| 国产精品高潮呻吟av久久黄| 国产无遮挡又黄又爽免费网站| 久久国产自偷自免费一区100| 国产高跟丝袜在线诱惑| 性感女教师在线免费观看| 巨茎中出肉欲人妻在线视频| 亚洲国产精品线路久久| 国产精品污一区二区三区在线观看 | 亚洲人成网站77777在线观看 | 少妇人妻中文字幕hd| 两个人看的www高清视频中文| 99在线无码精品秘 入口九色| 日韩免费精品在线观看| 久久久久久久波多野结衣高潮| 久久久男人天堂| 日本高清免费播放一区二区| 在线观看av网站永久| 少妇脱了内裤让我添| 亚洲一区精品中文字幕| 久久综合另类激情人妖| 亚欧美日韩香蕉在线播放视频| 日本成人久久| 在线亚洲精品一区二区三区| 欧洲乱码伦视频免费| 亚洲 欧美 影音先锋| 日本岛国大片不卡人妻| 蜜桃一区二区三区视频| 东北妇女xx做爰视频| 99久久国内精品成人免费| 成年人视频在线观看麻豆| 日韩人妻无码一区二区三区久久| 国产黄页网站在线观看免费视频 |