羅霄峰,羅萬伯
(1.四川大學 錦江學院,四川 成都 610065;2.四川大學 計算機學院,四川 成都 610065)
?
基于iX-MIDD的XACML安全策略評估* 1
羅霄峰1,羅萬伯2
(1.四川大學 錦江學院,四川 成都 610065;2.四川大學 計算機學院,四川 成都 610065)
摘要:從提高策略評估效能出發,研究應用iMIDD方法對XACML策略進行評估。介紹了XACML和iMIDD與iX-MIDD的基本概念,對策略集、策略、規則及策略樹進行了定義,并給出了兩種方案將XACML策略轉換成iMIDD與iX-MIDD圖。方案一處理對象的次序完全符合XACML標準,但處理效率上可能稍差。方案二效率方面更好,但對象處理次序卻不一定完全符合XACML標準。給出了用iX-MIDD評估訪問請求的處理過程。用GEYSERS項目的實際訪問控制策略進行了仿真實驗,表明用此方法進行XACML策略評估效率高,非常實用。
關鍵詞:訪問控制; 安全策略; 策略評估; XACML
0引言
訪問控制是最基本的安全技術之一[1-2]。使用XACML(eXtensible Access Control Markup Language, 可擴展的訪問控制標記語言)來表示訪問控制策略及訪問請求,已經得到廣泛應用[3-4]。
XACML的研究涉及多方面。包括XACML的分析,新需求,完善,測試,驗證,應用等。其中應用是根本,而效率是關鍵,特別是策略數量很大時更必要。
我們從提高XACML策略評估效能出發,在深入分析現有研究成果基礎上,研究應用iMIDD方法,對XACML策略決策進行評估的技術。
1現狀及問題的提出
由結構化信息標準促進組織(Organization for the Advancement of Structured Information Standards, OASIS)批準的XACML是一種基于XML的開放性標準語言,用于描述安全策略。2003年發布第1版?,F在的版本是第3版,2013年發布。自從推出XACML以來,圍繞XACML策略的分析、測試、驗證和優化等進行了大量的工作[5-12]。
從實際應用的角度說,XACML策略的執行效率非常重要,吸引了不少研究。Sun公司第一個實現并得到廣泛應用的XACML策略的評估引擎,對業界影響很大。但是,由于它采用的是對策略中的所有規則逐個比較的方式,因此效率低。針對效率問題,業界從不同方向進行了努力。
Fisler等人在Margrave項目中用MTBDD(Multi-Terminal Binary Decision Diagram,多端二叉決策圖)來處理XACML策略評估,效果很好[5]。Liu等人開發的XEngine通過把每一個屬性值映射為數字值,以及把策略樹變換成一種具有“第一個可用(first-applicable)” 策略組合算法的平坦結構,提高了決策效率[6]。Ros等人采用了另一種不同的圖方法,即匹配樹和組合樹這兩種樹來提高決策效率[7]。文獻[8-9]則按照不同的原則重新排序(re-ordering)組織策略和規則,提高了效率。Rao 等人用FIA(Fine-grained Integration Algebra,精細集成代數)精細地集成復雜的策略,也基于MTBDD生成實際的XACML集成策略,使總規則數量及每個規則中的原子布爾表達式數量均大幅減少[10]。Ngo 等人構建了XACML邏輯模型,提出一種利用數據區間劃分匯聚的決策圖來管理XACML策略[11-12]。該方法時間復雜度只與屬性數及屬性值數量有關,空間復雜度也合理,代表了當前水平。實驗表明,比Sun公司的XACML 引擎的性能區別顯著。改進的MIDD(iMIDD)在保留[12]顯著性能基礎上,對這種多數據類型區間決策圖(MIDD,Multi-data-type Interval Decision Diagrams)進行了改進,可以更精細和更準確地表示和處理XACML策略。
本文研究用改進的多數據類型區間決策圖iMIDD(improved MIDD)來處理XACML策略評估中的一些問題。文章是這樣組織的:首先是XACML和iMIDD的一些基本知識,然后是基于iMIDD的策略處理,最后是總結。
2預備
2.1XACML
XACML策略從結構上可以分為策略集(Policyset),策略(Policy)和規則(Rule)3層。它們都有惟一的標識符(id)(必備),還可能有稱為“對象(target)”的元素、“義務(obligation)”元素和“忠告(advice)”元素等。
對象元素是主體、資源和行為等的簡化了的條件集,一個訪問請求只有滿足策略集、策略和規則的對象后,才可能被批準。
義務可以理解為一個偽指令。當一個訪問請求滿足匹配條件后,PDP(policy decision point,策略決策點)將它返回給PEP(policy enforcement point,策略執行點)執行。忠告元素與義務類似。因此,可以將它們合在一起考慮。
規則是最基本且完備的原子授權約束。除前述的公共元素外,規則還可能有條件(conditions)元素。規則的結果(effect)可能是“許可(Permit)”,也可能是“拒絕(Deny)”,即:effect∈{Permit,Deny}。
規則不能獨立存在,只能包含在一個策略中。
策略包含規則集(一至多個規則)和規則組合算法(rule combining algorithm)。
策略集可能包含任意數量的策略元素和策略集元素,以及策略組合算法(policy combining algorithm)。
策略集中對象和策略組合算法的作用域是整個策略集,包括該策略集包含的策略集、策略以及它們的規則。
策略中對象、規則組合算法和義務及忠告列表的作用域包括該策略的所有規則。
XACML定義的規則組合算法和策略組合算法見表1。它們分別包含在策略或策略集中,指導PDP進行策略處理。

