摘 要:提出了一種基于角色的權(quán)限分配及訪問控制模型,并在政府采購系統(tǒng)中實現(xiàn)了該模型。該系統(tǒng)在用戶角色分配的基礎(chǔ)上加入了權(quán)限裁減機制,有效地解決了政府采購系統(tǒng)中錯綜復(fù)雜的訪問控制問題,大大降低了系統(tǒng)授權(quán)管理的復(fù)雜性,提高了權(quán)限管理的效率。該系統(tǒng)可配置性強,維護容易。
關(guān)鍵詞:基于角色的訪問控制; 權(quán)限裁減; 訪問控制; 角色
中圖法分類號:TP393.08 文獻標(biāo)識碼:A 文章編號:1001-3695(2006)10-0183-03
Rolebased Permission Assignment and Access Control System
WANG Shuda,LI Tao,YANG Jie,HU Xiaoqin,WANG Dandan,HUANG Rui
(College of Computer, Sichuan University, ChengduSichuan 610065, China)
Abstract:A rolebased permission assignment and access control system with for government procurement system is presented. This system adds a permission reduction mechanism into user assignment process. It can figure out the complex access control in government procurement system, and decrease the complexity of the authorization and management of users. This system is configurable and can be maintained easily.
Key words:RBAC(RoleBased Access Control);Permission Reduction;Access Control;Roles
政府采購系統(tǒng)是一個擁有大量用戶和海量數(shù)據(jù)資源的電子政務(wù)信息平臺。利用一個健壯高效的權(quán)限分配和訪問控制機制來保障整個平臺的信息安全顯得非常重要。
基于角色的訪問控制(RoleBased Access Control,RBAC)[1,2]技術(shù)將用戶和它的具體權(quán)限分離開來,管理員可將用戶的授權(quán)和權(quán)限的劃分分別進行處理,給用戶授予角色來實現(xiàn)對用戶的授權(quán)操作。文獻[1,3]的調(diào)查研究表明,RBAC降低了安全管理成本和管理復(fù)雜性,解決了傳統(tǒng)的強制訪問控制MAC[8]和自主訪問控制DAC[8]的管理難度大的問題。
在政府采購系統(tǒng)中,工作人員的職責(zé)劃分非常靈活。即使同部門的人員,職責(zé)范圍也會有細微差別,分配的權(quán)限也會有所不同。如果采用傳統(tǒng)的RBAC模型[4~6]需要對各種權(quán)限分配情況定義不同的角色。最壞的情況下,可能需要為每一個用戶定義一個角色,從而使權(quán)限角色分配(Permission Assignment)[3]成為復(fù)雜且繁重的工作,增加了授權(quán)管理的負(fù)擔(dān)。
針對以上的問題,提出了一種基于角色的權(quán)限分配及訪問控制模型,并在政府采購系統(tǒng)中實現(xiàn)了該模型。該模型將權(quán)限裁減機制引入到用戶角色分配(User Assignment)[3]過程中,根據(jù)實際情況在授權(quán)時對分配給用戶的權(quán)限進行裁減。這樣,既體現(xiàn)了基于角色訪問控制的優(yōu)勢,又滿足了政府采購系統(tǒng)中授權(quán)活動的各種復(fù)雜要求,提高了授權(quán)管理的效率。
1 系統(tǒng)方案模型
在政府采購系統(tǒng)的授權(quán)活動模型中,定義了標(biāo)準(zhǔn)角色集SR,該集合中的元素為實際政務(wù)中標(biāo)準(zhǔn)工作職務(wù)或工作資格對應(yīng)的標(biāo)準(zhǔn)角色,系統(tǒng)為這些角色預(yù)先分配了其相應(yīng)職責(zé)范圍內(nèi)的所有權(quán)限。同時還定義了裁減權(quán)限集,在用戶角色分配過程中,利用該集合可對標(biāo)準(zhǔn)角色所對應(yīng)的權(quán)限進行必要的裁減,以適應(yīng)實際授權(quán)活動的需要。基于角色的權(quán)限分配及訪問控制模型如圖1所示。
用戶集U:{u1,u2,…,un} ,ui為第i(1≤i≤n,n為系統(tǒng)中用戶的個數(shù))個用戶。其中ui(sni),sni是用戶擁有數(shù)字證書的序列號,通過sni可以唯一地確定一個CA (認(rèn)證中心)[7]頒發(fā)的數(shù)字證書,也就可以唯一地確定擁有該數(shù)字證書的用戶。
標(biāo)準(zhǔn)角色集SR:{sr1,sr2,…,srm},sri為第i(1≤i≤m,m為系統(tǒng)中標(biāo)準(zhǔn)角色的個數(shù))個標(biāo)準(zhǔn)角色。其中sri(namei,PERi),namei為標(biāo)準(zhǔn)角色的名稱,PERi為標(biāo)準(zhǔn)角色擁有的權(quán)限集合。在這里,PERi∈P。在政府采購系統(tǒng)中的標(biāo)準(zhǔn)角色有授權(quán)管理人員、欄目管理人員、安全管理員、采購執(zhí)行人員等。
權(quán)限集P:{p1,p2,…,pl},pi為第i(1≤i≤l,l為系統(tǒng)中權(quán)限的個數(shù))個權(quán)限。其中pi(objecti , opsi),objecti 是對權(quán)限pi的操作對象的描述。opsi 表示pi在操作對象objecti 上具有某種操作的權(quán)限,若objecti 是采購公告,則opsi可以是增加公告等。
裁減權(quán)限集RP:{rp1,rp2,…,rpk },rpi為第i(1≤i≤k,k為系統(tǒng)中裁減權(quán)限的個數(shù))個裁減權(quán)限。其中rpi(sni,sri,flagi,PREi), sni是用戶的數(shù)字證書的序列號。sri表示證書序列號為sni的用戶所分配的某標(biāo)準(zhǔn)角色。flagi表示PREi是否為空的標(biāo)志位,也就是表示該用戶,在賦予了標(biāo)準(zhǔn)角色sri后,權(quán)限是否經(jīng)過了裁減。PREi為該用戶被分配標(biāo)準(zhǔn)角色時裁減的權(quán)限集合。在這里,PREi{ PER | (name, PER)=sri }。
會話集S:{s1,s2,…,sj},會話是用戶登錄時系統(tǒng)為用戶建立的,它完成將用戶擁有的相關(guān)角色和裁減集合激活。
UAU×SR:用戶和標(biāo)準(zhǔn)角色的分配關(guān)系,是多對多的關(guān)系[3]。
PAP×SR:權(quán)限和標(biāo)準(zhǔn)角色的分配關(guān)系,是多對多的關(guān)系[3]。
PRUA×P:用戶與標(biāo)準(zhǔn)角色分配關(guān)系UA和權(quán)限裁減對應(yīng)關(guān)系,是一對多的關(guān)系。
Constraints(約束):
互斥標(biāo)準(zhǔn)角色對集EA:EASR×SR,EA中包含的各標(biāo)準(zhǔn)角色對是互斥的,EA的約束表達為:(u∈U)(sri,srj∈SR)u∈rm(sri)∧u∈rm(srj)(sri, srj)EA。
在這里,函數(shù)rm:SR→2u,將一個標(biāo)準(zhǔn)角色映射到所有被分配該標(biāo)準(zhǔn)角色的用戶集。
互斥權(quán)限對集EPP×P,EP中包含的各權(quán)限對是互斥的,EP的約束表達為:(pi,pj)∈EP,(sri(namei, PERi), srj (namej, PERj)∈SR),pi∈PERi,pj∈PERi(sri, srj)∈EA。
2 設(shè)計與實現(xiàn)
2.1 數(shù)據(jù)模型
圖2為政府采購系統(tǒng)中的訪問控制子系統(tǒng)數(shù)據(jù)模型的ER圖[9]。
本文將政府采購訪問控制系統(tǒng)的數(shù)據(jù)表達為Userinfo,Standardrole,Permission 三個實體集以及Usersroles,Rolesper,Reducedper,EP,ER五個聯(lián)系集。
實體集Userinfo表示整個政府采購系統(tǒng)中所有用戶的基本信息。它有sn(數(shù)字證書序列號),Username(姓名),Works(工作單位),Phone(電話號碼),Identitycard(身份證號)等屬性。屬性sn能夠唯一地標(biāo)志系統(tǒng)中的某一個用戶,因此sn為Userinfo實體集的主碼。另外,屬性Phone為多值屬性,即一個用戶可能對應(yīng)一組電話號碼。
實體集Standardrole表示政府采購系統(tǒng)定義的所有標(biāo)準(zhǔn)角色。其中標(biāo)準(zhǔn)角色名稱Rolename為最重要的屬性,可唯一標(biāo)志系統(tǒng)設(shè)定的標(biāo)準(zhǔn)角色,為該實體集的主碼。
實體集Permission表示系統(tǒng)中的所有權(quán)限。它的屬性有Permissionid(權(quán)限號碼),Object(權(quán)限的操作對象),Ops(對操作對象擁有的權(quán)限)。其中Permissionid是系統(tǒng)定義的權(quán)限唯一標(biāo)志,為本實體集的主碼。
聯(lián)系集EP表示系統(tǒng)中的互斥標(biāo)準(zhǔn)權(quán)限對。它是{(Permission1i, permission2j) | Permission1i, Permission2j∈Permission }的一個子集,其中(Permission1i, Permission2j)是一個聯(lián)系。
聯(lián)系集ER表示系統(tǒng)中的互斥標(biāo)準(zhǔn)角色對。它是{(Standardrolei, Standardrolej)| Standardrolei, Standardrolej∈Standardrole}的一個子集,其中(Standardrole1i, Standardrole2j)是一個聯(lián)系。
聯(lián)系集Usersroles體現(xiàn)實體集Userinfo和Standardrole之間的聯(lián)系,即用戶和標(biāo)準(zhǔn)角色的分配關(guān)系。該聯(lián)系集是{(Userinfoi, Standardrolej)|Userinfoi∈Userinfo, Standardrolej∈Userinfo}的一個子集,其中(Userinfoi, Standardrolej)是一個聯(lián)系。實體集Userinfo與Standardrole的映射基數(shù)為多對多。也就是Userinfo中的一個用戶可以分配Standardrole中任意數(shù)目的標(biāo)準(zhǔn)角色。Standardrole中的一個標(biāo)準(zhǔn)角色也可以被分配給Userinfo中任意數(shù)目的用戶。因此{sn, Rolename}構(gòu)成了聯(lián)系集Usersroles的主碼。同時,我們設(shè)置了一個描述性屬性Reducedflag與Usersroles聯(lián)系,用來標(biāo)志該聯(lián)系集中的每個聯(lián)系是否參與了聯(lián)系集Rolesper。系統(tǒng)中,當(dāng)Reducedflag值為TRUE時,表示參與了Rolesper;當(dāng)Reducedflag值為FALSE時,表示沒有參與Rolesper。
聯(lián)系集Rolesper體現(xiàn)實體集Standardrole和Permission之間的聯(lián)系,即權(quán)限和標(biāo)準(zhǔn)角色的分配關(guān)系。該聯(lián)系集是{(Standardrolei, Permissonj) | Standardrolei∈Standardrole, Permissonj∈Permisson}的一個子集,其中(Standardrolei, Permissonj)是一個聯(lián)系。實體集Standardrole與實體集Permisson的映射基數(shù)同樣為多對多。也就是Standardrole中的一個標(biāo)準(zhǔn)角色可以分配Permisson中任意數(shù)目的權(quán)限。Permisson中的一個權(quán)限也可以被分配給Standardrole中任意數(shù)目的標(biāo)準(zhǔn)角色。同時,Standardrole中的所有標(biāo)準(zhǔn)角色必須全部參與Rolesper聯(lián)系集,即每個標(biāo)準(zhǔn)角色必須分配權(quán)限。因此,{Rolename,Permissonid}構(gòu)成了聯(lián)系集Rolesper的主碼。
聯(lián)系集Reducedper表示體現(xiàn)聯(lián)系集Usersroles與實體集Permisson之間的聯(lián)系,即用戶角色分配的權(quán)限裁減關(guān)系。該聯(lián)系集是{( Usersrolesi, Permissonj) | Usersrolesi∈Usersroles, Usersrolesi.Reducedflag=TRUE, Permissonj∈Permisson, (Usersrolesi.Rolename=Rolesperk.Rolename)Permissonj. Permissonid∈Rolesperk. permissonid}的一個子集,其中(Usersrolesi, Permissionk)是一個聯(lián)系。Usersroles與Permission的映射基數(shù)為多對多。因此{ sn, Rolename , Permissionid}構(gòu)成了聯(lián)系集Usersroles的主碼。
2.2 主要算法描述
2.2.1 角色—權(quán)限分配算法描述
begin
for each ((∏rolename(standardrole)∏rolename(rolesper))中的standardrole do
begin
rolename=standardrole.rolename;
if 要給standardrole分配權(quán)限
for each permission中權(quán)限permissioni do
begin
if 要將permissioni分配給standardrole
ep(permissioni.permissionid,rolename)==F) then
將(rolename,permissionid)添加進rolesper;
else
continue;
end
else
將(rolename,1)添加進rolesper;
end
end
其中函數(shù)ep的參數(shù)為permissionid和rolename,用來檢查分配給某標(biāo)準(zhǔn)角色的權(quán)限與該角色已分配的權(quán)限組成的權(quán)限對是否屬于聯(lián)系集EP。返回值T表示屬于,F(xiàn)表示不屬于。
2.2.2 用戶—角色分配算法描述
begin
for each ((∏sn(userinfo)∏sn(usersroles))中的sn do
begin
if 要給sn分配標(biāo)準(zhǔn)角色
then begin
for each standardrole中標(biāo)準(zhǔn)角色standardrolei do
begin
rolename=standardrolej.rolename;
if (要將standardrolei分配給sner(rolename,sn)==F)
then begin
if 要對此次分配裁減權(quán)限
then begin
將(sn,rolename,TRUE)添加進usersroles;
for each(∏permissionid(σrolename=\"rolename\"(rolesper)))
中的permissionidi do
if 裁減權(quán)限編號為permissionidi的權(quán)限
將(sn,rolename,permissionidi)添加進reducedper;
else
continue
end
else
將(sn,rolename,F(xiàn)ALSE)添加進userroles;
end
else
continue;
end
end
else
將(sn,1,F(xiàn)ALSE)添加進usesroles;
end
end
其中函數(shù)er的參數(shù)為rolename和sn,用來檢查分配給某用戶的標(biāo)準(zhǔn)權(quán)限與該用戶已分配的標(biāo)準(zhǔn)角色組成的角色對是否屬于聯(lián)系集ER。返回值T表示屬于,F(xiàn)表示不屬于。
2.2.3 用戶登錄控制算法描述
begin
獲得登錄用戶的證書序列號sn;
if σsn=\"sn\"(userinfo)!=Φ
then begin
R=∏rolename(σsn=\"sn\"(usersoles));
輸出:sn分配的標(biāo)準(zhǔn)角色列表R;
輸入:獲得用戶從R列表中選擇的標(biāo)準(zhǔn)角色名稱rolename;
if ∏reducedflag(σsn=\"sn\"∧rolename=\"rolename\"(usersroles))==TRUE;
then begin
Ps=∏permissionid(σrolename=\"rolename\"(rolesper));
Pc=∏permissionid(σsn=\"sn\"∧rolename=\"rolename\"(reducedper));
P=Ps-Pc;
end
else
P=∏permissionid(σrolename=\"rolename\"(rolesper));
根據(jù)用戶的權(quán)限列表P裝載功能菜單;
end
else
輸出:非法用戶;
end
3 結(jié)束語
在政府采購系統(tǒng)中設(shè)計并實現(xiàn)了基于角色的權(quán)限分配及訪問控制子系統(tǒng)。該系統(tǒng)在用戶角色分配的基礎(chǔ)上加入了權(quán)限裁減機制,讓訪問控制實現(xiàn)起來更加靈活,既體現(xiàn)了基于角色訪問控制的優(yōu)勢,又滿足了政府采購系統(tǒng)中錯綜復(fù)雜的訪問控制問題。同時,該系統(tǒng)可配置性強,升級和維護容易,使用簡單。該系統(tǒng)已投入使用。
參考文獻:
[1]Sandhu R, Coyne E,et al. Rolebased Access Control Models[J]. IEEE Computer, 1996,29(2): 38-47.
[2]Ravi Sandhu,Venkata Bhamidipati,Qamar Munawer. The ARBAC97 Model for Rolebased Administration of Roles[J].ACM Transactions on Information and System Security,1999,2(1):105135.
[3]Ferraiolo D F, Sandhu R, et al. Proposed NIST Standard for Rolebased Access Control[J]. ACM Transactions on Information and System Security, 2001,4(3):224-274.
[4]Barka E, Sandhu R. Framework for Rolebased Delegation Model[C].New Orleans, LA:Proceedings of the 16th Annual Computer Security Application Conference, 2000.168176.
[5]Gavrila S, Barkley J. Formal Specification for Rolebased Access Control User/Role and Role/Role Relationship Management[C]. Virginia:Proceeding of the 3rd ACM Workshop on Rolebased Access Control, 1998.81-90.
[6]Ferraiolo D, Barkley J. A Rolebased Access Control Model and Reference Implementation Within a Corporate Intranet[J].ACM Transactions onInformation and System Security, 1999,2(1):34-64.
[7]李濤.網(wǎng)絡(luò)安全概論[M].北京:電子工業(yè)出版社,2004.93-95.
[8]卿斯?jié)h,劉文清,劉海峰.操作系統(tǒng)安全導(dǎo)論[M].北京:北京科學(xué)出版社,2003.241-290.
[9]Abraham, Sillberschat,et al.Database System Concepts[M].北京:機械工業(yè)出版社, 2003.18-84.
作者簡介:
王姝妲(1981-),女,四川人,碩士,主要研究方向為網(wǎng)絡(luò)安全與人工智能;李濤(1965-),男,四川人,博導(dǎo),主要研究方向為網(wǎng)絡(luò)安全與人工智能;楊杰(1979-),男;胡曉勤(1977-),男,博士研究生;王丹丹(1980-),女;黃銳(1981-),男,碩士研究生。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文