一 、背景
訪(fǎng)問(wèn)控制技術(shù)起源于70年代,當時(shí)是為了滿(mǎn)足管理大型主機系統上共享數據授權訪(fǎng)問(wèn)的需要但隨著(zhù)計算機技術(shù)和應用的發(fā)展,特別是網(wǎng)絡(luò )應用的發(fā)展,這一技術(shù)的思想和方法迅速應用于信息系統的各個(gè)領(lǐng)域在30年的發(fā)展過(guò)程中,先后出現了多種重要的訪(fǎng)問(wèn)控制技術(shù),它們的基本目標都是防止非法用戶(hù)進(jìn)入系和合法用戶(hù)對系統資源的非法使用為了達到這個(gè)目標,訪(fǎng)問(wèn)控制常以用戶(hù)身份認證為前提,在此基礎上實(shí)施各種訪(fǎng)問(wèn)策略來(lái)控制和規范合法用戶(hù)在系統中的行為。
二 、傳統訪(fǎng)問(wèn)控制技術(shù)
自主訪(fǎng)問(wèn)控制
自主訪(fǎng)問(wèn)控制隨分時(shí)系統的出現而產(chǎn)生,其基本思想是:系統中的主體可以自主的將其擁有的對客體的權限部分或者全部授予其它主體。其通常通過(guò)訪(fǎng)問(wèn)控制列表(ACL:AccessControlList)來(lái)實(shí)現,包括基于行(主體)的DAC和基于列(客體)的DAC?;谛械腄AC在每個(gè)主體上都附加一個(gè)該主體可訪(fǎng)問(wèn)的客體的明細表,而基于列的DAC則在每一個(gè)客體上都附加一個(gè)可以訪(fǎng)問(wèn)該客體的主體的明細表。其實(shí)現簡(jiǎn)單,在早期得到了廣泛的應用。但是由于其允許訪(fǎng)問(wèn)權的傳遞,使得傳遞出去的訪(fǎng)問(wèn)權難以管理。另外其無(wú)法保護受保護資源的副本。最后,其用于管理主客體數量巨大的系統將造成開(kāi)銷(xiāo)巨大,效率低下的問(wèn)題,難以滿(mǎn)足大型應用,特別是網(wǎng)絡(luò )應用的需要。
強制訪(fǎng)問(wèn)控制
其本質(zhì)是基于格的非循環(huán)單向信息流政策。其具有兩個(gè)關(guān)鍵規則:不向上讀,不向下寫(xiě),即信息只能由低安全級向高安全級流動(dòng),任何反向信息流動(dòng)都是被禁止的。
三 、新型訪(fǎng)問(wèn)控制技術(shù)
基于角色的訪(fǎng)問(wèn)控制
基于角色訪(fǎng)問(wèn)控制RBAC(Role Based AccessControl)的概念早在七十年代就已經(jīng)提出,但在相當長(cháng)的一段時(shí)間并沒(méi)有得到人們的關(guān)注。進(jìn)入九十年代,安全需求的發(fā)展使RBAC又引起了人們的極大關(guān)注。
目前以有多種模型,主要分為:
l 由Sandhu等人提出的RBAC96/ARBAC97/ARBAC02模型族
l 角色圖模型
l NIST(National Institute of Standard and Technology)模型
l OASIS(Open Architecture for Securely Interworking Service)模型
l SARBAC(Scope Administrative RBAC)模型
以下將就各模型分別介紹,并對比其優(yōu)缺點(diǎn)
1. RBAC96
其成員間關(guān)系如下圖所示:
1) 基本模型RBAC0(Core RBAC)
RBAC0由四個(gè)基本要素構成,即用戶(hù)(User)、角色(Role)、會(huì )話(huà)(Session)、授權(Permission)。在一個(gè)系統中,定義并存在著(zhù)多個(gè)用戶(hù)、角色,同時(shí)對每個(gè)角色設置多個(gè)授權關(guān)系,稱(chēng)之為訪(fǎng)問(wèn)許可權的授予(PermissionAssignment)。在RBAC中,用戶(hù)和角色,角色和權限的關(guān)系是多對多的關(guān)系。通過(guò)定義角色分離了用戶(hù)與權限之間的直接關(guān)聯(lián),方便管理員進(jìn)行人員管理和授權。授權機制可以視之為在系統內通過(guò)特定的操作(Action)將主體與客體聯(lián)系起來(lái),語(yǔ)義可以是允許讀、允許修改等。在一個(gè)系統中,根據系統的不同,客體的種類(lèi)也不同,如在操作系統中考慮的客體一般是文件、目錄、端口、設備等,操作則為讀取、寫(xiě)入、打開(kāi)、關(guān)閉和運行等。RBAC模型中授權就是將這些客體的訪(fǎng)問(wèn)權限在可靠的控制下連帶角色所需要的操作一起提供給那些角色所代表的用戶(hù)。通過(guò)授權的管理機制,可以給一個(gè)角色以多個(gè)訪(fǎng)問(wèn)許可權,而一個(gè)訪(fǎng)問(wèn)許可權也可以賦予多個(gè)角色,同時(shí)一個(gè)用戶(hù)可以扮演多個(gè)角色,一個(gè)角色也可以接納多個(gè)用戶(hù)。
在一個(gè)RBAC模型的系統中,每個(gè)用戶(hù)進(jìn)入系統得到自己的控制時(shí),就得到了一個(gè)會(huì )話(huà)。每個(gè)會(huì )話(huà)是動(dòng)態(tài)產(chǎn)生的,從屬于一個(gè)用戶(hù)。只要靜態(tài)定義過(guò)這些角色與該用戶(hù)的關(guān)系,會(huì )話(huà)根據用戶(hù)的要求負責將它所代表的用戶(hù)映射到多個(gè)角色中去。一個(gè)會(huì )話(huà)可能激活的角色是用戶(hù)的全部角色的一個(gè)子集,對于用戶(hù)而言,在一個(gè)會(huì )話(huà)內可獲得全部被激活的角色所代表的訪(fǎng)問(wèn)許可權。角色和會(huì )話(huà)的設置帶來(lái)的好處是容易實(shí)施最小特權原則(Least-PrivilegePrinciple)。所謂最小特權原則是將超級用戶(hù)的所有特權分解成一組細粒度的特權子集,定義成不同的“角色”,分別賦予不同的用戶(hù),每個(gè)用戶(hù)僅擁有完成其工作所必須的最小特權,避免了超級用戶(hù)的誤操作或其身份被假冒后而產(chǎn)生的安全隱患。
2) 角色的層次結構RBAC1(Hierarchal RBAC)
RBAC1的特征是為RBAC0上引入了角色層次的概念。在一般的單位或組織中,特權或職權通常是具有線(xiàn)性關(guān)系的,而角色層次RH(RoleHierarchy)可以反映這種權利責任關(guān)系,原則上RH體現了上級領(lǐng)導所得到的信息訪(fǎng)問(wèn)權限高于下級職員的權限。
3) 約束模型RBAC2(Constraint RBAC)
RBAC2除了繼承RBAC0的原有特征外,還引入了約束(Constraints)的概念。在絕大多數組織中,除了角色的層次關(guān)系外,經(jīng)常要考慮的問(wèn)題是類(lèi)似于下列情況:一個(gè)公司的采購員和出納員雖然都不算是高層次的角色,但是任何一個(gè)公司都絕不會(huì )允許同時(shí)分配給某個(gè)人員以這兩個(gè)角色。因為很顯然,這種工作安排必然導致欺詐行為的發(fā)生。因此有必要增加約束機制。
RBAC2定義了如下約束:
互斥角色(Mutually ExclusionRoles):同一用戶(hù)在兩個(gè)互斥的角色集合中只能分配給以其中一個(gè)集合中的角色,這樣支持了職責分離的原則:而訪(fǎng)問(wèn)許可權的分配也有約束限制,對訪(fǎng)問(wèn)許可權的約束可以防止系統內的重要的特權被失控地分散,從而保證強制控制的可靠實(shí)施。
基數約束(Cardinality Constraints):一個(gè)用戶(hù)可擁有的角色數目受限:同樣,一個(gè)角色對應的訪(fǎng)問(wèn)許可權數目但受約束。
先決條件角色(PreconditionRoles):用戶(hù)為獲得某些高等級角色必須首先擁有低等級角色,同理,某一角色必須具備了某些權限才能獲得更高的權限。如:總會(huì )計師必須首先是會(huì )計師,要寫(xiě)文件必須首先擁有讀文件的權限。
運行時(shí)約束(Run Constraints):允許一個(gè)用戶(hù)具有兩個(gè)角色,但在運行中不可同時(shí)激活這兩個(gè)角色。
4) RBAC3
RBAC3是RBAC1和RBAC2兩者的結合,其結構如下圖所示:
2. ARBAC97(Administrative RBAC97)
ARBAC97模型是由 Sandhu等人提出的一種 RBAC模型,在該模型中著(zhù)重強
調了用角色來(lái)管理角色的思想。圖3.1是ARBAC97模型
圖3.1 ARBAC97模型
ARBAC97模型中包含3個(gè)子模型:用戶(hù)一角色分配URA97模型,角色-權限分配PRA97模型,角色-角色分配RRA97模型。
l、 URA97模型
圖3.2中表示規則角色層次圖,圖3.3表示管理角色層次圖,管理角色層次圖中的管理角色被授權對規則角色層次圖中的規則角色進(jìn)行管理。
圖3.3管理角色層次圖
圖3.2規則角色層次圖
首先定義一個(gè)概念——先決條件。所謂先決條件是指一個(gè)前提角色和約束,或者是前提角色與約束中的任何一個(gè)布爾表達式。
URA97模型有兩個(gè)組件:一個(gè)用來(lái)處理用戶(hù)到角色的分配:另一個(gè)是用來(lái)處理用戶(hù)成員的撤消。在URA97模型中,用戶(hù)一角色分配是通過(guò)can—assign關(guān)系控制的,例如:
can-assign(x,y, z)//x:管理角色, y先訣條件,z:角色范圍。
舉個(gè)例子來(lái)說(shuō),can-assign(PSO1,ED,{E1})意味著(zhù)一個(gè)管理角色PSO1成員(或者是一個(gè)高于PSO1角色的角色成員)能夠分配一個(gè)用戶(hù)到角色E1中,該用戶(hù)要先滿(mǎn)足具有ED角色。先決條件是一個(gè)前提角色和(或)約束的布爾表達式。例如,在先決條件 ‘ E1∧¬QE1’,‘ E1’是一個(gè)前提角色,而‘¬QE1’是一個(gè)約束。先決條件‘ E1∧¬QE1’暗示著(zhù)屬于E1而不屬于 QE1的用戶(hù)。在 URA97模型中,用戶(hù)撤消是由 can一revoke關(guān)系控制著(zhù),例如:
can-revoke(x,z)//x:管理角色,z:角色范圍。
舉個(gè)例于來(lái)說(shuō),can—revoke(PSO,{PE1,QE1})意味著(zhù)管理角色PSO1成員(或者是一個(gè)高于 PSO1角色的角色成員)能夠從角色 PE1或QE1中撤消用戶(hù)。
該模塊具有多步分配缺點(diǎn)。比方:一個(gè)新雇傭的工程師“John”要分配‘QE1’角色給他,按照上面的定義,“John”必須是前提角色‘E1’的成員,在“John”成為‘E1’之前,他必須是前提角色‘ED’的成員,同樣的,在成為‘ED’成員之前,他必須是前提角色‘E’的成員,綜上,“John”的角色分配必須按照如下次序進(jìn)行:
分配“John”予‘E’角色→分配“John”予‘ED’角色→分配“John”予‘E1’角色→分配“John”予‘QE1’角色
該例子說(shuō)明URA97模型需要進(jìn)行多步用戶(hù)分配。
同時(shí)也存在冗余角色分配信息。假設“Tom”是‘QE1’角色的一個(gè)成員,因此他也是‘E’,‘ED’,‘E1’和‘QE1’的嚴格成員,存儲在URA中的相關(guān)信息如下圖所示:
元組1,3,5并沒(méi)有影響“Tom”的權限,因為‘QE1’繼承了‘E1’,‘ED’,‘E’的權限,按照“Tom”的訪(fǎng)問(wèn)權限的角度來(lái)看,這三個(gè)元組都是多余的。只是由于管理的角度來(lái)看,這些表項才有存在的價(jià)值。
最后該模型還具有對用戶(hù)池的組成限制。假設在這個(gè)例子中公司需要成立人事資源池H1,H2和H3,并假設新規則定義‘ProductionEngineer’必須從H1中挑選,‘QualityEngineer’必須從H2中挑選,如果不對角色層次進(jìn)行更改是無(wú)法實(shí)現新規則。在URA97模型中,用戶(hù)池是基于前提角色,而后者必須是角色層次的一部分。該例子說(shuō)明用戶(hù)池受限于角色層次?,F實(shí)中有時(shí)需要一種靈活的用戶(hù)池,這必將導致復雜的角色層次。
2、 PRA97模型
PRA97模型主要討論權限的分配與撤消。
PRA97模型與URA97模型有著(zhù)相似的特征。PRA97有兩個(gè)組件,一個(gè)用來(lái)處理權限到角色的分配,另一個(gè)是權限的撤消。這兩個(gè)組件通過(guò)can-assignp和can-revokep來(lái)控制,例如:
can-assignp(x, y, z)// x:管理角色,y:先決條件,z;角色范圍。
Can-revokep(x,z)// x:管理角色,z:角色范圍。
舉個(gè)例于來(lái)說(shuō), can-assignp(DSO,DIR,{PL1,PL1})意味著(zhù)一個(gè)管理角色DSO成員(或者是一個(gè)高于DSO角色的角色成員)能夠獲取分配給DIR角色的任何權限并把它分配給一個(gè)規則角色PL1。
PRA97中的撤消操作也是弱撤消。
正由于PRA97與URA97的相似性,同時(shí)也繼承了類(lèi)似與URA97的多步權限分配、冗余權限分配信息和對權限池組成限制的缺陷,同時(shí)還具有以下缺陷:
l 無(wú)法對權限池進(jìn)行限制
假設存在can-assignp(SO1,R2,[R1,R1]),那么SO1就能將R2的任何權限授予R1,而無(wú)法對其進(jìn)行限制。如何將R2中的一些特定權限授予R1?在PRA97中我們無(wú)法直接表達。通過(guò)“穩定成員資格(immobilemembership)”可以得到表述,但是該方法需要權限池的額外信息。
l 邊界效應
該缺點(diǎn)是上一個(gè)問(wèn)題的進(jìn)一步深化。角色層次和角色范圍如上圖所示,如果存在can-assignp(PSO1,PL1,[QE1,QE1]),那么‘PSO1’就能將‘PL1’的任何權限授予‘QE1’,因此‘QL’就將繼承‘QE1’的所有權限,因為‘QL1’是‘QE1’的一個(gè)雙親節點(diǎn)。這就是說(shuō)‘PSO1’就能通過(guò)刪除‘PL1’某些權限來(lái)刪除‘QL’對應的權限,但是由圖可見(jiàn),‘QL’在‘PSO1’的管理范圍之外,這必將導致權限的非法流向問(wèn)題。
聯(lián)系客服