表1 XACML組合算法
2.2iMIDD方法
iMIDD方法的核心是用一種有根、有向無循環圖(rooted, directed acyclic graphs)表示基于屬性的安全策略中屬性及條件元素。它定義了兩種圖。一種是表示安全策略中屬性(包括條件)元素匹配函數的iMIDD。另一種是表示策略決策函數的iX-MIDD。
iMIDD的外結點(亦稱匹配-葉結點)具有值元組(T,O)。T表示“真(True)”或“匹配(Matched)”。O表示義務及忠告列表,可以為空。內結點具有值元組(x,C)。x表示結點變量(即屬性變量)。元組(ed,c)數組C的c為ed的下結點,ed為輸出邊元組(p,s)。其中p是上結點變量的一個簡約區間劃分;s∈{F,IN},是其狀態標志[12]。如果上結點變量x值重要,s=IN,否則s=F。
iX-MIDD的外結點(亦稱決策-葉結點)具有值元組(e,O,ca)。e∈{P,D},是規則或策略的結果:“準許”或“拒絕”。O是義務及忠告列表,可以缺少(為空)。ca是規則集或策略組合算法列表。內結點是一個元組(x,O,C)。其中,x是結點變量。C是元組(ed,c)數組。c為ed的下結點。下結點可能是一個內結點,也可能是外結點。ed為一條輸出邊,是一個元組(p,s),p是上結點變量的一個簡約區間劃分;s∈VR:={P,D,N,INP,IND,INPD}是其狀態值。如果結點變量x的值不是重要的,則s=N;否則s=INe。此處e等于外結點(e,O,ca)中的e。
iMIDD和iX-MIDD中的結點輸出邊是簡約區間劃分,這點非常重要。因為它在覆蓋相同數據范圍的區間劃分中具有最少的區間數。為了得到簡約區間劃分,需要對數據域進行相應的操作,以得到它們的聯合(Union),交(Intersect)和補(Complement)[12]。由于利用決策圖進行策略決策的過程涉及結點輸出邊匹配,評估的時間復雜度和空間復雜性都只與屬性數量及屬性值數量有關,與規則和策略數量、策略樹高度以及它們的對象表達式的邏輯公式的復雜度等均無關,因此,特別實用。
3XACML策略評價
3.1XACML策略樹
下面先對XACML策略做比較規范的描述。
定義1(策略集)策略集是一個6元組:
PS=(id,t,P,Ps,CA,O)
其中id是該策略集的標識符,在作用域內惟一;t是該策略集的對象元素,可以為空;P={p1,p2,…,pn} 是該策略集直接包含的策略集合;Ps={ps1,ps2,…,psn} 是被該策略集直接包含的策略集集合;CA是策略組合算法,不能為空;O義務及忠告列表,可以為空。P和Ps中至少應有一項不為空。
定義2(策略)策略是一個5元組:
P=(id,t,R,CA,O)
其中id是該策略的標識符,在作用域惟一;t是該策略的對象元素,可以為空;R={r1,r2,…,rn}是該策略直接包含的規則的集合,不能為空;CA是規則組合算法,不能為空;O是義務及忠告列表,可以為空。
定義3(規則)規則是一個5元組:
r=(id,t,e,cn,O)
其中id是該規則的標識符,在作用域惟一;t是該規則的對象元素,可以為空;e是該規則的結果,e∈ {P,D},不能為空;cn是布爾條件,用于評估對象元素(例如,主體,資源,操作等),可以為空;O是義務及忠告列表,可以為空。
定義4(策略樹)一個不被其他的策略集包含的策略集稱為一顆策略樹。
該策略集與它直接包含的策略構成策略樹的第1層(又稱根層),其直接子策略集直接包含的策略構成樹的第2層。以此類推,最后一個不間斷的子策略集所在的層次加1就是該策略樹的層次。
3.2使用
3.2.1預處理
為了應用iMIDD方法管理XACML策略,需要對XACML策略做如下預處理。
(1)對象加入。將策略集的對象加入到其直接子策略集和直接策略中。將策略的對象加入到策略所包含的規則中。此過程一直到全部加入到對應的規則中。結果形成的規則對象是各層對象的“與(and)”,且根層的對象在第一,原規則的對象在最末。
(2)組合算法加入。將策略集的組合算法加入到其直接子策略集和直接策略中。將策略的組合算法加入到策略所包含的規則中。此過程一直到全部加入到對應的規則中。結果形成作用于規則的組合算法隊列。
(3)義務及忠告列表加入。將策略集的義務及忠告列表加入到其直接子策略集和直接策略中。將策略的義務及忠告列表加入到策略所包含的規則中。此過程一直到全部加入到對應的規則中。結果形成規則的合并的義務及忠告列表。
3.2.2從XACML策略樹構建iX-MIDD
方案一
第1步:從策略樹的各規則開始,分別形成各層各規則的iMIDD圖。
第2步:按照下述方法,將各規則的iMIDD圖轉換成iX-MIDD圖:
(1)用(e,ca,O)代替匹配-葉結點中的T,將iMIDD的T-葉結點改為決策-葉結點。其中,e∈{P,D},是規則或策略的結果;ca是規則集或策略組合算法;O是義務及忠告列表,可以缺少(為空)。
(2)iMIDD內結點m:=(x,C)處理。
C中ed.s轉換:如果ed.s=F,則轉換成新狀態值N;如果ed.s=IN,則轉換成新狀態值INe,此處e等于決策-葉結點的e。
增加O:如果C中各元素的ed中至少有一個ed.s≠N,O同決策-外結點的O;否則O為空。
第3步:形成策略的iX-MIDD圖。按照該策略的規則組合算法,將該策略各個規則的iX-MIDD合并成該策略的iX-MIDD圖。
第4步:形成策略集的iX-MIDD圖。對于所有只包含策略、而沒有子策略集的層,按照該層的策略組合算法,合并該層所有策略的iX-MIDD圖,成為一個子策略集的iX-MIDD,參加上一層的處理。對于既有策略的集合,又有策略集的集合的層,按照該層的策略組合算法,合并該層所有策略及策略集的iX-MIDD圖,成為一個子策略集的iX-MIDD,參加上一層的處理。對于只有策略集的集合的層,所有子策略集的iX-MIDD圖按照該層的策略組合算法做類似處理。如此,到第一層,達到策略樹的iX-MIDD圖。
方案二
屬性重新排序后,再使用iMIDD方法。
第0步:將策略樹對象中的屬性表達式按照屬性出現頻度重新排序:頻度最高的排列在第一,最低的排在最后。
第1步至第8步:同方案一。
兩種方案比較
XACML給出的策略評估標準過程是:對于一個包含子規則的策略,首先評估策略的對象,然后才是規則的對象[3]。方案一的處理步驟,完全滿足OASIS標準要求。
iX-MIDD圖變量的次序對圖的復雜度有影響。方案二的屬性重新排序,這樣得到的iX-MIDD圖不一定是最佳的,但平均路徑長度會較短,總的路徑數也可能比較少。當然,經過重新排序,評估過程可能不一定滿足策略對象優先的要求。
可根據不同要求,選擇合適的方案。
3.2.3策略評估
下面介紹用iX-MIDD進行策略評估的處理過程。
輸入:訪問請求X=(xi|i=1…n,X[xi]∈Di),根為m的iX-MIDD圖。
輸出:評估決策。
(1)初始化:node=m。
(2)如果node是葉結點,則返回(node.e,node.O,node.ca)。
(3)如果node.x∈X,則轉(4)。否則,轉(5)。
(4) 檢查元組(ed,c)數組node.C,如果X.[node.x]∈ed.p,則,node=c,轉(2)。
(5)檢查元組(ed,c)數組node.C,如果至少有一個ed.s=N,則返回空數據包(emptybag);否則,返回INe。
3.3仿真實驗
我們用C++編程進行了仿真實驗。
實驗所用的策略是[12]進行有效性實驗用過的三個策略庫之一的GEYSERS。它是在GEYSERS項目中使用的實際的策略,有3個策略層次,6個策略集,7個策略,33個規則,3個屬性。采用3.2節方案一形成iX-MIDD圖。
實驗環境處理器Intel CPU 2.20GHz,內存8GB,64位 Windows 7家庭普通版,Service Park 1。
訪問請求決策實驗中產生100萬個隨機訪問請求案例,其中50萬個覆蓋全部可能路徑,以及50萬個不能匹配。上述過程,重復20遍,以盡量減少Windows系統后臺程序影響。最后得到每個訪問請求的平均決策時間及標準差(見表2)。

