鄒佳順,張永勝+
(1.山東師范大學 信息科學與工程學院,山東 濟南250014;2.山東師范大學 山東省分布式計算機軟件新技術重點實驗室,山東 濟南250014)
在訪問控制技術[1]被提出的幾十年里,多種訪問控制模型被相繼提出,如自主訪問控制 (discretionary access control,DAC)、強制訪問控制 (mandatory access control,MAC)、基于角色的訪問控制 (role-based access control,RBAC)等眾多訪問控制模型[2-4]。近年來,基于屬性的訪問控制 (attribute based access control,ABAC)由于能解決復雜信息系統(tǒng)中的細粒度訪問控制及大規(guī)模用戶動態(tài)擴展問題逐漸成為研究的熱點。ABAC 模型通過對主客體以及環(huán)境的屬性值分析,實現(xiàn)細粒度授權,同時ABAC 模型有著XACML (extensible access control markup language,XACML)框架以及SAML (security assertion markup language,SAML)的支持,在具體實施及單點登錄方面也有著較好的應用前景[5,6],但正由于ABAC 模型的高度授權靈活性導致其策略管理的困難。本文針對傳統(tǒng)ABAC 模型中檢索策略效率較低的問題,提出一種基于前綴標記運算的策略檢索方法。
關于訪問控制中的策略問題研究目前有很多,但其中與策略檢索方法的相關研究很少。馬曉普等對訪問控制中的策略分類方法進行研究,提出了一種分類方法[7]。李瑞軒等對訪問控制模型中的策略沖突問題進行研究,其中用于檢測和解決策略沖突的方法概括為3種:基于優(yōu)先權法、基于描述邏輯法和基于圖論法[8]。黃廷森等提出了一種擴展的基于ABAC 的策略合成代數(shù)來實現(xiàn)安全策略的合成,并結合了一種新的策略合成算子實現(xiàn)訪問控制策略的合成[9]。本文通過對ABAC 模型中決策過程進行研究,在傳統(tǒng)ABAC模型中,每次授權都需要將屬性信息與策略集中的策略進行一一對比。當需要分析的屬性數(shù)目過多時,對策略集中每條策略的分析時間也會相應延長,這將大大降低系統(tǒng)的運行效率。尤其是隨著近年來云計算技術的迅速發(fā)展,大規(guī)模用戶群逐漸成為云環(huán)境下的訪問控制系統(tǒng)中的典型特征,低效率的策略檢索將會降低系統(tǒng)的服務效率與用戶的體驗。因此,本文通過研究屬性的存儲方式,引入前綴標記等相關概念實現(xiàn)高效率的策略檢索操作。
ABAC模型通過實體屬性實現(xiàn)對用戶權限的細粒度控制及決策操作。ABAC 模型中的實體屬性包括主體屬性、客體屬性以及環(huán)境屬性3種。對于ABAC 模型中的基礎概念,本文沿用以往文獻的相關定義[10]。
定義1 實體屬性是描述實體固有特征的變量??梢猿橄蠡癁槎MA (name,Ran)。其中name和Ran分別表示屬性的名稱和取值范圍。本文用SA、OA、EA 分別表示主體屬性、客體屬性和環(huán)境屬性。
定義2 ABAC 可以抽象化為一個四元組U (SA,OA,EA,P)。其中P 表示權限集合。集合 {SA,OA,EA}代表ABAC模型中所有屬性的集合。
XACML是OASIS制定的基于XML 標準的一種通用的用于保護資源的策略語言和訪問決策語言。傳統(tǒng)ABAC模型可以實現(xiàn)在XACML框架下的決策授權。
圖1是XACML框架下的授權決策模型,PIP (策略信息點)收集屬性SA、OA、EA,通過上下文處理器將相關信息傳送至PDP (策略決策點)。PDP通過將屬性信息與策略集中的策略一一對比,最終確定合適的策略,并作出相應授權。授權信息傳送至PEP (策略執(zhí)行點),完成對資源的相應操作。
圖1 XACML決策模型
由于ABAC模型通過屬性值的范圍描述策略的條件,因此在查詢過程中也存在著一定的困難。
表1是ABAC模型中的部分策略集,其中英文字母a、b、c、d、e、f、g、h、i、j、k、l、m 代表屬性值。符號op∈ {read,write…}表示用戶操作,sign∈ {+,-}表示授權符號。
表1 ABAC中部分策略集
當用戶申請對資源的訪問時,與該用戶相關的屬性信息會被進行分析,并與策略集中的策略進行對比。通常傳統(tǒng)ABAC模型中的策略分析是指對策略集中的每條策略進行遍歷,判斷用戶相關屬性信息是否符合該條策略,若符合則為之授予相應權限。這種檢索方式的缺點是效率低下。主要是由于對每條策略進行分析時,都需要細粒度地對該策略中的屬性進行分析,最壞的情況下,該條策略最后一個屬性與該用戶已有屬性不符,因此可能需要對該條策略的十幾個甚至幾十個屬性進行一一比較后才會發(fā)現(xiàn)該條策略不符合要求。而在云環(huán)境中的大型策略庫中可能存儲成千上萬條,甚至十幾萬條策略,這種檢索方式會大大降低系統(tǒng)的效率。
為提高系統(tǒng)的策略檢索效率,本文引入前綴標記的相關概念。本文要求屬性庫中所有屬性排列都存在一定的順序。
在傳統(tǒng)訪問控制模型中,屬性集中的每個屬性雖然有著自己的序號,但該序號并沒有太多的意義,僅是為了便于存儲而設置的ID 號。本文中屬性的序號有著特殊的意義,前綴標記的定義也是建立在屬性序號的基礎之上。表2是ABAC模型中的部分屬性集。
表2 ABAC模型屬性集
如表2所示,本文規(guī)定每個屬性都有著自己的ID 號,且在屬性存儲表中,ID 號應從0進行編號以便于后續(xù)檢索操作。
定義3 前綴標記是用來表示屬性分配情況的二進制字符串,本文用符號PS (prefix sign,PS)表示。根據(jù)屬性集中的屬性ID 號,為策略集以及訪問用戶生成相應的前綴標記,用以標記某條策略或某用戶所擁有的屬性集合并通過邏輯或運算實現(xiàn)對策略的高效檢索。
定義4 可能滿足的策略是指在該策略中的屬性與用戶訪問系統(tǒng)時系統(tǒng)收集的屬性完全相同的策略。
如圖2 所示,前綴標記共由n 位組成,其中n 為ABAC模型中所有屬性的個數(shù)。前綴標記每位取值為0或1,其中0代表不包含該屬性,1 表示含有該屬性。因此,策略集中的每條策略以及用戶屬性信息均可以表示為前綴標記的形式。
圖2 前綴標記
以表1策略集為例,假設策略集中的7種屬性的ID 號與其下標相同,且模型中所有屬性只有這7 種,即與表2對應的n取值為7。則該策略集引入前綴標記后可以表示為表3,策略部分此表中省略。
表3 采用前綴標記的策略表示
圖3是引入前綴標記后,本文針對XACML 框架中的PIP模塊與PDP模塊進行的改進。
圖3 部分框架改進
其中,PIP與PDP模塊中分別添加了支持前綴標記的PS模塊。PIP將主客體、環(huán)境屬性信息收集后,由PS 模塊生成相應的前綴標記 (可稱為原始前綴標記),并與屬性一起送至PDP。PDP中的PS模塊通過對前綴標記的分析,將其與策略集中策略的前綴標記依次進行邏輯或運算,其中運算結果與原始前綴標記相同的策略即為可能滿足的相關策略,再將屬性信息與該策略進行比較分析。本文將通過用戶實例,進一步分析策略檢索過程。
假設用戶U 被分配主體屬性Att0、Att1,且客體屬性為Att3、Att4,環(huán)境屬性為Att5、Att6。系統(tǒng)的策略集如表3所示,則當用戶向系統(tǒng)發(fā)出訪問請求時,策略檢索過程可以分為以下幾步:
步驟1 SA (Att0,Att1)→PIP;OA (Att3,Att4)→PIP;EA (Att5,Att6)→PIP。表示所有授權屬性信息被收集到策略信息點。
步驟2 PS Module→Create PS;PS=1101111。表示PS模塊根據(jù)收集的屬性信息以及屬性的ID 號生成原始前綴標記1101111。
步驟3 (SA,OA,EA,PS)→PDP。表示屬性信息與原始前綴標記一起被送到策略決策點。
步驟4 1101111||1001010=1101111;Query;P1 1101111||1001001=1101111;Query;P2 1101111||0110101=1111111≠1101111;Return;
表示將原始前綴標記與每條策略的PS進行或運算,若得出的值仍為原始前綴標記值則該策略是可能滿足的策略,系統(tǒng)將對此策略進行查詢,直到對所有策略的前綴標記運算完成后返回。由上述運算結果可知,該用戶可能滿足的策略為P1、P2。
為測試基于前綴標記運算的檢索算法的效率與空間消耗問題,本文在Windows XP 平臺上利用Java語言編寫測試代碼,分別測試了傳統(tǒng)ABAC 模型中檢索可能滿足的策略的效率與基于前綴標記法的檢索效率。硬件環(huán)境為Pentium (R)Dual-Core 1.73 GHz,1 GB 內(nèi)存,并使用Matlab7.0作為數(shù)據(jù)分析軟件。本文為用戶分配主客體、環(huán)境屬性各一個,策略集中每條策略均是5種屬性,通過增加策略數(shù)目測試兩者的檢索效率。其中,使用傳統(tǒng)檢索算法的部分核心代碼如下:
本文只考慮檢索可能滿足策略的效率問題,暫不考慮對策略進行分析所耗用的時間,因此本文令程序中的用戶不滿足策略集中的所有策略。通過逐漸增加策略數(shù)目,并取10次實驗的平均數(shù)值得到時間消耗結果如圖4,圖5為兩種檢索算法的空間消耗比較。
圖4 時間消耗比較
圖5 空間消耗比較
圖4中的最好情況是指使用傳統(tǒng)檢索算法進行檢索時,策略中的第一個屬性不存在于用戶擁有的屬性中,此時直接檢索第二條,耗費的時間也最少。最壞情況是指當檢測到最后一個屬性時才發(fā)現(xiàn)該策略不是可能滿足的策略。平均情況是取兩種情況的平均值。通過對圖4及相關代碼的分析可知,本文提出的基于前綴標記運算的策略檢索方法時間消耗主要來源于Java中進制之間的轉換,且與傳統(tǒng)方法相比具有更高的效率。圖5則表示出本文算法在空間消耗方面的優(yōu)勢。
綜上所述,本文提出的基于前綴標記運算的策略檢索算法與傳統(tǒng)檢索算法相比具有高效率、低消耗的優(yōu)點。
ABAC模型是一種靈活性強、細粒度控制的訪問控制模型,能夠?qū)崿F(xiàn)對用戶權限的靈活限制,同時保障數(shù)據(jù)信息的安全性。但在保障數(shù)據(jù)安全性的同時提高訪問控制系統(tǒng)的性能也至關重要,ABAC 模型中的策略檢索效率問題是影響著訪問控制系統(tǒng)性能的重要因素之一,本文提出的基于前綴標記運算的策略檢索方法通過對前綴標記的邏輯或運算實現(xiàn)對可能滿足的策略的快速定位。仿真實驗結果表明,本文提出的檢索方法在ABAC 模型中具有高效、低耗的優(yōu)點,大大減少了傳統(tǒng)策略檢索中所耗費的時間,并且在實現(xiàn)方面,有著XACML框架等技術的有力支持。
[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). [王小明,付紅,張立臣.基于屬性的訪問控制研究進展 [J].電子學報,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ù)對象的RBAC權限訪問控制模型 [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)東,畢曉清,盧新明.基于角色的細粒度訪問控制模型的設計與實現(xiàn)[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 中基于屬性的訪問控制安全策略[J].計算機科學,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). [蓋新貌,沈昌祥,劉毅,等.基于屬性訪問控制的CSP模型 [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).[魯劍鋒,劉華文,王多強.訪問控制策略的分類方法研究 [J].武漢理工大學學報,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).[馬曉普,李爭艷,魯劍鋒.訪問控制策略描述語言與策略沖突研究[J].計算機工程與科學,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).[李瑞軒,魯劍鋒,李添翼,等.一種訪問控制策略非一致性沖突消解方法 [J].計算機學報,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)境下基于屬性的訪問控制策略合成研究 [J].計算機應用研究,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).[程相然,陳性元,張斌,等.基于屬性的訪問控制策略模型 [J].計算機工程,2010,36 (5):131-133.]