鄒佳順,張永勝+
(1.山東師范大學(xué) 信息科學(xué)與工程學(xué)院,山東 濟(jì)南250014;2.山東師范大學(xué) 山東省分布式計(jì)算機(jī)軟件新技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南250014)
在訪(fǎng)問(wèn)控制技術(shù)[1]被提出的幾十年里,多種訪(fǎng)問(wèn)控制模型被相繼提出,如自主訪(fǎng)問(wèn)控制 (discretionary access control,DAC)、強(qiáng)制訪(fǎng)問(wèn)控制 (mandatory access control,MAC)、基于角色的訪(fǎng)問(wèn)控制 (role-based access control,RBAC)等眾多訪(fǎng)問(wèn)控制模型[2-4]。近年來(lái),基于屬性的訪(fǎng)問(wèn)控制 (attribute based access control,ABAC)由于能解決復(fù)雜信息系統(tǒng)中的細(xì)粒度訪(fǎng)問(wèn)控制及大規(guī)模用戶(hù)動(dòng)態(tài)擴(kuò)展問(wèn)題逐漸成為研究的熱點(diǎn)。ABAC 模型通過(guò)對(duì)主客體以及環(huán)境的屬性值分析,實(shí)現(xiàn)細(xì)粒度授權(quán),同時(shí)ABAC 模型有著XACML (extensible access control markup language,XACML)框架以及SAML (security assertion markup language,SAML)的支持,在具體實(shí)施及單點(diǎn)登錄方面也有著較好的應(yīng)用前景[5,6],但正由于A(yíng)BAC 模型的高度授權(quán)靈活性導(dǎo)致其策略管理的困難。本文針對(duì)傳統(tǒng)ABAC 模型中檢索策略效率較低的問(wèn)題,提出一種基于前綴標(biāo)記運(yùn)算的策略檢索方法。
關(guān)于訪(fǎng)問(wèn)控制中的策略問(wèn)題研究目前有很多,但其中與策略檢索方法的相關(guān)研究很少。馬曉普等對(duì)訪(fǎng)問(wèn)控制中的策略分類(lèi)方法進(jìn)行研究,提出了一種分類(lèi)方法[7]。李瑞軒等對(duì)訪(fǎng)問(wèn)控制模型中的策略沖突問(wèn)題進(jìn)行研究,其中用于檢測(cè)和解決策略沖突的方法概括為3種:基于優(yōu)先權(quán)法、基于描述邏輯法和基于圖論法[8]。黃廷森等提出了一種擴(kuò)展的基于A(yíng)BAC 的策略合成代數(shù)來(lái)實(shí)現(xiàn)安全策略的合成,并結(jié)合了一種新的策略合成算子實(shí)現(xiàn)訪(fǎng)問(wèn)控制策略的合成[9]。本文通過(guò)對(duì)ABAC 模型中決策過(guò)程進(jìn)行研究,在傳統(tǒng)ABAC模型中,每次授權(quán)都需要將屬性信息與策略集中的策略進(jìn)行一一對(duì)比。當(dāng)需要分析的屬性數(shù)目過(guò)多時(shí),對(duì)策略集中每條策略的分析時(shí)間也會(huì)相應(yīng)延長(zhǎng),這將大大降低系統(tǒng)的運(yùn)行效率。尤其是隨著近年來(lái)云計(jì)算技術(shù)的迅速發(fā)展,大規(guī)模用戶(hù)群逐漸成為云環(huán)境下的訪(fǎng)問(wèn)控制系統(tǒng)中的典型特征,低效率的策略檢索將會(huì)降低系統(tǒng)的服務(wù)效率與用戶(hù)的體驗(yàn)。因此,本文通過(guò)研究屬性的存儲(chǔ)方式,引入前綴標(biāo)記等相關(guān)概念實(shí)現(xiàn)高效率的策略檢索操作。
ABAC模型通過(guò)實(shí)體屬性實(shí)現(xiàn)對(duì)用戶(hù)權(quán)限的細(xì)粒度控制及決策操作。ABAC 模型中的實(shí)體屬性包括主體屬性、客體屬性以及環(huán)境屬性3種。對(duì)于A(yíng)BAC 模型中的基礎(chǔ)概念,本文沿用以往文獻(xiàn)的相關(guān)定義[10]。
定義1 實(shí)體屬性是描述實(shí)體固有特征的變量。可以抽象化為二元組A (name,Ran)。其中name和Ran分別表示屬性的名稱(chēng)和取值范圍。本文用SA、OA、EA 分別表示主體屬性、客體屬性和環(huán)境屬性。
定義2 ABAC 可以抽象化為一個(gè)四元組U (SA,OA,EA,P)。其中P 表示權(quán)限集合。集合 {SA,OA,EA}代表ABAC模型中所有屬性的集合。
XACML是OASIS制定的基于XML 標(biāo)準(zhǔn)的一種通用的用于保護(hù)資源的策略語(yǔ)言和訪(fǎng)問(wèn)決策語(yǔ)言。傳統(tǒng)ABAC模型可以實(shí)現(xiàn)在XACML框架下的決策授權(quán)。
圖1是XACML框架下的授權(quán)決策模型,PIP (策略信息點(diǎn))收集屬性SA、OA、EA,通過(guò)上下文處理器將相關(guān)信息傳送至PDP (策略決策點(diǎn))。PDP通過(guò)將屬性信息與策略集中的策略一一對(duì)比,最終確定合適的策略,并作出相應(yīng)授權(quán)。授權(quán)信息傳送至PEP (策略執(zhí)行點(diǎn)),完成對(duì)資源的相應(yīng)操作。
圖1 XACML決策模型
由于A(yíng)BAC模型通過(guò)屬性值的范圍描述策略的條件,因此在查詢(xún)過(guò)程中也存在著一定的困難。
表1是ABAC模型中的部分策略集,其中英文字母a、b、c、d、e、f、g、h、i、j、k、l、m 代表屬性值。符號(hào)op∈ {read,write…}表示用戶(hù)操作,sign∈ {+,-}表示授權(quán)符號(hào)。
表1 ABAC中部分策略集
當(dāng)用戶(hù)申請(qǐng)對(duì)資源的訪(fǎng)問(wèn)時(shí),與該用戶(hù)相關(guān)的屬性信息會(huì)被進(jìn)行分析,并與策略集中的策略進(jìn)行對(duì)比。通常傳統(tǒng)ABAC模型中的策略分析是指對(duì)策略集中的每條策略進(jìn)行遍歷,判斷用戶(hù)相關(guān)屬性信息是否符合該條策略,若符合則為之授予相應(yīng)權(quán)限。這種檢索方式的缺點(diǎn)是效率低下。主要是由于對(duì)每條策略進(jìn)行分析時(shí),都需要細(xì)粒度地對(duì)該策略中的屬性進(jìn)行分析,最壞的情況下,該條策略最后一個(gè)屬性與該用戶(hù)已有屬性不符,因此可能需要對(duì)該條策略的十幾個(gè)甚至幾十個(gè)屬性進(jìn)行一一比較后才會(huì)發(fā)現(xiàn)該條策略不符合要求。而在云環(huán)境中的大型策略庫(kù)中可能存儲(chǔ)成千上萬(wàn)條,甚至十幾萬(wàn)條策略,這種檢索方式會(huì)大大降低系統(tǒng)的效率。
為提高系統(tǒng)的策略檢索效率,本文引入前綴標(biāo)記的相關(guān)概念。本文要求屬性庫(kù)中所有屬性排列都存在一定的順序。
在傳統(tǒng)訪(fǎng)問(wèn)控制模型中,屬性集中的每個(gè)屬性雖然有著自己的序號(hào),但該序號(hào)并沒(méi)有太多的意義,僅是為了便于存儲(chǔ)而設(shè)置的ID 號(hào)。本文中屬性的序號(hào)有著特殊的意義,前綴標(biāo)記的定義也是建立在屬性序號(hào)的基礎(chǔ)之上。表2是ABAC模型中的部分屬性集。
表2 ABAC模型屬性集
如表2所示,本文規(guī)定每個(gè)屬性都有著自己的ID 號(hào),且在屬性存儲(chǔ)表中,ID 號(hào)應(yīng)從0進(jìn)行編號(hào)以便于后續(xù)檢索操作。
定義3 前綴標(biāo)記是用來(lái)表示屬性分配情況的二進(jìn)制字符串,本文用符號(hào)PS (prefix sign,PS)表示。根據(jù)屬性集中的屬性ID 號(hào),為策略集以及訪(fǎng)問(wèn)用戶(hù)生成相應(yīng)的前綴標(biāo)記,用以標(biāo)記某條策略或某用戶(hù)所擁有的屬性集合并通過(guò)邏輯或運(yùn)算實(shí)現(xiàn)對(duì)策略的高效檢索。
定義4 可能滿(mǎn)足的策略是指在該策略中的屬性與用戶(hù)訪(fǎng)問(wèn)系統(tǒng)時(shí)系統(tǒng)收集的屬性完全相同的策略。
如圖2 所示,前綴標(biāo)記共由n 位組成,其中n 為ABAC模型中所有屬性的個(gè)數(shù)。前綴標(biāo)記每位取值為0或1,其中0代表不包含該屬性,1 表示含有該屬性。因此,策略集中的每條策略以及用戶(hù)屬性信息均可以表示為前綴標(biāo)記的形式。
圖2 前綴標(biāo)記
以表1策略集為例,假設(shè)策略集中的7種屬性的ID 號(hào)與其下標(biāo)相同,且模型中所有屬性只有這7 種,即與表2對(duì)應(yīng)的n取值為7。則該策略集引入前綴標(biāo)記后可以表示為表3,策略部分此表中省略。
表3 采用前綴標(biāo)記的策略表示
圖3是引入前綴標(biāo)記后,本文針對(duì)XACML 框架中的PIP模塊與PDP模塊進(jìn)行的改進(jìn)。
圖3 部分框架改進(jìn)
其中,PIP與PDP模塊中分別添加了支持前綴標(biāo)記的PS模塊。PIP將主客體、環(huán)境屬性信息收集后,由PS 模塊生成相應(yīng)的前綴標(biāo)記 (可稱(chēng)為原始前綴標(biāo)記),并與屬性一起送至PDP。PDP中的PS模塊通過(guò)對(duì)前綴標(biāo)記的分析,將其與策略集中策略的前綴標(biāo)記依次進(jìn)行邏輯或運(yùn)算,其中運(yùn)算結(jié)果與原始前綴標(biāo)記相同的策略即為可能滿(mǎn)足的相關(guān)策略,再將屬性信息與該策略進(jìn)行比較分析。本文將通過(guò)用戶(hù)實(shí)例,進(jìn)一步分析策略檢索過(guò)程。
假設(shè)用戶(hù)U 被分配主體屬性Att0、Att1,且客體屬性為Att3、Att4,環(huán)境屬性為Att5、Att6。系統(tǒng)的策略集如表3所示,則當(dāng)用戶(hù)向系統(tǒng)發(fā)出訪(fǎng)問(wèn)請(qǐng)求時(shí),策略檢索過(guò)程可以分為以下幾步:
步驟1 SA (Att0,Att1)→PIP;OA (Att3,Att4)→PIP;EA (Att5,Att6)→PIP。表示所有授權(quán)屬性信息被收集到策略信息點(diǎn)。
步驟2 PS Module→Create PS;PS=1101111。表示PS模塊根據(jù)收集的屬性信息以及屬性的ID 號(hào)生成原始前綴標(biāo)記1101111。
步驟3 (SA,OA,EA,PS)→PDP。表示屬性信息與原始前綴標(biāo)記一起被送到策略決策點(diǎn)。
步驟4 1101111||1001010=1101111;Query;P1 1101111||1001001=1101111;Query;P2 1101111||0110101=1111111≠1101111;Return;
表示將原始前綴標(biāo)記與每條策略的PS進(jìn)行或運(yùn)算,若得出的值仍為原始前綴標(biāo)記值則該策略是可能滿(mǎn)足的策略,系統(tǒng)將對(duì)此策略進(jìn)行查詢(xún),直到對(duì)所有策略的前綴標(biāo)記運(yùn)算完成后返回。由上述運(yùn)算結(jié)果可知,該用戶(hù)可能滿(mǎn)足的策略為P1、P2。
為測(cè)試基于前綴標(biāo)記運(yùn)算的檢索算法的效率與空間消耗問(wèn)題,本文在Windows XP 平臺(tái)上利用Java語(yǔ)言編寫(xiě)測(cè)試代碼,分別測(cè)試了傳統(tǒng)ABAC 模型中檢索可能滿(mǎn)足的策略的效率與基于前綴標(biāo)記法的檢索效率。硬件環(huán)境為Pentium (R)Dual-Core 1.73 GHz,1 GB 內(nèi)存,并使用Matlab7.0作為數(shù)據(jù)分析軟件。本文為用戶(hù)分配主客體、環(huán)境屬性各一個(gè),策略集中每條策略均是5種屬性,通過(guò)增加策略數(shù)目測(cè)試兩者的檢索效率。其中,使用傳統(tǒng)檢索算法的部分核心代碼如下:
本文只考慮檢索可能滿(mǎn)足策略的效率問(wèn)題,暫不考慮對(duì)策略進(jìn)行分析所耗用的時(shí)間,因此本文令程序中的用戶(hù)不滿(mǎn)足策略集中的所有策略。通過(guò)逐漸增加策略數(shù)目,并取10次實(shí)驗(yàn)的平均數(shù)值得到時(shí)間消耗結(jié)果如圖4,圖5為兩種檢索算法的空間消耗比較。
圖4 時(shí)間消耗比較
圖5 空間消耗比較
圖4中的最好情況是指使用傳統(tǒng)檢索算法進(jìn)行檢索時(shí),策略中的第一個(gè)屬性不存在于用戶(hù)擁有的屬性中,此時(shí)直接檢索第二條,耗費(fèi)的時(shí)間也最少。最壞情況是指當(dāng)檢測(cè)到最后一個(gè)屬性時(shí)才發(fā)現(xiàn)該策略不是可能滿(mǎn)足的策略。平均情況是取兩種情況的平均值。通過(guò)對(duì)圖4及相關(guān)代碼的分析可知,本文提出的基于前綴標(biāo)記運(yùn)算的策略檢索方法時(shí)間消耗主要來(lái)源于Java中進(jìn)制之間的轉(zhuǎn)換,且與傳統(tǒng)方法相比具有更高的效率。圖5則表示出本文算法在空間消耗方面的優(yōu)勢(shì)。
綜上所述,本文提出的基于前綴標(biāo)記運(yùn)算的策略檢索算法與傳統(tǒng)檢索算法相比具有高效率、低消耗的優(yōu)點(diǎn)。
ABAC模型是一種靈活性強(qiáng)、細(xì)粒度控制的訪(fǎng)問(wèn)控制模型,能夠?qū)崿F(xiàn)對(duì)用戶(hù)權(quán)限的靈活限制,同時(shí)保障數(shù)據(jù)信息的安全性。但在保障數(shù)據(jù)安全性的同時(shí)提高訪(fǎng)問(wèn)控制系統(tǒng)的性能也至關(guān)重要,ABAC 模型中的策略檢索效率問(wèn)題是影響著訪(fǎng)問(wèn)控制系統(tǒng)性能的重要因素之一,本文提出的基于前綴標(biāo)記運(yùn)算的策略檢索方法通過(guò)對(duì)前綴標(biāo)記的邏輯或運(yùn)算實(shí)現(xiàn)對(duì)可能滿(mǎn)足的策略的快速定位。仿真實(shí)驗(yàn)結(jié)果表明,本文提出的檢索方法在A(yíng)BAC 模型中具有高效、低耗的優(yōu)點(diǎn),大大減少了傳統(tǒng)策略檢索中所耗費(fèi)的時(shí)間,并且在實(shí)現(xiàn)方面,有著XACML框架等技術(shù)的有力支持。
[1]WANG Xiaoming,F(xiàn)U Hong,ZHANG Lichen.Research progress on attribute-based access control[J].Chinese Journal of Electronics,2010,38 (7):1660-1667 (in Chinese). [王小明,付紅,張立臣.基于屬性的訪(fǎng)問(wèn)控制研究進(jìn)展 [J].電子學(xué)報(bào),2010,38 (7):1660-1667.]
[2]ZHAO Jing,YANG Rui,JIANG Luansheng.RBAC permission access control model based on data objects[J].Computer Engineering and Design,2010,31 (15):3353-3355 (in Chinese).[趙靜,楊蕊,姜灤生.基于數(shù)據(jù)對(duì)象的RBAC權(quán)限訪(fǎng)問(wèn)控制模型 [J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31 (15):3353-3355.]
[3]ZHAO Weidong,BI Xiaoqing,LU Xinming.Design and implemention of fine-grained RBAC model[J].Computer Engineering and Design,2013,34 (2):474-479 (in Chinese).[趙衛(wèi)東,畢曉清,盧新明.基于角色的細(xì)粒度訪(fǎng)問(wèn)控制模型的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34 (2):474-479.]
[4]WEN Junhao,ZENG Jun,ZHANG Zhihong.Security policy of attribute-based access control in SOA [J].Journal of Computer Science,2010,37 (9):147-150 (in Chinese). [文俊浩,曾駿,張志宏.SOA 中基于屬性的訪(fǎng)問(wèn)控制安全策略[J].計(jì)算機(jī)科學(xué),2010,37 (9):147-150.]
[5]GAI Xinmao,SHEN Changxiang,LIU Yi,et al.Formal model for attribute-based access control via constraint satisfac-tion problem [J].Journal of Chinese Computer Systems,2011,32 (11):2217-2222 (in Chinese). [蓋新貌,沈昌祥,劉毅,等.基于屬性訪(fǎng)問(wèn)控制的CSP模型 [J].小型微型計(jì)算機(jī)系統(tǒng),2011,32 (11):2217-2222.]
[6]LU Jianfeng,LIU Huawen,WANG Duoqiang.Classification method for access control policies[J].Journal of Wuhan University of Technology (Information & Management Engineering),2011,33 (6):878-882 (in Chinese).[魯劍鋒,劉華文,王多強(qiáng).訪(fǎng)問(wèn)控制策略的分類(lèi)方法研究 [J].武漢理工大學(xué)學(xué)報(bào),2011,33 (6):878-882.]
[7]MA Xiaopu,LI Zhengyan,LU Jianfeng.Research on specification language and policy conflict of access control policy [J].Computer Engineering &Science,2012,34 (10):48-52 (in Chinese).[馬曉普,李爭(zhēng)艷,魯劍鋒.訪(fǎng)問(wèn)控制策略描述語(yǔ)言與策略沖突研究[J].計(jì)算機(jī)工程與科學(xué),2012,34(10):48-52.]
[8]LI Ruixuan,LU Jianfeng,LI Tianyi,et al.An approach for resolving inconsistency conflicts in access control policies [J].Chinese Journal of Computers,2013,36 (6):1200-1223 (in Chinese).[李瑞軒,魯劍鋒,李添翼,等.一種訪(fǎng)問(wèn)控制策略非一致性沖突消解方法 [J].計(jì)算機(jī)學(xué)報(bào),2013,36 (6):1200-1223.]
[9]HUANG Tingsen,YE Chunxiao,HU Haibo.Study on composing attribute-based access control policies in grid [J].Journal of Application Research of Computers,2011,28 (7):2683-2686 (in Chinese).[黃廷森,葉春曉,胡海波.網(wǎng)格環(huán)境下基于屬性的訪(fǎng)問(wèn)控制策略合成研究 [J].計(jì)算機(jī)應(yīng)用研究,2011,28 (7):2683-2686.]
[10]CHENG Xiangran,CHEN Xingyuan,ZHANG Bin,et al.Attribute-based access control policy model[J].Journal of Computer Engineering,2010,36 (5):131-133 (in Chinese).[程相然,陳性元,張斌,等.基于屬性的訪(fǎng)問(wèn)控制策略模型 [J].計(jì)算機(jī)工程,2010,36 (5):131-133.]