表2 訪問請求決策實驗結果
我們只用方案一進行了實驗,而沒有對方案二進行實驗,其原因是GEYSERS策略的3個屬性出現頻度完全相等,因此,其方案一效果與方案二沒有差別。從實驗結果看出,使用iX-MIDD進行訪問決策,完全實用。
4結語
訪問控制策略及訪問請求用XACML表示,已經是發展趨勢,而性能問題特別突出,特別是策略數量很大時。
我們從提高XACML策略評估效能出發,在深入分析現有研究成果基礎上,選擇應用iMIDD方法,對XACML策略進行評估。iMIDD和iX-MIDD中的結點輸出邊是簡約區間劃分,用它做策略評估,空間復雜度和時間復雜性都只與屬性數量及屬性值數量有關,與規則和策略數量等無關,特別實用。本文給出了兩種方案將XACML策略轉換成iMIDD與iX-MIDD圖。方案一直接從策略樹出發,處理對象的次序完全符合XACML標準,但處理效率上可能稍差。方案二首先將對象中的屬性按照頻度重新排序后再處理,效率更好,對象處理次序卻不一定完全符合XACML標準??筛鶕煌?,選擇合適的方案。給出了用iX-MIDD評估訪問請求的處理過程。用GEYSERS項目的實際訪問控制策略進行了仿真實驗,實驗結果得到每個訪問請求的平均決策時間在微秒級,表明用iX-MIDD方法進行XACML策略評估完全實用。
下階段計劃從應用的角度,開發工具包,以便用戶使用。
參考文獻:
[1]羅霄峰,羅萬伯,胡月等. 網絡輿情治理研究[J]. 通信技術,2010,43(04):81-83.
LUO Xiao-feng, LUO Wan-bo, HU Yue, et al. A Study on Governance of Net Public Sentiments [J]. Communications Technology, 2010, 43(04):81-83.
[2]鄭昌安,吳學智. 一種改進的基于挑戰/應答機制的短波接入認證系統研究與設計[J]. 通信技術,2015,48(06):729-737.ZHENG Chang-an, WU Xue-zhi. Design of Short Wave Access Authentication System based on Symmetric Key[J]. Communications Technology, 2015,48(06):729-737.
[3]OASIS. eXtensible Access Control Markup Language (XACML) Version 3.0[ EB/OL]. (2013-1-23)[2016-3-12]. http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html.
[4]OASIS.Available XACML Implementations. [EB/OL]. (2016)[ 2016-3-12]. https:// www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml#other.
[5]Fisler K, Krishnamurthi S, Meyerovich LA, et al. Verification and Change-Impact Analysis of Access-Control Policies[C]// Proceedings of the 27th International Conference on Software Engineering. New York, NY, USA: ACM; 2005:196-205.
[6]LIU A X, CEHN F, WANG J H, et al. Designing Fast and Scalable XACML Policy Evaluation Engines[J]. IEEE Transactions on Computers, 2011, 60(12): 1802-1817.
[7]Santiago Pina Ros, Mario Lischka, Félix Gómez Mármol. Graph-based XACML Evaluation[C]// Proceedings of the 17th ACM Symposium on Access Control Models and Technologies. ACM New York, NY, USA. 2012: 83-92.
[8]Marouf S,Shehab M,Squicciarini A, et al. Adaptive Reordering and Clustering-based Framework for Efficient XACML Policy Evaluation[J]. IEEE Transactions on Services Computing, 2012, 4(4):300-313.
[9]戚湧, 陳俊, 李千目. 一種基于重排序的XACML策略評估優化方法[J]. 南京理工大學學報:自然科學版, 2015,39(02): 187-193.
QI Yong, CHEN Jun, LI Qian-mu. XACML Policy Evaluation Optimization Method based on Reordering[J]. Journal of Nanjing University of Science and Technology (Natural Science), 2015,39(02): 187-193.
[10]RAO P, LIN D, E Bertino, et al. Fine-Grained Integration of Access Control Policies [J]. Computers and Security, 2011, 30(2-3):91-107.
[11]Ngo C, Makkes M X, Demchenko Y, et al. Multi-Data-Types Interval Decision Diagrams for Xacml Evaluation Engine[C]// 2013 IEEE Eleventh Annual International Conference on Privacy, Security and Trust (PST).2013:257-266.
[12]Canh Ngo, Yuri Demchenko, Cees de Laat. Decision Diagrams for XACML Policy Evaluation and Management[J]. Computers & Security, 2015, 49(2015):1-16.
XACML Policy Evaluation based on iX-MIDD
LUO Xiao-feng1, LUO Wan-bo2
(1.Jinjiang College, Sichuan University,Chengdu Sichuan 610065,China;2.School of Computer Science, Sichuan University,Chengdu Sichuan 610065,China)
Abstract:In order to make effectiveness evaluation of XACML policy, the application of iMIDD approach is discussed. The fundamental concepts of XACML, iMIDD and iX-MIDD are expounded, the policy set, policy, rule and policy tree described, and the two schemes for transforming XACML policies into iMIDD and iX-MIDD also proposed. For scheme one, the ordering to evaluate target element is completely up to the evaluation standard in XACML, but may be less in evaluation efficiency, while scheme two is better in efficiency, but the ordering not sure to the standard. The procedure to evalute access request is given. And the simulation with actual access control policy for GEYSERS project indicates that iX-MIDD-based policy evaluation is effective and practicable.
Key words:access control; security policy; policy evaluation; XACML
doi:10.3969/j.issn.1002-0802.2016.05.022
* 收稿日期:2015-12-08;修回日期:2016-03-20Received date:2015-12-08;Revised date:2016-03-20
中圖分類號:TP309;TP391
文獻標志碼:A
文章編號:1002-0802(2016)05-0627-05
作者簡介:

羅霄峰(1974—),男,博士,講師,主要研究方向為信息安全;
羅萬伯(1946—),男,碩士,教授,主要研究方向為信息安全,計算機應用。