羅霄峰,羅萬伯
(1.四川大學 錦江學院,四川 成都 610065;2.四川大學 計算機學院,四川 成都 610065)
?
基于iX-MIDD的XACML安全策略評估* 1
羅霄峰1,羅萬伯2
(1.四川大學 錦江學院,四川 成都 610065;2.四川大學 計算機學院,四川 成都 610065)
摘要:從提高策略評估效能出發(fā),研究應用iMIDD方法對XACML策略進行評估。介紹了XACML和iMIDD與iX-MIDD的基本概念,對策略集、策略、規(guī)則及策略樹進行了定義,并給出了兩種方案將XACML策略轉(zhuǎn)換成iMIDD與iX-MIDD圖。方案一處理對象的次序完全符合XACML標準,但處理效率上可能稍差。方案二效率方面更好,但對象處理次序卻不一定完全符合XACML標準。給出了用iX-MIDD評估訪問請求的處理過程。用GEYSERS項目的實際訪問控制策略進行了仿真實驗,表明用此方法進行XACML策略評估效率高,非常實用。
關(guān)鍵詞:訪問控制; 安全策略; 策略評估; XACML
0引言
訪問控制是最基本的安全技術(shù)之一[1-2]。使用XACML(eXtensible Access Control Markup Language, 可擴展的訪問控制標記語言)來表示訪問控制策略及訪問請求,已經(jīng)得到廣泛應用[3-4]。
XACML的研究涉及多方面。包括XACML的分析,新需求,完善,測試,驗證,應用等。其中應用是根本,而效率是關(guān)鍵,特別是策略數(shù)量很大時更必要。
我們從提高XACML策略評估效能出發(fā),在深入分析現(xiàn)有研究成果基礎(chǔ)上,研究應用iMIDD方法,對XACML策略決策進行評估的技術(shù)。
1現(xiàn)狀及問題的提出
由結(jié)構(gòu)化信息標準促進組織(Organization for the Advancement of Structured Information Standards, OASIS)批準的XACML是一種基于XML的開放性標準語言,用于描述安全策略。2003年發(fā)布第1版?,F(xiàn)在的版本是第3版,2013年發(fā)布。自從推出XACML以來,圍繞XACML策略的分析、測試、驗證和優(yōu)化等進行了大量的工作[5-12]。
從實際應用的角度說,XACML策略的執(zhí)行效率非常重要,吸引了不少研究。Sun公司第一個實現(xiàn)并得到廣泛應用的XACML策略的評估引擎,對業(yè)界影響很大。但是,由于它采用的是對策略中的所有規(guī)則逐個比較的方式,因此效率低。針對效率問題,業(yè)界從不同方向進行了努力。
Fisler等人在Margrave項目中用MTBDD(Multi-Terminal Binary Decision Diagram,多端二叉決策圖)來處理XACML策略評估,效果很好[5]。Liu等人開發(fā)的XEngine通過把每一個屬性值映射為數(shù)字值,以及把策略樹變換成一種具有“第一個可用(first-applicable)” 策略組合算法的平坦結(jié)構(gòu),提高了決策效率[6]。Ros等人采用了另一種不同的圖方法,即匹配樹和組合樹這兩種樹來提高決策效率[7]。文獻[8-9]則按照不同的原則重新排序(re-ordering)組織策略和規(guī)則,提高了效率。Rao 等人用FIA(Fine-grained Integration Algebra,精細集成代數(shù))精細地集成復雜的策略,也基于MTBDD生成實際的XACML集成策略,使總規(guī)則數(shù)量及每個規(guī)則中的原子布爾表達式數(shù)量均大幅減少[10]。Ngo 等人構(gòu)建了XACML邏輯模型,提出一種利用數(shù)據(jù)區(qū)間劃分匯聚的決策圖來管理XACML策略[11-12]。該方法時間復雜度只與屬性數(shù)及屬性值數(shù)量有關(guān),空間復雜度也合理,代表了當前水平。實驗表明,比Sun公司的XACML 引擎的性能區(qū)別顯著。改進的MIDD(iMIDD)在保留[12]顯著性能基礎(chǔ)上,對這種多數(shù)據(jù)類型區(qū)間決策圖(MIDD,Multi-data-type Interval Decision Diagrams)進行了改進,可以更精細和更準確地表示和處理XACML策略。
本文研究用改進的多數(shù)據(jù)類型區(qū)間決策圖iMIDD(improved MIDD)來處理XACML策略評估中的一些問題。文章是這樣組織的:首先是XACML和iMIDD的一些基本知識,然后是基于iMIDD的策略處理,最后是總結(jié)。
2預備
2.1XACML
XACML策略從結(jié)構(gòu)上可以分為策略集(Policyset),策略(Policy)和規(guī)則(Rule)3層。它們都有惟一的標識符(id)(必備),還可能有稱為“對象(target)”的元素、“義務(obligation)”元素和“忠告(advice)”元素等。
對象元素是主體、資源和行為等的簡化了的條件集,一個訪問請求只有滿足策略集、策略和規(guī)則的對象后,才可能被批準。
義務可以理解為一個偽指令。當一個訪問請求滿足匹配條件后,PDP(policy decision point,策略決策點)將它返回給PEP(policy enforcement point,策略執(zhí)行點)執(zhí)行。忠告元素與義務類似。因此,可以將它們合在一起考慮。
規(guī)則是最基本且完備的原子授權(quán)約束。除前述的公共元素外,規(guī)則還可能有條件(conditions)元素。規(guī)則的結(jié)果(effect)可能是“許可(Permit)”,也可能是“拒絕(Deny)”,即:effect∈{Permit,Deny}。
規(guī)則不能獨立存在,只能包含在一個策略中。
策略包含規(guī)則集(一至多個規(guī)則)和規(guī)則組合算法(rule combining algorithm)。
策略集可能包含任意數(shù)量的策略元素和策略集元素,以及策略組合算法(policy combining algorithm)。
策略集中對象和策略組合算法的作用域是整個策略集,包括該策略集包含的策略集、策略以及它們的規(guī)則。
策略中對象、規(guī)則組合算法和義務及忠告列表的作用域包括該策略的所有規(guī)則。
XACML定義的規(guī)則組合算法和策略組合算法見表1。它們分別包含在策略或策略集中,指導PDP進行策略處理。
表1 XACML組合算法
2.2iMIDD方法
iMIDD方法的核心是用一種有根、有向無循環(huán)圖(rooted, directed acyclic graphs)表示基于屬性的安全策略中屬性及條件元素。它定義了兩種圖。一種是表示安全策略中屬性(包括條件)元素匹配函數(shù)的iMIDD。另一種是表示策略決策函數(shù)的iX-MIDD。
iMIDD的外結(jié)點(亦稱匹配-葉結(jié)點)具有值元組(T,O)。T表示“真(True)”或“匹配(Matched)”。O表示義務及忠告列表,可以為空。內(nèi)結(jié)點具有值元組(x,C)。x表示結(jié)點變量(即屬性變量)。元組(ed,c)數(shù)組C的c為ed的下結(jié)點,ed為輸出邊元組(p,s)。其中p是上結(jié)點變量的一個簡約區(qū)間劃分;s∈{F,IN},是其狀態(tài)標志[12]。如果上結(jié)點變量x值重要,s=IN,否則s=F。
iX-MIDD的外結(jié)點(亦稱決策-葉結(jié)點)具有值元組(e,O,ca)。e∈{P,D},是規(guī)則或策略的結(jié)果:“準許”或“拒絕”。O是義務及忠告列表,可以缺少(為空)。ca是規(guī)則集或策略組合算法列表。內(nèi)結(jié)點是一個元組(x,O,C)。其中,x是結(jié)點變量。C是元組(ed,c)數(shù)組。c為ed的下結(jié)點。下結(jié)點可能是一個內(nèi)結(jié)點,也可能是外結(jié)點。ed為一條輸出邊,是一個元組(p,s),p是上結(jié)點變量的一個簡約區(qū)間劃分;s∈VR:={P,D,N,INP,IND,INPD}是其狀態(tài)值。如果結(jié)點變量x的值不是重要的,則s=N;否則s=INe。此處e等于外結(jié)點(e,O,ca)中的e。
iMIDD和iX-MIDD中的結(jié)點輸出邊是簡約區(qū)間劃分,這點非常重要。因為它在覆蓋相同數(shù)據(jù)范圍的區(qū)間劃分中具有最少的區(qū)間數(shù)。為了得到簡約區(qū)間劃分,需要對數(shù)據(jù)域進行相應的操作,以得到它們的聯(lián)合(Union),交(Intersect)和補(Complement)[12]。由于利用決策圖進行策略決策的過程涉及結(jié)點輸出邊匹配,評估的時間復雜度和空間復雜性都只與屬性數(shù)量及屬性值數(shù)量有關(guān),與規(guī)則和策略數(shù)量、策略樹高度以及它們的對象表達式的邏輯公式的復雜度等均無關(guān),因此,特別實用。
3XACML策略評價
3.1XACML策略樹
下面先對XACML策略做比較規(guī)范的描述。
定義1(策略集)策略集是一個6元組:
PS=(id,t,P,Ps,CA,O)
其中id是該策略集的標識符,在作用域內(nèi)惟一;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}是該策略直接包含的規(guī)則的集合,不能為空;CA是規(guī)則組合算法,不能為空;O是義務及忠告列表,可以為空。
定義3(規(guī)則)規(guī)則是一個5元組:
r=(id,t,e,cn,O)
其中id是該規(guī)則的標識符,在作用域惟一;t是該規(guī)則的對象元素,可以為空;e是該規(guī)則的結(jié)果,e∈ {P,D},不能為空;cn是布爾條件,用于評估對象元素(例如,主體,資源,操作等),可以為空;O是義務及忠告列表,可以為空。
定義4(策略樹)一個不被其他的策略集包含的策略集稱為一顆策略樹。
該策略集與它直接包含的策略構(gòu)成策略樹的第1層(又稱根層),其直接子策略集直接包含的策略構(gòu)成樹的第2層。以此類推,最后一個不間斷的子策略集所在的層次加1就是該策略樹的層次。
3.2使用
3.2.1預處理
為了應用iMIDD方法管理XACML策略,需要對XACML策略做如下預處理。
(1)對象加入。將策略集的對象加入到其直接子策略集和直接策略中。將策略的對象加入到策略所包含的規(guī)則中。此過程一直到全部加入到對應的規(guī)則中。結(jié)果形成的規(guī)則對象是各層對象的“與(and)”,且根層的對象在第一,原規(guī)則的對象在最末。
(2)組合算法加入。將策略集的組合算法加入到其直接子策略集和直接策略中。將策略的組合算法加入到策略所包含的規(guī)則中。此過程一直到全部加入到對應的規(guī)則中。結(jié)果形成作用于規(guī)則的組合算法隊列。
(3)義務及忠告列表加入。將策略集的義務及忠告列表加入到其直接子策略集和直接策略中。將策略的義務及忠告列表加入到策略所包含的規(guī)則中。此過程一直到全部加入到對應的規(guī)則中。結(jié)果形成規(guī)則的合并的義務及忠告列表。
3.2.2從XACML策略樹構(gòu)建iX-MIDD
方案一
第1步:從策略樹的各規(guī)則開始,分別形成各層各規(guī)則的iMIDD圖。
第2步:按照下述方法,將各規(guī)則的iMIDD圖轉(zhuǎn)換成iX-MIDD圖:
(1)用(e,ca,O)代替匹配-葉結(jié)點中的T,將iMIDD的T-葉結(jié)點改為決策-葉結(jié)點。其中,e∈{P,D},是規(guī)則或策略的結(jié)果;ca是規(guī)則集或策略組合算法;O是義務及忠告列表,可以缺少(為空)。
(2)iMIDD內(nèi)結(jié)點m:=(x,C)處理。
C中ed.s轉(zhuǎn)換:如果ed.s=F,則轉(zhuǎn)換成新狀態(tài)值N;如果ed.s=IN,則轉(zhuǎn)換成新狀態(tài)值INe,此處e等于決策-葉結(jié)點的e。
增加O:如果C中各元素的ed中至少有一個ed.s≠N,O同決策-外結(jié)點的O;否則O為空。
第3步:形成策略的iX-MIDD圖。按照該策略的規(guī)則組合算法,將該策略各個規(guī)則的iX-MIDD合并成該策略的iX-MIDD圖。
第4步:形成策略集的iX-MIDD圖。對于所有只包含策略、而沒有子策略集的層,按照該層的策略組合算法,合并該層所有策略的iX-MIDD圖,成為一個子策略集的iX-MIDD,參加上一層的處理。對于既有策略的集合,又有策略集的集合的層,按照該層的策略組合算法,合并該層所有策略及策略集的iX-MIDD圖,成為一個子策略集的iX-MIDD,參加上一層的處理。對于只有策略集的集合的層,所有子策略集的iX-MIDD圖按照該層的策略組合算法做類似處理。如此,到第一層,達到策略樹的iX-MIDD圖。
方案二
屬性重新排序后,再使用iMIDD方法。
第0步:將策略樹對象中的屬性表達式按照屬性出現(xiàn)頻度重新排序:頻度最高的排列在第一,最低的排在最后。
第1步至第8步:同方案一。
兩種方案比較
XACML給出的策略評估標準過程是:對于一個包含子規(guī)則的策略,首先評估策略的對象,然后才是規(guī)則的對象[3]。方案一的處理步驟,完全滿足OASIS標準要求。
iX-MIDD圖變量的次序?qū)D的復雜度有影響。方案二的屬性重新排序,這樣得到的iX-MIDD圖不一定是最佳的,但平均路徑長度會較短,總的路徑數(shù)也可能比較少。當然,經(jīng)過重新排序,評估過程可能不一定滿足策略對象優(yōu)先的要求。
可根據(jù)不同要求,選擇合適的方案。
3.2.3策略評估
下面介紹用iX-MIDD進行策略評估的處理過程。
輸入:訪問請求X=(xi|i=1…n,X[xi]∈Di),根為m的iX-MIDD圖。
輸出:評估決策。
(1)初始化:node=m。
(2)如果node是葉結(jié)點,則返回(node.e,node.O,node.ca)。
(3)如果node.x∈X,則轉(zhuǎn)(4)。否則,轉(zhuǎn)(5)。
(4) 檢查元組(ed,c)數(shù)組node.C,如果X.[node.x]∈ed.p,則,node=c,轉(zhuǎn)(2)。
(5)檢查元組(ed,c)數(shù)組node.C,如果至少有一個ed.s=N,則返回空數(shù)據(jù)包(emptybag);否則,返回INe。
3.3仿真實驗
我們用C++編程進行了仿真實驗。
實驗所用的策略是[12]進行有效性實驗用過的三個策略庫之一的GEYSERS。它是在GEYSERS項目中使用的實際的策略,有3個策略層次,6個策略集,7個策略,33個規(guī)則,3個屬性。采用3.2節(jié)方案一形成iX-MIDD圖。
實驗環(huán)境處理器Intel CPU 2.20GHz,內(nèi)存8GB,64位 Windows 7家庭普通版,Service Park 1。
訪問請求決策實驗中產(chǎn)生100萬個隨機訪問請求案例,其中50萬個覆蓋全部可能路徑,以及50萬個不能匹配。上述過程,重復20遍,以盡量減少Windows系統(tǒng)后臺程序影響。最后得到每個訪問請求的平均決策時間及標準差(見表2)。
表2 訪問請求決策實驗結(jié)果
我們只用方案一進行了實驗,而沒有對方案二進行實驗,其原因是GEYSERS策略的3個屬性出現(xiàn)頻度完全相等,因此,其方案一效果與方案二沒有差別。從實驗結(jié)果看出,使用iX-MIDD進行訪問決策,完全實用。
4結(jié)語
訪問控制策略及訪問請求用XACML表示,已經(jīng)是發(fā)展趨勢,而性能問題特別突出,特別是策略數(shù)量很大時。
我們從提高XACML策略評估效能出發(fā),在深入分析現(xiàn)有研究成果基礎(chǔ)上,選擇應用iMIDD方法,對XACML策略進行評估。iMIDD和iX-MIDD中的結(jié)點輸出邊是簡約區(qū)間劃分,用它做策略評估,空間復雜度和時間復雜性都只與屬性數(shù)量及屬性值數(shù)量有關(guān),與規(guī)則和策略數(shù)量等無關(guān),特別實用。本文給出了兩種方案將XACML策略轉(zhuǎn)換成iMIDD與iX-MIDD圖。方案一直接從策略樹出發(fā),處理對象的次序完全符合XACML標準,但處理效率上可能稍差。方案二首先將對象中的屬性按照頻度重新排序后再處理,效率更好,對象處理次序卻不一定完全符合XACML標準??筛鶕?jù)不同要求,選擇合適的方案。給出了用iX-MIDD評估訪問請求的處理過程。用GEYSERS項目的實際訪問控制策略進行了仿真實驗,實驗結(jié)果得到每個訪問請求的平均決策時間在微秒級,表明用iX-MIDD方法進行XACML策略評估完全實用。
下階段計劃從應用的角度,開發(fā)工具包,以便用戶使用。
參考文獻:
[1]羅霄峰,羅萬伯,胡月等. 網(wǎng)絡(luò)輿情治理研究[J]. 通信技術(shù),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]鄭昌安,吳學智. 一種改進的基于挑戰(zhàn)/應答機制的短波接入認證系統(tǒng)研究與設(shè)計[J]. 通信技術(shù),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策略評估優(yōu)化方法[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—),男,碩士,教授,主要研究方向為信息安全,計算機應用。