張秉閣, 劉淑芬, 韓 嘯,2
(1. 吉林大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 長春 130012; 2. 吉林大學(xué) 學(xué)報編輯部, 長春 130012)
在計算機系統(tǒng)安全方面, 基于角色的訪問控制(role-based access control, RBAC)[1]是一種限制用戶訪問的方法, 作為一種有效的訪問策略得到了廣泛認可. 基于角色的授權(quán)代理模型[2-7]是在RBAC的基礎(chǔ)上提出的一種委托模型, 該模型在分布環(huán)境中應(yīng)用廣泛. 如果采用集中授權(quán)的方法, 系統(tǒng)對用戶的權(quán)限分配會非常繁重, 而授權(quán)代理可解決該問題, 授權(quán)代理的基本思想是將自己的權(quán)限或角色委托給其他用戶, 讓接受委托的用戶代理執(zhí)行某些任務(wù).
目前, 基于角色[8-9]的授權(quán)代理模型主要有RBDM0[4], RDM2000[5], PBDM0[3], PBDM1[3]和PBDM2[3]等. RDM2000是RBDM0模型的一種擴展, 支持角色層次和多步代理. PBDM模型體系是支持角色間基于許可細粒度的委托, 其中PBDM0是一種粗粒度的支持用戶-用戶的授權(quán)代理模型. PBDM2 是一種支持角色-角色的授權(quán)代理模型, 但PBDM2將角色劃分為4類, 使角色名成倍增加, 并使角色間的繼承關(guān)系變得更復(fù)雜. 本文在PBDM的基礎(chǔ)上提出PBDM-P模型, 引入了私有角色解決角色-角色授權(quán)問題, 并劃分權(quán)限[8]解決PBDM0中的缺陷.
PBDM0是基于RBAC96提出的一種用戶-用戶授權(quán)代理模型, PBDM0將角色分為常規(guī)角色和代理角色, 用戶可將需要代理的角色或權(quán)限先授權(quán)給代理角色, 再將代理角色授權(quán)給其他用戶. PBDM0存在兩個問題: 1) 用戶可將任意角色或權(quán)限代理給其他用戶, 但系統(tǒng)可能不想讓用戶把一些權(quán)限委托出去; 2) PBDM不支持角色-角色授權(quán), 與實際情況不符. 為了解決第一個問題, 文獻[3]提出了PBDM1模型. PBDM1模型在PBDM0的基礎(chǔ)上將角色分為常規(guī)角色、 可代理角色和代理角色. 其中常規(guī)角色不可以代理給其他用戶, 可代理角色可代理給其他用戶, 代理角色作為用戶想代理給其他用戶的權(quán)限集合, 這樣系統(tǒng)即可限制用戶代理權(quán)限的范圍. PBDM1也不支持角色-角色授權(quán). PBDM2將可代理角色分為固定可代理角色和臨時可代理角色, 臨時可代理角色用于接受其他用戶代理給本用戶的角色, 臨時可代理角色不支持角色層次, 而常規(guī)角色和固定可代理角色支持角色繼承層次.
雖然PBDM模型體系解決了代理權(quán)限的范圍和角色-角色授權(quán)問題, 但存在嚴重的角色名空間爆炸問題, 如一個用戶大部分權(quán)限都是可代理的或不可代理的, 導(dǎo)致常規(guī)角色或可代理角色都是空角色. 另一方面, 由系統(tǒng)管理員將可代理權(quán)限和不可代理權(quán)限對用戶的分配又加重了系統(tǒng)管理員的負擔(dān). 為了解決上述問題, 本文在PBDM的基礎(chǔ)上做出改進, 提出私有角色(在角色層次中不支持繼承關(guān)系)和劃分權(quán)限為可代理權(quán)限與不可代理權(quán)限. 劃分權(quán)限的優(yōu)點是對可代理權(quán)限和不可代理權(quán)限進行集中管理, 增加了代理的安全性.
圖1 PBDM-P模型的體系結(jié)構(gòu)Fig.1 Architecture of PBDM-P model
PBDM-P模型的體系結(jié)構(gòu)如圖1所示.
2.1 模型的基本元素 用戶(U): 用戶的集合; 常規(guī)角色(RR): 一組權(quán)限的集合, 代表一種職責(zé), 在角色層次中存在繼承關(guān)系; 臨時代理角色(DTR): 一組可代理權(quán)限的集合, 當(dāng)用戶產(chǎn)生授權(quán)需求時, 建立DTR, 將需要授權(quán)的權(quán)限授予臨時DTR; 私有角色(PR): 私有角色不存在繼承關(guān)系, 因此可把臨時代理角色代理給私有角色, 從而消除無效的權(quán)限流問題, 私有角色與常規(guī)角色一一對應(yīng), 私有角色的用戶集和常規(guī)角色的用戶集相同; 可代理權(quán)限(DP): 權(quán)限中可代理給其他用戶或角色的權(quán)限集; 不可代理權(quán)限(UDP): 權(quán)限中不可以代理給其他用戶或角色的權(quán)限集. 各元素關(guān)系如下:
R=RR∪PR∪DTR, P=DP∪UDP, RR∩PR=?, RR∩DTR=?, PR∩DTR=?, DP∩UDP=?, UAR?U×RR, UAP?U×PR, UAD?U×DTR, UA?UAR∪UAP∪UAD, PAR?P×RR, PAP?P×PR, PAD?DP×DTR, PA?PAR∪PAP∪PAD, RRH?RR×RR, DH?DTR×DTR(臨時代理角色上的繼承屬于單用戶), RH?RRH∪DH.
2.2 模型函數(shù)
user_r(r): RR→2U, 表示常規(guī)角色r對應(yīng)的用戶集合;
user_p(r): PR→2U, 表示私有角色對應(yīng)的用戶集合;
own_p(r): PR→RR, 表示與私有角色一一對應(yīng)的常規(guī)角色;
?rr∈RR ??pr∈PR,pr=own_p(rr)?user_p(pr)=user_r(rr), 表示對于所有用戶都要分配一個與常規(guī)角色相對應(yīng)的私有角色, 即私有角色的用戶集與常規(guī)角色的用戶集一一對應(yīng);
permissions_r(r): RR→2P, permissions_r(r)={p: P?r′≤r·(r′,p)∈PAR}表示一個常規(guī)角色對應(yīng)權(quán)限的集合;
permissions_p(r): PR→2P, permissions_p(r)={p: P?r′≤r·(r′,p)∈PAP}表示一個私有角色對應(yīng)權(quán)限的集合;
permissions_d(r): DTR→2DP, permissions_d(r)={p: P?r′≤r·(r′,p)∈PAD}表示一個臨時代理角色具有的權(quán)限集合;
permissions(u)= (?r)(r∈DTR→permissions_d(r))∪(?r)(r∈RR→permissions_r(r))∪
(?r)(r∈PR→permissions_p(r))表示一個用戶所有權(quán)限的集合;
permissions_cand(u)=permissions(u)∩DP表示一個用戶擁有權(quán)限中能代理出去的權(quán)限集合;
permissions_cannotd(u)=permissions(u)∩UDP表示一個用戶擁有權(quán)限中不能代理出去的權(quán)限集合;
(?r)(r∈DTR→permissions_d(r)∩UDP)=?, DTR表示用戶建立的臨時代理角色, 其中的權(quán)限與不可代理權(quán)限的交集一定是空集;
(?r)(r∈DTR→permissions_d(r))?DP, 表示用戶能夠代理的權(quán)限集合是可代理權(quán)限集合的一個子集;
代理執(zhí)行的判定: can_delegate?DBR×Pre_condition×P_range×M. 其中: DBR=permissions_cand(u)表示可代理權(quán)限的集合; Pre_condition表示委托的先決條件, 用戶想要委托出去的權(quán)限必須是系統(tǒng)中可代理權(quán)限的一個子集; P_range?R表示委托范圍;M表示最大代理深度(在代理過程中允許向其他用戶代理的路徑深度).
2.3 模型的實施和撤銷
2.3.1 用戶-用戶權(quán)限代理 假設(shè)用戶UA想代理其權(quán)限p1, 并將其下層角色RB代理給用戶UD, 其中RA繼承于RD和RB, RD和RB繼承于RC, 如圖2所示. 用戶、 角色及其權(quán)限關(guān)系列于表1.
圖2 角色繼承層次Fig.2 Role and role hierarchy
用戶角色可代理權(quán)限不可代理權(quán)限UARA,RA′p1,p2p3UBRB,RB′p4,p5UCRC,RC′p6p3,p4UDRD,RD′p7,p8
授權(quán)過程如下:
1) 用戶UA創(chuàng)建臨時代理角色D1;
2) 因為p1是可代理權(quán)限, 因此可通過權(quán)限-角色分配將p1授予D1, 再通過角色-角色分配將RB授予D1; 系統(tǒng)可通過代理判定自動判斷用戶所要代理的權(quán)限是否屬于可代理權(quán)限集合, 若不屬于則代理失?。?/p>
3) 用戶UA通過角色-用戶分配將D1分配給UD.
2.3.2 角色-角色權(quán)限代理 為了保證系統(tǒng)安全性, 角色-角色的授權(quán)代理需要在管理員監(jiān)督下完成. 假設(shè)常規(guī)角色RA想要將其權(quán)限p1和下層角色RB代理給角色RD, 則授權(quán)代理過程如下:
1) 創(chuàng)建臨時代理角色D2;
2) 通過權(quán)限-角色分配將p1授予給D2, 再通過角色-角色分配將RB授予D2, D2獲得權(quán)限p1,p4,p5;
3) 通過角色-角色代理將D2分配給RD′, 因為RD′沒有在角色的繼承關(guān)系中, 所以不會將D2代理給下層角色.
2.3.3 代理撤銷 代理撤銷是授權(quán)代理的重要過程. 本文考慮以下幾種撤銷方式.
1) 用戶可撤銷代理角色中一種或幾種權(quán)限;
2) 用戶也可隨時撤銷代理給某個用戶的角色;
3) 超時撤銷: 可為每次授權(quán)設(shè)置一個生命周期, 生命周期結(jié)束時代理自動撤銷;
4) 管理員撤銷: 如果管理員發(fā)現(xiàn)權(quán)限的代理違法, 則有權(quán)撤銷代理.
綜上可見, PBDM-P與PBDM的主要區(qū)別如下:
1) PBDM通過劃分角色實現(xiàn)授權(quán)代理, 而PBDM-P在PBDM的基礎(chǔ)上引入了私有角色的概念, 并劃分權(quán)限實現(xiàn)授權(quán)代理;
2) PBDM存在角色名爆炸問題, PBDM將角色劃分為4類, 使角色名是原來的3倍, 而PBDM-P將角色分為3層, 角色名比PBDM少;
3) PBDM中可能存在大量的空角色, 為解決該問題, PBDM-P將權(quán)限劃分為可代理權(quán)限和不可代理權(quán)限兩類, 使權(quán)限的代理集中管理.
權(quán)限的代理具有一致性, 即對于某個權(quán)限不會因為用戶的不同而代理性不同. 雖然PBDM-P減少了角色冗余但也存在缺點, 即權(quán)限代理性的確定減弱了其靈活性. PBDM-P與PBDM的比較結(jié)果列于表2.
表2 PBDM與PBDM-P特征比較
PBDM-P模型在PBDM模型的基礎(chǔ)上進一步將權(quán)限劃分, 有效避免了PBDM模型的缺點, 使該模型更符合實際系統(tǒng)中對訪問控制的要求, 在授權(quán)代理方面也更合理, 可應(yīng)用于對訪問控制要求較高的系統(tǒng)中.
[1] Sandhu R S, Coyne E J, Feinstein H L, et al. Role-Based Access Control Models [J]. IEEE Computer, 1996, 29(2): 38-47.
[2] Barka E S, Sandhu R. Framework for Role-Based Delegation Model [C]//Proceedings of the 16th Annual Computer Security Applications Conference. Washington DC: IEEE Computer Society, 2000: 168-176.
[3] ZHANG Xin-wen, Oh S, Sandhu R. PBDM: A Flexible Delegation Model in RBAC [C]//Proceeding of the 8th Symposium on Access Control Models and Technologies. New York: ACM Press, 2003: 149-157.
[4] Barka E, Sandhu R. A Role-Based Delegation Model and Some Extensions [C]//Proceeding of 23rd National Information Systems Security Conference. Baltimore: [s.n.], 2000: 101-114.
[5] ZHANG Long-hua, Ahn G J, Chu B T. A Rule-Based Framework for Role-Based Delegation [C]//Proceedings of the 6th ACM Symposium on Access Control Models and Technologies. New York: ACM Press, 2001: 153-162.
[6] Sandhu R, Ferraiolo D, Kuhn R. The NIST Model for Role-Based Access Control: Towards a Unified Standard [C]//Proceedings of 5th ACM Workshop on Role-Based Access Control. New York: ACM, 2000: 47-63.
[7] ZHANG Jian, SUN Ji-gui, LI Ni-ya, et al. Weighted-Role Based Privilege Delegation Model for Workflow [J]. Journal of Jilin University: Engineering and Technology Edition, 2009, 39(4): 1057-1063. (張健, 孫吉貴, 李妮婭, 等. 工作流中一個基于加權(quán)角色的權(quán)限代理模型 [J]. 吉林大學(xué)學(xué)報: 工學(xué)版, 2009, 39(4): 1057-1063.)
[8] SUN Wei-qun, SHAN Bao-hua, ZHANG Cheng, et al. A Role-Based Delegation Access Control Model for Virtual Organization in Service Grid [J]. Chinese Journal of Computers, 2006, 29(7): 1199-1208. (孫為群, 單保華, 張程, 等. 一種基于角色代理的服務(wù)網(wǎng)格虛擬組織訪問控制模型 [J]. 計算機學(xué)報, 2006, 29(7): 1199-1208.)
[9] DONG Guang-yu, QING Si-han, LIU Ke-long. Role-Based Authorization Constraint with Time Character [J]. Journal of Software, 2002, 13(8): 1521-1527. (董光宇, 卿斯?jié)h, 劉克龍. 帶時間特性的角色授權(quán)約束 [J]. 軟件學(xué)報, 2002, 13(8): 1521-1527.)