陳 柯 李 鋼
(中國電子科技集團公司第28研究所 江蘇 210007)
大型組織(如跨國企業)的信息資源往往根據組織結構維護,其中存在大量同構的、擁有同類信息資源的單元。采用傳統的RABC對于單個獨立系統內用戶的以及權限的管理是相當有效的,但是傳統的RBAC模型在這種環境下需要為每個同構單元定義權限和角色。雖然可以利用RABC模型中的角色繼承概念,通過對于角色對于整個層次組織架構的模仿,構建層次,具有繼承結構的角色樹。但是由于角色繼承是一個偏序關系,是對組織機構層次中權限和責任的一種映射,實際的使用中違反了權限最小化原則。如一個企業有總經理、部門經理和材料員,而角色繼承表示總經理繼承部門經理的權限,部門經理繼承材料員的權限,也就是說總經理通過傳遞關系獲取了材料員的權限,而在實際的工作中,總經理是不具備材料員的管理權限。
在分層管理的大型分布式系統中使用基于角色的訪問控制往往會面臨角色、對象、權限過多的問題。如果在各個機構內部重復建立大量的角色、分配相似的權限,不但工作量大,而且容易出錯,而他們之間的區別僅僅在于所屬的分支機構不同。特別在同構單元數量很多時授權管理非常困難,尤其是在進行跨域授權時,涉及到互聯系統間角色、用戶、信息資源和它們之間的相互關系,為了保證訪問授權和管理簡化這兩個目標,這對于安全管理員來說是非常困難的。
按照大型跨國公司的組織架構,劃分為公司總部,區域管理中心,分區公司,營運團隊以及外部實體這幾個層次。大型組織內的信息單元是具有獨立性,同時在整個系統內具有大量功能,角色,用戶相似的特征。采用這項特質,按照其在組織架構內的特征,劃分為管理域(域層)。模型不再使用角色繼承來表示組織結構,而是將組織結構引入訪問控制模型,用它來組織客體、權限以及之間相互的關系。
基于角色訪問控制模型由Ferraio1o和 Kuhn在 1992年提出,這是當今使用最為廣泛的權限管理模型,這是一個復合的訪問控制策略,用戶并不直接獲取對于資源的權限,而是用戶通過擔任某些角色而獲取訪問權限,這能夠大大的簡化權限管理且易于理解和描述,其中關鍵的概念如下。
用戶(U):系統資源的使用者 U sers={U1,U2,..., Un}
角色(R):多個權限的集合 R oles={R1,R2... Rn}
許可(P):對系統資源的操作權限 P ermissions ={P1,P2...Pn}
用戶與角色以及角色與權限之間為多對多的關系
PA? P × R 表示從許可到角色的多對多的關系;
PA? P × R 表示從用戶到角色的多對多的關系。
在 RBAC0模型的基礎上引入了角色層次關系擴展為RBAC1模型。
PA? P × R 表示角色集 R 上的一個偏序,稱為角色繼承關系。
引入了了約束形成了RBAC2模型。將RBAC1與RBAC2特性結合形成RBAC3模型,具體的關系見圖1。
由于 RBAC將用戶從底層的訪問控制實現機制中脫離出來,同時可以靈活的表達組織中的各種安全角色,可以映射日常組織架構,在各個領域中均得到了廣泛的應用。實際上RBAC訪問控制模型應用中采用一級控制模型,即將訪問資源的權限授予角色,再將角色授予用戶。在傳統的獨立管理域環境下可以很好的解決權限管理的問題。這種方法在單元和客體較少的情況下還勉強可行,但是數目到了一定規模,模型的管理就非常困難了。現今分布式系統(多域)環境下,造成管理員額外的負擔。

