(蘭州交通大學數理與軟件工程學院, 蘭州 730070)
摘 要:
提出了一種基于角色的授權代理模型——SBDM,討論了SBDM的基本思想、體系結構、組成要素以及權限代理約束和判定,并提供了一種有參考價值的實現權限代理模型的設計思路,它將在大型分布式網絡、工作流管理系統中有廣泛應用。
關鍵詞:訪問控制; 角色; 代理; 約束; 基于角色的訪問控制
中圖分類號:TP309 文獻標志碼:A
文章編號:1001-3695(2009)02-0730-03
Role-based delegation model and realization
ZHANG Li-ming, LI Yu-long
(School of Mathematics, Physics Software Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract:Presented a SPC-based delegation model (SBDM). Discussed its main idea, architecture constitutes, delegation constraint, functions of delegate. Also, introduced the method and design idea to realize SBDM. It would be used in distributed network and workflow management.
Key words:access control; role; delegation; constraint; RBAC
在基于角色的權限管理系統中,授權管理集中統一由管理員來實施,一般用戶不具有授權管理的權限。然而在大規模分布式環境下,完全依賴管理員集中式管理會給管理工作帶來很大的困難。在基于角色的權限管理模型中,引入權限代理的思想后[1],允許一般用戶將自己所擁有的權限再轉授給其他用戶,使系統授權管理分散實施,這在某種程度上類似于自主訪問控制的授權模式。與集中式權限管理相比,在權限代理模型中,這種具有自主特性的授權模式給系統帶來了很大的靈活性,基于角色的權限代理技術為在分布式系統中實現RBAC提供了一種有效的手段。
權限代理(delegation)的基本思想是用戶將自己的權限轉授給其他用戶,讓接受授權的用戶代表發出授權的用戶執行某些任務。權限代理技術將權限的集中式管理工作分散實施,使權限的管理更加靈活方便,是一種提高分布式系統伸縮性的重要技術[2]。
1 相關工作
現有的基于角色的權限代理模型主要有RBDM0[3]、RDM2000[4]和PBDM[5]。其中,RBDM0模型是最早提出的一個建立在RBAC96[6]扁平模型之上的權限代理模型,它首次將角色引入權限代理模型中,實現用戶—用戶的權限代理;但它不支持角色層次關系,也不支持代理約束。RDM2000模型是RBDM0的擴展模型,支持角色層次關系和多步代理。與RBDM0一樣,RDM2000模型的代理粒度也是角色,不支持部分角色(許可)的代理,這一點不符合權限管理的最小特權原則。為了克服這方面的不足,Zhang Xun-wen 等人提出了基于許可的代理模型PBDM。PBDM建立在RBAC96模型之上,支持部分角色權限代理,滿足最小權限原則,為權限的管理提供了更大的靈活性;但PBDM模型非常復雜,存在著角色名空間爆炸等缺點。
雖然RBAC已在某些系統中得到應用,但是在一些大型的信息系統或分布式系統中,權限的委托代理比較復雜,需要RBAC具有完備的基于角色的權限代理策略、模型和實施機制。目前現有的權限代理模型很難實現或不能滿足系統安全的需求。本文擬在RBAC96模型基礎上提出一個綜合模型——SBDM,以滿足復雜系統的權限代理。
2 SBDM模型
2. 1 模型的提出
授權約束是基于角色的訪問控制模型中一個非常重要的部分。基于角色的權限代理模型是建立在RBAC模型基礎之上,用戶在進行權限代理時也應該受到系統的約束。在現有的基于角色的權限代理模型中,角色的指派和撤銷只考慮了約束初始用戶所擁有的角色,而不約束系統中代理用戶擁有的角色,因而會引起授權的沖突,存在嚴重的缺陷。基于系統先決條件的權限代理模型(SPC-based delegation model,SBDM)提出了系統先決條件(system precondition SPC)的概念,并定義了新的基于SPC角色代理和撤銷機制,從而克服了RBDM模型的缺陷,能夠正確地實施安全政策,更好地滿足實際安全的需求。
2. 2 模型的體系結構
權限代理模型SBDM體系結構如圖1所示。SBDM中包含了幾大基本要素,即U是用戶集,R是用戶角色集(其中,OR是用戶初始角色集,DR是用戶代理角色集),P是許可集,S是用戶會話集。
2. 3 SBDM模型的形式化定義
定義1 集合。
SBDM中的集合包括:U是用戶集,R是用戶角色集,OR是用戶初始角色集,DR用戶代理角色集,P是許可集,S是用戶會話集,I為自然數集。
定義2 關系。
a)R=OR ∪ DR;
b)PAOP×OR,許可到初始角色多對多映射關系;
c)PDOP×DR,許可到代理角色多對多映射關系;
d)PA=PAO ∪ PADP×R,權限到角色的指派關系,該關系是多對多的關系;
e)UAOU×R,用戶到初始角色多對多映射關系;
f)UADU×R,用戶到代理角色之間的多對多的關系;
g)UA=UAO∪UADU×R,用戶到角色的指派關系,是多對多的關系;
h)SSD,SSDR×R,靜態角色互斥約束,對每個(ui,ri)∈UA,不存在(ui,rj)∈ UA且rj∈ static_mutual_exclusion(ri);
i)DSD,DSDR×R,動態角色互斥約束,role(si) { r | (r′≥r ) [(user (si),r′)∈UA]},且對于每個ri∈roles(si),不存在rj ∈roles(si),同時, rj∈ dynanac_mutual_exclusion(ri);
j)ORHOR×OR,初始角色層次關系,即角色與角色之間的繼承關系,是一偏序關系;
k)DLGTUA×UA=U×R×U×R,用戶授權到用戶授權的一對多映射關系;
l)ODLGTUAO×UAD,初始用戶授權到用戶權限代理的一對多的映射關系;
m)DDLGTUAO×UAD,用戶轉授權到用戶權限代理的一對多的映射關系;
n)DLGT=ODLGT∪DDLGT;
o)DTUA×UA,權限代理樹;
p)user_o(r)={u|(r′≥r)[(u,r′)∈UAO]};
q)user_d(r)={u|(r′≥r)[(u,r′)∈UAD]};
r)users(r)=user_o(r)∪ user_d(r);
s)roles(u)=role_o(u)∪ role_d(u)。
定義3 函數。
a)用戶基數約束user_cardinal。U→ I,一個將每個用戶ui映射到一個非負整數i的函數用來定義一個用戶所能擁有的角色數目的上限,I為所有非負整數的集合。(ui,ri)∈UA集合,role_set(ui)={r|(ui,r)∈UA},有 |role_set (ui)|≤ user_cardinal(ui)。
b)角色基數約束role_cardinal。R→ I,一個將每個角色ri映射到一個非負整數i的函數,用來定義一個角色所能擁有用戶成員數目的上限,I為所有非負整數的集合。(ui,ri)∈UA集合, user_set (ri) = {u|(u,ri)∈UA},有|user_set (ri)|≤ role_cardinal (ri )。
c)role_o。U→ 2R是用戶到初始角色一對多的映射關系,role_o(u)=ORu。
d)role_d。U→ 2R是用戶到代理角色一對多的映射關系:role_d (u)=DRu。
e)user_o,user_d。users:R→ 2U角色到用戶之間一對多的映射關系。
f)user:S→ U是會話到用戶一對一的映射關系。user(si)={ u | (u,r)∈ si}。
g)role:S→ 2R是會話到角色一對多的映射關系。
h)M→ I,M是最大代理深度。
i)W→ I,W是最大代理寬度。
j)Duration是所有的有效時間段集合,時間段用二元組[tb,te]表示。
k)Prior:U×R→ U×R。prior(u,r)={(u′,r′) | (u,r )∈UAD,(u′,r′,u,r)∈DLGT};prior(u,r)={| (u,r )∈UAO}。
l)權限委托代理路徑(delegation path)。一條代理路徑就是一組用戶—角色授權關系的有序集合,path(u0,r0)={(u0, r0),(u1, r1),…,(ui, ri),…,(un, rn) | (ui, ri)= prior(ui-1, ri-1)∈UA, i>0,n為任一自然數};prior(u,r)= {| (u,r )∈UAO}。
m)權限委托代理深度(delegation depth)。代理步數(depth)U×R→M,在多步代理中,代理步數就是代理路徑中代理用戶到角色授權關系的總數,depth(u, r)={m | m=|path(u, r)|,(u, r)∈UAD };depth(u, r)={φ|(u, r)∈UAO }。
定義4 模型中,u,u ∈ U,u的所有角色組成的集合記做Ru,管理員授予u的初始角色記做ORu,其他用戶委托代理的角色記做DRu。
定義5 權限委托代理是四元組dlgt={uing,dr,ued,t}。其中:uing∈ U是委托用戶,ued∈U是代理用戶,dr∈ DR是被代理角色,t∈duration表示ued具有red的合法時段。
2. 4 權限代理的約束及代理判定
約束是基于角色的訪問控制技術中的一個重要方面,同樣,在基于角色的權限代理模型中,約束是必不可少的。然而,當前基于角色的權限代理訪問控制模型中,權限代理約束并沒有被包含其中。在權限代理模型中存在兩類約束,一類是訪問控制系統約束,如用戶約束、角色約束、許可約束、會話約束等;另一類是權限代理或撤銷所應遵循的約束,如權限代理深度約束、權限代理寬度約束、權限代理先決角色條件約束、權限代理時態約束等。
權限代理約束不同于訪問控制系統約束,權限代理約束規定了角色或許可被轉授給代理用戶時,或代理用戶在某一時刻激活一個代理角色時所應遵循的強制性規則。
2. 4. 1 權限代理系統先決條件(SPC)
在基于角色的代理授權模型中,必須遵循系統安全的基本準則,這就要求權限的代理或撤銷必須在系統約束下進行。從系統的整體出發,定義系統完備的約束關系,筆者稱之為系統先決條件(SPC),并以此定義了基于角色權限代理的系統先決條件(delegation SPC,DSPC)。
定義6 DSPC是一組約束條件,定義如下:
在系統中,uing能夠將自己擁有的角色red(直接或間接地)委托代理給ued,必須滿足的DSPC如下:
a)DSPC1,靜態角色互斥約束。如果(red,r(ued))∈SSD,則(uing,red)UA。
b)DSPC2,代理角色基數約束。如果 |u(red)|≥role_cardinal(red),則(uing,red)UA。
c)DSPC3,代理用戶基數約束。如果 |r(ued)| ≥user_cardinal(ued),則(uing,red)UA。
2. 4. 2 權限代理約束
定義7 權限代理約束(delegation constraint, DC)定義如下:
在系統中,uing能夠將自己擁有的角色red(直接或間接地)代理給ued,必須滿足的DC如下:
a)DC1,權限代理先決角色條件約束。
先決角色條件約束CR,是用操作符“”(and,與)和“|”(or,或)將元素cr結合起來的布爾表達式。其中cr可以是x和-x的形式,前者表示具有權限x,后者表示不具有權限x。如CR = cr1 cr2 | (-cr3)。
b)DC2,權限代理深度約束。
最大代理步數M是在角色—角色代理過程中,允許被代理的角色向下代理的最大步數(次數)。不能向下代理角色的最大代理步數M=0,能向下代理角色的最大代理步數M≥1;(depthMax-depth(red))≤0,則(uing,red)UA。
c)DC3,權限代理寬度約束。
最大代理寬度W是在角色—角色代理過程中,允許代理角色被同一委托用戶轉授代理給不同代理用戶的次數。(widthMax-width(red))≤0,則(uing,red) UA。
d)DC4重復授權約束。如果(red, r(ued))∈UA ,則(uing,red)UA。
定義8 權限代理約束判定。
權限代理約束判定是一個三元函數,用來判定某個權限代理操作是否符合系統當前的約束。
constraint_valid:delegation → {true, 1}:
constraint_valid(uing, red,ued)=
true 符合系統約束
1 不符合系統約束
3 權限代理系統的設計
為在RBAC系統中實現基于角色的權限代理功能,在訪問控制系統中增加授權代理服務模塊(delegation service)完成用戶自主的權限代理及撤銷操作。整個系統的實現框架如圖2所示。
4 結束語
基于角色的權限代理是RBAC中角色管理的一個重要方面。目前RBAC已經應用到一些安全操作系統、安全數據庫系統中,部分實現了權限代理功能,但在使用RBAC的應用系統中,如何實現實用的基于角色的權限代理處于應用的研究階段。本文在基于角色的訪問控制系統中對基于角色的權限代理進行了研究,提出了一種新的基于角色的權限代理模型——SBDM,它將在大型分布式網絡、工作流管理系統中有廣泛的應用。
參考文獻:
[1]SANDHU R, COYNE E, FEINSTEIN H, et al. Role-based access control models[J]. IEEE Computer, 1996,29(2):38-47.
[2]BARKA E, SANDHU R. Framework for role-based delegation models[C]//Proc of the 16th Annual Computer Security Application Conference.Washingtom DC: IEEE Computer Society, 2000:168-176.
[3]SANDHU R. Future directions in role-based access control models[C]//Proc ofInternational Workshop on Information Assurance in Computer Networks: Methods, Models, and Architectures for Network Security. Berlin: Springer, 2001:22-26.
[4]BARKA E, SANDHU R. A role-based delegation model and some extensions[C]//Proc of the 23rd National Information Systems Security Conference.2000.
[5]ZHANG Long-hua, AHN G J, CHU B T. A rule-based framework for role-based delegation[C]//Proc of the 6th ACM Symposium on Access Control Models and Technologies. New York: ACM Press, 2001:153-162.
[6]ZHANG Xin-wen, OH S, SANDHU R. PBDM: a flexible delegation model in RBAC[C]//Proc of the 8th ACM Symposium on Access Control Models and Technologies. New York: ACM Press, 2003:149-157.
[7]ANSI/INCITS 359-2004, Information Technology: role based access control[S/OL].(2004-02-03). http://techstreet.com/cgi-bin/detail?product_id=1151353.
[8]趙慶松, 孫玉芳, 孫波. RPRDM: 基于重復和部分角色的轉授權模型[J]. 計算機研究與發展, 2003, 40(2): 221-227.
[9]王小明, 趙宗濤,馮德民. 一種動態角色委托代理授權模型[J]. 計算機科學, 2002, 29(2): 66-68.
[10]李黎, 王小明. 基于角色的權限代理審計模型[J]. 計算機應用研究, 2007, 24(11):139-142.