張斌,商錚
1.解放軍信息工程大學,鄭州 450004
2.解放軍軍事經(jīng)濟學院,武漢 430000
基于屬性約束的權限委托機制及沖突檢測方法
張斌1,商錚2
1.解放軍信息工程大學,鄭州 450004
2.解放軍軍事經(jīng)濟學院,武漢 430000
針對現(xiàn)有的委托方法中委托約束局限于用戶角色的問題,提出了一種基于屬性約束的權限委托機制ARPDM,使用先決條件、受托條件和撤銷條件等對委托者和受托者的能力進行約束,能夠增加權限委托的約束能力,從多個方面對委托者和受托者的委托行為進行控制。分析了委托過程中可能發(fā)生的委托約束沖突、冗余委托沖突和環(huán)狀委托沖突等,設計了一種基于委托樹的沖突檢測算法,將沖突問題映射為樹中結點的關系問題,能夠通過一次遍歷檢測多種沖突,避免了傳統(tǒng)方法需要多次檢測的問題,具有較高的效率。
屬性;委托;沖突;一致性
權限委托是指在訪問控制系統(tǒng)中,權限所有者將自己權限的全部或一部分委托給另外一個實體,由后者代其完成相應的工作。采用委托機制能使集中式的管理工作分布化,權限管理更加靈活方便。
在權限委托機制中,若委托者的決定權過大,系統(tǒng)中權限的傳播將難以控制,需要對委托過程中的參與者進行約束,進而保證委托過程的安全性。為了解決這個問題,現(xiàn)有的權限委托方法主要采用以下兩種方式:(1)劃分權限,在PBDM模型[1]中定義可委托角色集合,限制允許委托的權限;(2)控制受托范圍,例如基于映射機制的細粒度RBAC委托授權模型[2]中定義先決角色,檢查受托者的資格,并限制委托的深度。這些方法在一定程度上解決了委托約束問題,但依然存在不足。首先,現(xiàn)有的委托方法大多針對RBAC模型,約束條件一般都是用戶所具有的角色,而角色只是用戶的一個屬性,需要使用更多的屬性表達約束條件;其次,由于委托是用戶的自主行為,不同用戶之間的委托可能會產(chǎn)生沖突,需要消除委托沖突,保證委托的可控性[3-6]。文獻[7]提出一種基于參數(shù)的委托方法,能夠檢測出委托約束沖突和冗余委托沖突,但是需要在每次委托中加入衰減參數(shù),且沖突的檢測需要遍歷所有存在的委托鏈。文獻[8]提出一種基于圖的委托沖突檢測方法,能夠檢測出委托約束沖突和環(huán)狀委托沖突,但是檢測環(huán)狀委托需要以每個用戶結點為起點,重復進行檢測。文獻[9]所提出的委托方法支持多屬性約束,但是只定義了受托者獲得權限所需要的條件,不能控制權限委托的范圍。
針對現(xiàn)有權限委托機制中權限傳播難以控制、沖突檢測效率較低的問題,本文提出了一種基于屬性約束的權限委托機制(A ttribute Restricted Perm ission Delegation M echanism,ARPDM),定義了先決條件、受托條件和撤銷條件等委托約束條件,采用多種屬性對委托參與者的權力進行約束,有效解決了委托過程可控問題;針對委托過程中可能出現(xiàn)的三類沖突,提出了一種基于委托樹的沖突檢測方法,能夠更加有效地檢測多種沖突,滿足一致性需求。
ARPDM機制如圖1所示。ARPDM機制中,權限的擁有者(委托者)將自己權限的全部或一部分委托給其他用戶(受托者),使后者能夠利用前者的權限執(zhí)行相關的活動。為了保證委托過程的可控性,委托者和受托者都需要滿足一定的約束條件。
圖1 基于屬性約束的權限委托機制
2.1 ARPDM中主要元素及關系
ARPDM中的主要元素為DOR,DEE,P,DC,ATT(DOR),ATT(DEE),RDC,D,它們分別表示委托者集,受托者集,權限集,委托條件集,委托者屬性集,受托者屬性集,再委托條件集和委托深度集。
委托條件包括三種:(1)先決條件(Prerequisite Condition),規(guī)定委托行為的發(fā)起者需要滿足的條件,是對委托者是否具備委托能力的約束;(2)受托條件(Delegatee Condition),規(guī)定受托者要獲得權限需要滿足的條件,是對受托者能否獲得委托權限的約束;(3)撤銷條件(Revoke Condition),規(guī)定撤銷委托權限需要滿足的條件。它們的集合分別表示為PRC、DEC和REC且DC=PRC∪DEC∪REC。再委托條件用于描述受托者獲得權限后,繼續(xù)委托需要滿足的條件,由權限的委托者在委托權限時定義。
ARPDM中主要的元素關系有:
(1)屬性分配關系
DORAA?DOR×ATT(DOR)為委托者-屬性指派關系。
DEEAA?DEE×ATT(DEE)為受托者-屬性指派關系。
(2)用戶與權限的映射關系
DOR_P(dor)返回委托者dor所具備的權限集。
DOR_DelP(dor)返回委托者dor可以委托的權限集。
DOR_DelEdP(dor)返回委托者dor已經(jīng)實施委托的權限集。
DEE_P(dee)返回受托者dee所具備的權限集。
DEE_DelP(dee)返回受托者dee通過委托獲得的權限集。
DelP(dor,dee)返回受托者dee從委托者dor處獲得的委托權限集。
(3)屬性與委托條件的關系
FulfilPRC(att(dor),prc)∈{true,false}表示委托者dor的屬性與先決條件prc的關系,該值為true時,表示委托者的屬性滿足先決條件。
FulfilDEC(att(dee),dec)∈{true,false}表示受托者dee的屬性與受托條件dec的關系,該值為true時,表示委托者的屬性滿足受托條件。
FulfilREC(att(dor),att(dee),rec)∈{true,false}表示委托者dor的屬性、受托者dee的屬性與撤銷條件rec的關系,該值為true時,表示委托者和受托者的屬性滿足撤銷條件。
(4)權限委托關系
DR?DOR×DEE×P×D×DEC×REC為權限委托關系,(dor,dee,p,d,dec,rec)∈dr表示委托者dor將權限p委托給受托者dee,委托深度為d,受托條件為dec,撤銷條件為rec。
2.2 委托實施過程
ARPDM權限委托實施過程分為請求階段、判定階段和執(zhí)行階段三個階段,它們的主要作用如下:
(1)請求階段
在請求階段,委托者必須向系統(tǒng)提供的信息有:委托權限、委托深度、撤銷條件、再委托限制、受托者和受托條件等??梢员硎緸椋?/p>
式中request.p、request.d、request.rec、request.rdc、request.dor、request.dec分別表示委托請求中的權限、委托深度、撤銷條件、再委托限制、受托者和受托條件。當Check(request)=true表示委托者的請求合法,能夠被系統(tǒng)響應。
(2)判定階段
在判定階段,系統(tǒng)根據(jù)委托請求者提供的信息,判斷請求的合法性,判斷的依據(jù)主要包括以下幾個方面:
①是否滿足先決條件
先決條件由權限的授予者定義,利用FulfilPRC函數(shù)判斷委托者的屬性能否滿足權限委托的先決條件。當FulfilPRC(att(dor),p.prc)=true時,表明在當前環(huán)境下委托請求者dor的屬性滿足權限p的先決條件p.prc,可以進行委托。
②是否違背系統(tǒng)安全約束
在受托者獲得委托權限前,需要判斷其是否因為獲得委托權限而違背系統(tǒng)的安全約束,如職責分離等。如果違背了安全約束,那么委托將無法執(zhí)行。定義用于檢查受托者是否因為獲得委托權限而違背安全約束的函數(shù):
obey(P)=true表示某用戶的權限集P違背了系統(tǒng)的安全約束,當Con(request)=true時,表明受托者dee在獲得權限后不能滿足安全約束,這種情況下,系統(tǒng)不允許委托者進行委托。
③是否滿足委托深度限制
委托深度表示受托者能夠繼續(xù)委托的次數(shù),用以控制權限傳播的范圍。權限每次委托后,其深度限制減1,即p.d=pre_p.d-1,其中pre_p表示委托前委托者擁有的權限。當p.d=0時,權限無法委托給其他用戶。定義用于檢查委托權限是否滿足委托限制的函數(shù):
Depth(request)=true表示請求委托的權限滿足委托深度限制,能夠繼續(xù)委托。
(3)執(zhí)行階段
在執(zhí)行階段,在滿足受托條件request.dec的情況下,受托者request.dee獲得權限r(nóng)equest.p,并且委托的深度限制d減1。如果request.dee繼續(xù)委托,必須保證當前委托深度大于0,且request.dee和環(huán)境屬性滿足再委托限制request.rdc;當受托者屬性和委托者屬性滿足撤銷條件,即Fulfil(att(dor),att(dee),rec)=true時,權限委托結束,撤銷受托者獲得的權限。
在訪問控制系統(tǒng)中,權限委托是一種用戶的自主行為,出于靈活性的考慮,權限委托采用分布式的管理方式,每個具備權限的用戶都有可能成為權限的委托者。不同的用戶按照各自的權限管理需求進行委托很有可能帶來委托沖突,造成權限委托的不一致。雖然ARPDM中定義了先決條件、受托條件、撤銷條件等約束,但是無法避免委托沖突的發(fā)生。本節(jié)對權限委托可能引起的沖突進行定義,分析委托沖突產(chǎn)生的原因,提出對沖突進行檢測的方法。
3.1 委托沖突定義
用戶在進行權限委托時,可能出現(xiàn)如下幾類委托沖突的情況,分別稱為委托約束沖突、冗余委托沖突和環(huán)狀委托沖突。
(1)委托約束沖突
委托約束沖突是指兩個委托者將相同的權限委托給同一用戶,并且委托約束條件不相同的情況。如圖2所示,委托約束沖突可分為三類,委托深度沖突、受托條件沖突和撤銷條件沖突,它們分別表示如下:
圖2 委托約束沖突
圖3 冗余委托沖突
(2)冗余委托沖突
在定義冗余委托沖突前,首先定義委托鏈。
委托鏈:關于權限p的委托鏈是一個由參與委托的用戶組成的序列<u0,u1,…,un>。在委托鏈中,每個用戶都與其后序用戶存在委托關系,即?ui∈{u|uin <u0,u1,…,un>}(0≤i<n,i∈Z),?d,dec,rec使(ui,ui+1,p,d,dec,rec)∈dr。
冗余委托沖突可分為兩種,一類是與原始權限相關的冗余,如圖3左部,某用戶u1已經(jīng)由授權管理員授予了某權限p1,而其他用戶又將權限p1委托給u1,即(u2,u1,p1,d1,dec1,rec1)∈dr,(M,u1,p1)∈A(表示管理員M為u1分配權限p1);另一類是與委托權限相關的冗余,如圖3右部,某用戶u3將權限p2委托給u4和u5,u4將權限委托給其他人后,又將權限委托給u5,即(u3,u5,p2,d4,dec4,rec4)∈dr,并且存在一個關于權限p2的委托鏈<u3,u4,…,u5>。
(3)環(huán)狀委托沖突
環(huán)狀委托沖突是指某用戶將權限委托后,經(jīng)過若干次委托,又成為權限的受托者,如圖4所示。用戶u1將權限p1委托給其他用戶,其他用戶又將權限委托給了u1。環(huán)狀委托使得權限的委托者成為權限的受托者,可能造成委托的無限循環(huán),無法確定最終的受托者。對于權限p,如果存在委托鏈<ui,uj,…,ui>(0<i,j≤n,i,j∈Z),則稱存在環(huán)狀委托。
圖4 環(huán)狀委托沖突
3.2 委托沖突檢測
根據(jù)ARPDM的特點,提出一種基于帶參數(shù)委托樹的委托沖突檢測方法,將系統(tǒng)中的委托沖突狀態(tài)映射為對應的委托樹結構,從而將委托沖突問題映射為樹中結點的關系問題,并提出一種高效的沖突檢測算法。
委托樹:關于用戶u的委托結構是一個樹Tree(u)= (v,F(xiàn)),其中v是樹的根結點,F(xiàn)是m≥1棵樹的森林,F(xiàn)=(T1,T2,…,Tm),其中Tk(1≤k≤m)稱為根結點v的第k棵子樹。在委托樹中,每個節(jié)點都對應一個用戶,父結點與子結點的連線代表用戶與用戶之間的權限分派關系,如圖5所示。
圖5 委托樹示例
假定委托機制中委托權限最初都由系統(tǒng)管理員授予,如果將管理員看做委托樹的根結點,將它的子結點看做是得到授權的用戶,將深度大于1的結點看做是得到委托權限的用戶,形成的樹形結構可以映射為系統(tǒng)的委托狀態(tài)。在該樹中,只要用戶委托成功,就在其對應的結點下建立孩子結點;當需要進行委托撤銷時,就刪除委托者對應的子結點。
在委托樹中,每個結點都對應一個用戶和一個權限集,即任取樹中結點vi,存在ui和Pi使得ui=user(vi),Pi=pers(vi),分別映射為結點vi所對應的用戶和權限集。委托樹生成過程如下:
(1)生成委托樹的根結點v,其對應的用戶為授權管理員,其對應的權限集為所有已經(jīng)分配出去的權限。
(2)若授權管理員為用戶ui分配了權限集Pi,則新建根結點的子結點vi,且ui=user(vi),Pi=pers(vi)。管理員為幾個用戶分配權限,則根結點就有幾個孩子結點。
(3)對于委托樹中的每一個非根結點vx,其對應的用戶uy為其他用戶uj委托了權限集Pj,則新建結點vx的子結點vj,且uj=user(vj),Pj=pers(vj)。
(4)重復步驟(3),直到所有權限委托完畢。
在委托樹中,樹中結點主要有兩種關系:父子關系和祖先子孫關系。父子關系代表直接的委托關系,如果兩個結點滿足關系vi=parent(vj),則稱結點vi是結點vj的父結點。滿足父子關系的結點,其對應的用戶具有委托關系,即?p,d,dec,rec,使得(user(vi),user(vj),p,d,dec,rec)∈dr,由于結點vj所代表用戶的全部權限都是由結點vi委托的,因此兩個結點權限集滿足關系pers(vj)?pers(vi)。祖先子孫關系代表間接的委托關系,若兩個結點滿足關系vi=ancestor(vj),則稱vi是vj的祖先結點,它們之間必然存在一條委托鏈<user(vi),…,user(vj)>,并且pers(vj)?pers(vi)。
通過對委托樹的分析,將委托沖突的檢測問題映射為樹中結點的關系問題,并給出如下定理:
定理1委托機制中不出現(xiàn)委托約束沖突的條件是委托樹上的相同用戶的結點,其對應權限集的交集為空,或它們的父結點相同,或相同權限的委托深度、受托條件和撤銷條件相同。
通過反證法證明,假設委托樹上存在相同用戶的結點,這兩個結點權限集的交集不為空、它們的父結點不同且相同權限的委托深度、受托條件或撤銷條件是不同的,證明存在委托約束沖突。
結論:存在委托約束沖突。
證明:由于(user(v3),user(v1),px,d1,dec1,rec1)∈dr且(user(v4),user(v2),px,d2,dec2,rec2)∈dr,并且user(v1)=user(v2),user(v3)≠user(v4),當d1≠d2時,不同用戶為相同用戶委托相同的權限,且深度不同,存在深度沖突;
當dec1≠dec2時,不同用戶為相同用戶委托相同的權限,且受托條件不同,存在受托條件沖突;
當rec1≠rec2時,不同用戶為相同用戶委托相同的權限,且撤銷條件不同,存在撤銷條件沖突。得證。
定理2委托機制中不出現(xiàn)冗余委托沖突的條件是委托樹上的相同用戶的結點,其對應權限集的交集為空或它們父結點不是祖先子孫關系。
用反證法證明,假設委托樹上存在相同用戶的結點,這兩個結點權限集的交集不為空且它們的父結點是祖先子孫關系,那么一定存在冗余委托沖突。
條件:v1,v2∈Nodes(T),user(v1)=user(v2),pers(v1)∩pers(v2)≠φ,v3=parent(v1),v4=parent(v2),v3=ancestor(v4)
結論:存在冗余委托沖突
證明:由pers(v1)∩pers(v2)≠φ可知?p,使p∈pers(v1)∩pers(v2)。
如果v3是根結點,則?d1,dec1,rec1,使(M,user(v1),p)∈A且(user(v4),user(v2),d1,dec1,rec1)∈dr,又因為user(v1)=user(v2),滿足第一類冗余委托的條件,存在冗余委托。
如果v3不是根結點,則?d2,dec2,rec2,d3,dec3,rec3使 (user(v3),user(v1),p,d1,dec1,rec1)∈dr并且(user(v4),user(v2),p,d2,dec2,rec2)∈dr,由于v3=ancestor(v4),v4=parent(v2)可知,v3=ancestor(v2),因此存在關于權限p的委托鏈<user(v3),…,user(v4),user(v2)>,因為v1和v2所指示的用戶相同,即user(v1)=user(v2),因此存在關于權限p的委托鏈<user(v3),…,user(v4),user(v1)>。
又因 (user(v3),user(v1),p,d1,dec1,rec1)∈dr成立,滿足第二類冗余委托的條件,存在冗余委托。得證。
定理3委托機制中不出現(xiàn)環(huán)狀委托沖突的條件是委托樹上所有結點所代表的用戶都與其祖先結點代表的用戶不相同。
通過反證法證明,假設委托樹上存在相同的用戶,且它們之間存在祖先子孫關系,則存在環(huán)狀委托沖突。
條件:v1,v2∈Nodes(T),user(v1)=user(v2),v1=ancestor(v2)
結論:存在環(huán)狀委托沖突
證明:?p∈pers(v2),由于v1是v2的祖先結點,所以p∈pers(v1)成立,且存在關于權限p的委托鏈<user(v1),…,user(vx),user(v2)>,因為v1和v2所指示的用戶相同,即user(v1)=user(v2),得到關于權限p的委托鏈<user(v1),…,user(vx),user(v1)>,因此環(huán)狀委托沖突存在。得證。
本文所提出的方法需要在委托樹中查找相同用戶的結點,對樹中結點進行遍歷并進行對比,其時間復雜度為O(n2),其中n表示委托樹中結點的數(shù)量。文獻[1]、[2]、[10]中所提出的委托方法通過受托者的角色和委托次數(shù)等對委托進行約束,在ARPDM中都可通過定制約束條件中的屬性來實現(xiàn)(如將受托條件設為用戶屬性、把再委托條件定義為剩余委托次數(shù)必須大于0)。文獻[7]的權限檢查方法是基于委托鏈的,每次檢測都需要遍歷所有的委托鏈,與該方法相比,本文的方法能夠檢測出更多的沖突類型,并且以可視化的方式進行檢測。文獻[8]中基于圖論的環(huán)狀委托查找算法的時間復雜度為O(m3),其中m表示委托圖中結點的數(shù)量,與該方法相比,本文的方法在n<m3時具有更好的時間性能,且能夠通過一次檢測判定三種不同的沖突。
本文提出了一種支持多屬性約束的權限委托機制ARPDM,采用多種約束條件對委托參與者進行約束,能夠提高委托的可控性,防止隨意委托的情況。為了避免不同用戶按照各自的需求實施委托可能會造成委托沖突的問題,本文分析了三類委托沖突,提出了一種基于委托樹的沖突檢測方法,將委托沖突的問題映射為委托樹中結點的關系問題,能夠通過一次遍歷檢測多種沖突,提高沖突檢測的效率。
[1]Zhang Xinw en,Oh S,Sandhu R.PBDM:a flexible delegation model in RBAC[C]//Proceedings of the SACMAT’03.Como,Italy:ACM Press,2003.
[2]蔡偉鴻,韋崗,肖水.基于映射機制的細粒度RBAC委托授權模型[J].電子學報,2010,38(8).
[3]孫偉,鄔長安,王瑞民.角色轉(zhuǎn)授權模型中授權沖突問題的解決方案[J].計算機工程與應用,2008,44(36):244-248.
[4]Ruan Chun,Varadharajan V.Resolving conflicts in authorization delegations[C]//The Australian Conference ACISP2002,July 3-5,2002.
[5]周麗麗,王鳳英.協(xié)同環(huán)境下的委托授權模型架構及實現(xiàn)[J].山東理工大學學報:自然科學版,2010,24(5):11-14.
[6]陳旭日,徐煒民,沈文楓,等.基于最小生成樹的委托授權模型[J].計算機應用與軟件,2007,24(11):47-49.
[7]Ruan Chun,Varadharajan V.A weighted graph approach to authorization delegation and conflict resolutions[J]. LNCS 3108:ACISP,2004:402-413.
[8]洪帆,段素娟,黎成兵.基于圖的委托授權模型[J].北京郵電大學學報,2005,28(6):5-7.
[9]葉春曉,吳中福,符云清,等.基于屬性的擴展委托模型[J].計算機研究與發(fā)展,2006,43(6):1050-1057.
[10]翟征德.基于量化角色的可控委托模型[J].計算機學報,2006,29(8):1401-1407.
ZHANG Bin1,SHANG Zheng2
1.PLA Information Engineering University,Zhengzhou 450004,China
2.PLA Military Economic Academy,Wuhan 430000,China
To solve the constraints of user role in permission delegation methods,the paper proposes an attribute restricted permission delegation mechanism to strengthen the delegation constraints,in which the capability of delegators and delegatees is constrained by prerequisite condition,delegatee condition and revoke condition.By analyzing conflicts existing in the process of delegation,such as delegation constraint conflicts,redundant delegation conflicts,circle delegation conflicts and so on,this paper designs a conflict detection algorithm based on delegation tree.In this algorithm,permission conflicts can be expressed the relationship of nodes in delegation tree,and multiple delegation conflicts can be detected efficiently through one traversing of delegation tree.
attribute;delegation;conflict;consistency
A
TP393
10.3778/j.issn.1002-8331.1209-0256
ZHANG Bin,SHANG Zheng.Attribute restricted permission delegation mechanism and delegation conflict detecting method.Computer Engineering and Applications,2014,50(16):95-99.
國家重點基礎研究發(fā)展規(guī)劃(973)(No.2011CB311801)。
張斌(1969—),教授,碩士生導師,主研方向:網(wǎng)絡與信息安全;商錚,男,碩士研究生。E-mail:zhangyym@xinhuanet.com
2012-09-23
2012-12-17
1002-8331(2014)16-0095-05
CNKI網(wǎng)絡優(yōu)先出版:2012-12-20,http://www.cnki.net/kcms/detail/11.2127.TP.20121220.1652.004.htm l