圖1 RBAC訪問控制模型
將組織中的一個相對自治的機構劃分為域,以此為基礎,為解決大型組織中對于海量的用戶及對象的管理問題,將系統中的各個要素(U,P,R)劃分至不同的域。對應于組織中的相似結構的機構劃分為一個組,稱為域層。這就為我們簡化對于海量權限以及用戶的管理提供了前提基礎。同一個策略域中的分支機構具有相同的組織結構,在同一個域層次內實施統一的角色,用戶,對象組定義。在同一域層內實施統一的用戶、角色,當然也可以定義自己私有的特殊角色減少了系統中的角色和權限。將權限授予崗位而不是直接授予企業中的用戶,崗位與一組完成崗位任務的角色相對應。當組織內的人員發生流動,只需在權限模型中修改該用戶的崗位信息即可,無需針對該用戶重新進行權限授予。相比較傳統的訪問控制模型,可大大減輕管理員的工作負擔。
傳統的RBAC中權限定義為對客體的操作,其中的客體是獨立的對象,如針對某個資源如數據庫對象,文件對象等。針對大型的機構中的域,為了簡化對客體的定義,引入對象組概念。對象組定義為一組具有相同屬性對象的集合,同一個對象依據提取出的不同屬性可以被劃分到不同的對象組。原先操作定義為對象而現在該為對象組。
這些對象組按照域層管理的要求,對象組中對象允許的操作是一致的,對象必須屬于一個對象組且可以屬于多個對象組。對象組必須屬于一個域或是屬于一個域層,隸屬于域層的對象被域層內所有的域所擁有;而屬于域的對象只能被該域獨占。
分布式系統通常按組織機構層次、應用系統范圍、管理策略等原則進行安全域劃分。在大型企業中,采用按照組織結構的層次進行安全域的劃分特別適合這種具有強烈層次結構的組織。在分布式環境中,權限以及權限-角色分配都是本地自治,而不強調全局化。多域之間針對權限的管理較之傳統的單一信任域情況下主要體現在域之間的交叉授權問題,需要將域內訪問控制規則和域間訪問控制規則有機結合起來。核心問題在于計算系統的各種資源處于分級的多個管理域中,分別由相應的訪問控制規則進行控制。根據被訪問的資源所在管理域的不同,訪問控制規則可以分為域內訪問控制和域間訪問控制。在進行跨域訪問的使用場景下,可以根據安全域實際的劃分情況采用集中或者分層兩種權限管理策略。
在集中式驗證的策略下,通過中心安全認證服務器提供域之間的交叉驗證和授權,并提供單點登錄控制,避免域之間的多個授權交互。
在分布式驗證的策略下,為了保證信息交換的正確性,需要在每一個安全域上增加一些相應的路由信息,使各個安全域能夠訪問其上級和下級安全域,這些路由信息可以從組織架構的層次關系上獲取。
在網絡條件正常,系統服務運行正常的情況下,采用集中式安全策略訪問管理,所有的安全策略均由中心安全認證服務器提供。由于所有節點都必須和中心服務器通信,導致中心服務器負載過重,容易形成阻塞,影響效率;但該體系結構簡單,最大的缺點在于擴展性不強,不能滿足大規模復雜應用。
為了提高系統的可靠性,提供系統抗毀性,在分布式系統中,對任何一個安全域的用戶-角色分配操作,都把該分配信息推到層次結構中該安全域的上級安全域服務器,利用“推”結構和“拉”結構,高效地進行用戶-角色全局性管理。在最差的情況下,采用本節點自己提供的安全信息管理服務。在分布式系統中,對任何一個安全域的用戶-角色分配操作,都把該分配信息"推"到層次結構中該安全域的上級安全域服務器。在實施訪問控制時,若一個用戶在某個安全域沒有直接訪問某資源的權限,則沿路由信息回溯其上級安全域,“拉”回其需要的用戶-角色分配信息。
本文構建的模型,將組織結構劃分為域層,并將對象組的概念引入RBAC,減少了角色的重復定義,簡化了權限的分配,使 RBAC模型更適合在大型的、具有大量分支機構的系統中應用。在不同的實際使用場景中,依據當時的網絡環境采用不同的策略對用戶權限進行驗證及進行交叉授權。
[1]Sandhu R S.Coyne E J,Feinstein H L,et al.Role-based Access Control Models[J].IEEE Computer,1996.
[2]Ferraiolo D F,Barkley J F,Kuhn D R.A Role-based Access Control Model and Reference Implementation Within a Corporate Intranet[J].ACM Transaction of Information System Security.1999.
[3]Kumar A,Karnik N,Chafle G.Context Sensitivity in Role-based Access Control[J].ACM SIGOPS Operating Systems Review,2002.
[4]徐震,馮登國.一種使用組織結構的訪問控制方法.計算機工程.2006.
[5]孫艷俊.基于RBAC模型的應用訪問權限系統設計與實現現代電子工程.2013.
[6]余亮.基于CAS的單點登錄系統.現代電子工程.2012.