(1.中南大學 測繪與國土信息工程系, 長沙 410083; 2.國家基礎地理信息中心, 北京 100044)
摘 要:針對傳統的RBAC模型所存在的問題,引入用戶組進行了改進:除了RBAC模型的角色授權外,增加了用戶組對數據資源進行授權,使用戶所擁有的權限變成用戶所屬角色的功能權限和用戶所屬部門的資源權限之和。改進后的混合授權的擴展模型(ERBAC)不僅有效解決了角色定義、用戶職責、功能和資源等動態變化對系統所帶來的問題,更增強了對用戶授權的靈活性和可維護性,并且在實際項目中得到了應用。
關鍵詞:訪問控制模型; 角色; 用戶組
中圖分類號:TP393.08 文獻標志碼:A
文章編號:10013695(2009)03109803
Extended access control approach based on role and group
XING Hanfa1,2, XU Lilin2, LEI Ying2
(1.Dept. of Geomatics, Central South University, Changsha 410083, China; 2. National Geomatics Center of China, Beijing 100044, China)
Abstract: During further anglicizing RBAC, this paper pointed out its shortcoming. This paper proposed an improved model named ERBAC. One way to grant user privilege was using role based on RBAC, another way was using user group that introduced above. The improved mix granting method solved the mentioned problem and was very convenient, as well as made the system’s authority limitation management easier. Meanwhile, it improved the safety of system. It had been used in some projects successfully.
Key words:access control model; role; user group
在信息系統安全機制中,訪問控制是一項重要機制,有著許多重要應用。訪問控制或權限管理系統是當前計算機應用系統重復開發率最高的模塊之一。在企業中,不同的應用系統幾乎都擁有一套獨立的權限管理系統,不同的權限管理系統在數據存儲、權限訪問和訪問控制機制等方面都可能不一樣。近年來,訪問控制的研究發展很快,有許多訪問控制模型被提出[1~3]。建立規范的訪問控制模型是實現嚴格訪問控制策略所必需的,因此,訪問控制模型的研究具有十分重要的現實意義。
目前, 基于角色訪問控制模型(rolebased access control,RBAC)一直是系統安全管理的研究熱點,在應用系統中也得到了很好的應用[4~6]。但是,筆者發現在目前大多數RBAC的實際應用中,屬于相同角色的用戶對功能對象都具有相同的訪問權限,而屬于同一角色的不同用戶對數據或資源對象的訪問權限卻是不同的。其對資源的權限控制往往是根據實際訪問控制要求,直接以用戶為對象授予權限,將用戶對數據或資源部分的訪問權限用數據庫中的某些業務數據來表示。在授權時預先將這些數據手工從相關業務表中抽取出來,以靜態形式存儲于資源權限表中,查權時再通過查表方法來確定用戶所擁有的資源權限。但是,由于這些權限數據中包含了大量的業務數據,隨著用戶角色或職能的變動,系統管理員必須手工更新大量對應的權限數據,這樣不但增加了他們的工作負擔而且極易造成數據的不一致。針對以上問題,本文在RBAC基礎上加入用戶組,使用戶的功能和資源權限由角色和用戶組共同來確定。
1 基于角色的訪問控制模型
傳統的訪問控制,如自主訪問控制(discretionary access control)和強制訪問控制(mandatory access control)是以用戶為基本對象授予權限,這使得大型復雜系統的授權管理繁雜,且容易出錯。隨著對多用戶、多系統的研究不斷深入,角色的概念逐漸形成,并逐步產生了以角色為中心的訪問控制模型,即RBAC。RBAC 包含三個實體,即用戶(user)、角色(role)和權限(privilege)。用戶是對數據對象進行操作的主體,可以是人、機器人和計算機等;權限是對某一數據對象可操作的權利。角色的概念源于實際工作中的職務;一個具體職務代表了在工作中處理某些事務的權利。角色管理是大型數據庫管理用戶的一種思想,將這個概念引入到授權管理中,則角色作為中間橋梁將用戶與權限聯系起來。一個角色與權限管理可以看做是該角色擁有的一組權限集合,與用戶關聯又可以看做是若干具有系統身份的用戶集合。基于角色的訪問控制技術的核心思想是將訪問權限轉換成角色的權限,通過給用戶分配不同的角色,達到賦予用戶不同權限的目的。它需要管理員根據情況創建角色,然后將有關權限賦予給此角色,最后將該角色授予合適的用戶,這樣用戶就可以獲得該用戶所擁有的權限。
RBAC模型如圖1所示。用戶和角色的關聯表示若干具有相同身份的用戶擁有的許可集,一個用戶可被賦予若干角色,一個角色也可以被賦予給若干個具體用戶,兩者之間是多對多的關系。角色和權限的關聯表示角色擁有的一組權限的集合,一個角色可以具有多項權限,一項權限也可以被賦予給多個不同的角色,它們之間也是多對多的關系。RBAC使訪問控制適應性更強。管理者可以通過調節用戶所屬的角色、角色相關的操作與角色之間的層次關系,靈活地控制用戶訪問資源的方式。而且,很容易將角色結構與部門內部用戶結構結合起來,達到簡化管理、明確責任的目的。從這些特點可以看出,引入角色概念實現了用戶與權限的邏輯分離,極大地方便了權限的管理,這也是本文選擇基于RBAC發展訪問控制擴展模型的原因。
2 引入用戶組后的擴展型訪問控制模型(ERBAC)
2.1 用戶組定義
在RBAC的規范中沒有提到關于用戶是如何組織的,為了使系統適合于分散式權限管理,加入了用戶組這一概念,它是指一群用戶的集合。很多系統在行業實際應用中,由于行業部門機構龐大,假如系統不引入用戶組,當為部門內部用戶授權時就顯得比較混亂,授權也顯得非常繁瑣。當按樹型結構方式將行業內所涉及的部門按行政或其他隸屬關系進行組織,授權就會清晰得多。而且當某個組的所有用戶職能相同時,可以創建一個組角色,然后將這個角色授予整個組,則整個組的人員均獲得了權限;當改變該組角色的權限時,整個組的權限也相應地改變了,從而大大簡化了授權管理。用戶是系統中權限控制的訪問主體,引入用戶組是非常有必要的。
2.2 用戶組與角色關系
既然可以直接對用戶組授權,那么是否用戶組就可以代替角色呢?從上面的分析可知,當用戶組內人員職能相同的情況下,用戶組能夠代替角色,這也是人們常把基于用戶組的訪問控制模式看成基于角色的訪問控制模式的原因。但是,同一用戶組內的用戶有的職能不同,假如以組的授權模式授權,則組內職能不同的用戶就會越權,整個系統顯然是不安全的。再對RBAC中的角色分析得知,角色和用戶組雖有相似之處,卻有著根本區別:組是用戶的集合, 而不是權限的集合;角色作為中介,既是用戶又是權限的集合體。因此,用戶組是不能代替角色的。
2.3 ERBAC模型
在大型企業系統中,由于用戶眾多、業務對象龐雜,使得角色的定義在權限管理中比較復雜。用戶的業務需求靈活多變,系統的功能和數據資源可能不斷增加或更新,權限也在隨之變化;同時,系統用戶由于工作職責的需要,各自的權限也可能相應變化。因此,角色的定義通常隨時間和部門的調整發生變化;同時,多個角色的權限往往相互重疊,無法區別對數據資源的訪問權限。如果僅僅采用通過調整角色的定義來改變授權,則難以滿足復雜情況變化的需要。在目前大多數RBAC的實際應用中,屬于相同角色的用戶對功能對象都具有相同的訪問權限,而屬于同一角色的不同用戶對數據或資源對象的訪問權限卻是不同的。例如在某管理信息系統中,屬于相同角色但部門不同的用戶對每個功能模塊的菜單、窗口和按鈕等功能對象的訪問操作都是相同的,但其在相同的功能操作界面中只能訪問屬于自己部門的數據。用戶對功能對象的訪問權限完全可以按照RBAC的方法來管理,即管理員根據情況創建角色,然后將有關功能權限賦予此角色,最后將該角色授予合適用戶,這樣用戶就可以獲得該用戶所擁有的功能權限。現在的關鍵是如何靈活地解決用戶對數據資源對象的個性化訪問要求呢?經過觀察筆者發現,系統的數據是按部門或用戶組來組織的,因此可以以用戶組為單位來分配數據資源權限。本文基于這種思想,在RBAC基礎上增加用戶組資源權限賦予,采用對角色和用戶組混合授權的方法,使得權限控制更加靈活和安全。圖2是采用對用戶組和角色混合授權的擴展型基于角色的權限控制模型(extended rolebased access control,ERBAC)。
ERBAC模型的描述如下:如果某個用戶U對某個對象O具有的權限記為P(U,O),則有如下關系:
P(U,O)=Pr(R(u),OF)∪Pg(G(u),OR)。其中,Pr(R(u),OF)是通過用戶U所屬的角色R對功能對象OF的權限;Pg(G(u),OR)是通過用戶所在部門授權所確定的對資源對象OR的權限;P(U,O)是Pr和Pg兩者的并集,即用戶所屬角色對功能對象的權限與用戶所在部門對資源對象的權限之和。
ERBAC模型除了RBAC模型的角色授權外,增加了用戶組對數據資源進行授權。其中,用戶與角色、角色與功能權限以及用戶組與資源權限之間都是多對多的關系。授權分為功能授權和資源授權兩步,用戶所擁有的權限為用戶所屬角色的功能權限和用戶所屬部門的資源權限之和。這種采用混合授權的方法不僅有效解決了角色定義、用戶職責、功能和資源等動態變化對系統所帶來的問題,更增強了對用戶授權的靈活性和可維護性。當權限授權后, 一個具體的用戶要求訪問系統某模塊的功能時,系統同時判斷該用戶所屬角色和用戶所在用戶組,同時判斷角色所擁有的功能權限和用戶組擁有的資源權限,這樣用戶就可得到自身全部擁有的功能和資源權限。根據上述授權方法和權限訪問控制,ERBAC模型在企業應用中占有很大優勢:
a)用戶、用戶組、角色以及權限的設置將企業結構和崗位人員職責簡單地映射到企業應用系統中,使得對系統權限部分的設計和應用更加直觀、靈活,易于管理和維護;
b)如果企業需求中某工作崗位職責變更,無須逐一更改處于該崗位的所有工作人員的權限,而只需更改執行該崗位職責的角色權限;
c)若企業某些用戶的職責發生變動,所在用戶組或部門無變動時,只需簡單地修改用戶角色即可;
d)當企業某些用戶進行了部門調遣,而用戶的職責沒發生變動,只需更改用戶的所屬用戶組,這樣用戶對資源的權限相應地發生了改變,而無須對用戶進行資源的一一授權;
e)如果企業某些用戶的職責與所屬部門同時發生變動,需要同時修改用戶角色和用戶的所屬用戶組,這樣用戶的功能和資源權限得到了相應的修改。
ERBAC 模型的這些特點使得系統權限維護相當簡單快捷、安全有效,非常適合于大型企業組織的系統開發。
3 ERBAC的設計與實現
3.1 ERBAC基本設計
ERBAC的基本思想是:用戶與功能、用戶與資源不直接發生關系,而是分別增加角色和用戶組,繼而增加用戶—角色關系表和用戶組—用戶關系表,使用戶與功能、用戶與資源發生關系,如圖3所示。其中,用戶組通過用戶組—資源關系表為用戶組分配資源,用戶組通過用戶組—用戶關系表為用戶組添加用戶,用戶通過用戶—角色關系表為用戶授予角色,角色通過角色—功能關系表為角色分配功能,這樣用戶與功能、用戶與資源就產生了相應的關系。
3.2 數據庫設計
根據整個流程可將ERBAC系統分為不同的功能模塊,并可將用戶按部門分為不同權限的訪問用戶。根據上述設計思路,用戶及權限信息均被保存在系統的數據庫九張表中,即用戶表、用戶組表、角色表、功能權限表、資源權限表、用戶組與資源關系表、用戶組與用戶關系表、用戶與角色關系表、角色與功能關系表。各表詳細設計及其關系如圖4所示。
ERBAC的目的是建立用戶與功能和資源之間的對應關系。由圖4可知,用戶與功能、用戶與資源不直接發生關系,而是分別增加角色和用戶組,繼而增加用戶—角色關系表和用戶組—用戶關系表,使用戶與功能、用戶與資源發生關系。這樣處理的好處在于使得用戶和角色的增加和維護相對獨立,不發生相互干擾,使得數據庫的設計變得更加靈活,用戶和角色之間也可以建立動態的對應關系。角色與功能之間也不直接相關,而是通過角色—功能表發生關系,從而避免了角色和功能之間的相互影響,使得角色與功能之間也形成了動態的對應關系。而用戶—用戶組—資源之間的設計也是如此,這樣更易于數據庫的維護。
4.3 ERBAC的實現
筆者以Visual C# 2005為開發工具,數據庫為Oracle 10g,設計實現了某信息管理系統中的訪問控制模塊,并使用模擬數據對本文的模型進行了實驗驗證。與一般的信息管理系統相比,該系統具有組織機構龐大、內部人員行政隸屬等關系復雜、用戶職責變化頻繁、用戶數量多等特點。本文設計的ERBAC模型很好地適應了該信息管理系統的特點,有效解決了角色定義、用戶職責、功能和資源等動態變化對系統所帶來的問題,增強了對用戶授權的靈活性和可維護性。訪問控制系統在一定程度上獨立于整個信息管理系統,具有很好的可重用性。
在訪問控制系統中,由系統管理員動態地對各個用戶組的用戶設置不同的訪問權限。在打開系統時,首先啟動用戶登錄界面,當輸入用戶名和密碼后,系統根據存儲在數據庫中用戶與角色關系表、角色與功能關系表確定哪些頁面或窗體能夠使用,對于每一窗體的每一個按鈕,根據用戶的角色判斷按鈕是否可用,無效的設置為灰色;同時根據存儲在數據庫中用戶與用戶組關系表、用戶組與資源關系表確定哪些資源或數據可以使用。其基本流程如圖5所示。
4 結束語
ERBAC模型通過對用戶和角色混合授權,有效地彌補了RBAC角色授權機制的缺陷,符合現代企業組織結構的管理特點,使得整個系統權限管理方便靈活、安全有效,在實際應用系統的用戶權限管理中取得了良好的效果。同時,該模型具有很強的通用性,可廣泛應用于其他系統權限管理。
參考文獻:
[1]RAVI S, EDWARD J, COYNE K, et al. Rolebased access control models[J].IEEE Computer,1996, 29(2):3847.
[2] LIN A, BROWN R. The application of Security policy to rosebased access control and the common data security architecture [J].Computer Communications, 2000, 23(17):15841593.
[3] 馮德民,王小明,趙宗濤.一種擴展角色存取控制模型[J].計算機工程與應用,2003, 39(3):8789.
[4]歐陽星明,張華哲.大型網絡MIS系統中基于角色的權限管理[J].計算機工程與應用,2003, 39(4):142144.
[5]曾雋芳,溫大勇,楊一平.電子政務系統基于角色的權限管理研究[J].計算機工程與應用,2004, 40(22):156160.
[6]龍勤,劉鵬,潘愛民.基于角色的擴展可管理訪問控制模型研究與實現[J].計算機研究與發展,2005, 42(5):868876.
[7]楊柳,危韌勇,陳傳波. 一種擴展型基于角色權限管理模型(ERBAC)的研究[J].計算機工程與科學,2006, 28(9):126128.
[8]覃章榮,王強,歐鑌進,等.基于角色的權限管理方法的改進與應用[J].計算機工程與設計,2007, 28(3):12821284.
[9]劉益和,沈昌祥.基于角色管理的安全模型[J].計算機應用研究,2007, 24(5):119121.
(上接第1097頁)
[4]隋愛芬, 楊義先, 鈕心忻, 等.基于橢圓曲線密碼的可認證密鑰協商協議的研究[J].北京郵電大學學報,2004, 27(3):2832.
[5]張煥國, 劉玉珍. 密碼學引論[M]. 武漢: 武漢大學出版社, 2003.
[6]HANKERSON D, MENEZES A,VANSTONES. Guide to elliptic curve cryptography [M]. New York: SpringerVerlag, 2004.
[7]STALLINGS W. Cryptography and network security principles and practices[M].4th ed. Beijing: Publishing House of Electronics Industry, 2006.
[8]ARAKI K,MIURA S,SATOH T. Overview of elliptic curve cryptography[C]//Proc of International Workshop on Practice and Theory in Public Key Cryptography.1998:114.
[9]BLAKE I, SEROUSSI G, SMART N. Elliptic curves in cryptography[M].Cambridge: Cambridge University Press, 2002.