? ? ? ?訪問控制的核心是授權(quán)策略。以授權(quán)策略來劃分, 訪問控制模型可分為:傳統(tǒng)的訪問控制模型(DAC\MAC\ACL)、基于角色的訪問控制(RBAC) 模型、基于任務(wù)和工作流的訪問控制(TBAC) 模型、基于任務(wù)和角色的訪問控制(T-RBAC) 模型等。
? ? ? ?訪問控制的核心是授權(quán)策略。以授權(quán)策略來劃分, 訪問控制模型可分為:傳統(tǒng)的訪問控制模型(DAC\MAC\ACL)、基于角色的訪問控制(RBAC) 模型、基于任務(wù)和工作流的訪問控制(TBAC) 模型、基于任務(wù)和角色的訪問控制(T-RBAC) 模型等。
1.傳統(tǒng)的訪問控制模型
自主訪問控制DAC
自主訪問控制是指由用戶有權(quán)對自身所創(chuàng)建的訪問對象(文件、數(shù)據(jù)表等)進(jìn)行訪問,并可將對這些對象的訪問權(quán)授予其他用戶和從授予權(quán)限的用戶收回其訪問權(quán)限。
特點
授權(quán)的實施主體(1、可以授權(quán)的主體;2、管理授權(quán)的客體;3、授權(quán)組)自主負(fù)責(zé)賦予和回收其他主體對客體資源的訪問權(quán)限。DAC模型一般采用訪問控制矩陣和訪問控制列表來存放不同主體的訪問控制信息,從而達(dá)到對主體訪問權(quán)限的限制目的。
( ACL)是DAC 中常用的一種安全機制,系統(tǒng)安全管理員通過維護(hù)ACL(訪問控制表)來控制用戶訪問有關(guān)數(shù)據(jù)。
缺點
主體的權(quán)限太大,無意間就可能泄露信息
不能防備特洛伊木馬的攻擊訪問控制表
當(dāng)用戶數(shù)量多、管理數(shù)據(jù)量大時,ACL 就會很龐大。不易維護(hù)。
強制訪問控制MAC
是一種強加給訪問主體(即系統(tǒng)強制主體服從訪問控制策略)的一種訪問方式,它利用上讀/下寫來保證數(shù)據(jù)的完整性,利用下讀/上寫來保證數(shù)據(jù)的保密性。
特點
通過梯度安全標(biāo)簽實現(xiàn)信息的單向流通
可以有效地阻止特洛伊木馬的泄露
缺陷
主要在于實現(xiàn)工作量較大,管理不便,不夠靈活,而且它過重強調(diào)保密性,對系統(tǒng)連續(xù)工作能力、授權(quán)的可管理性方面考慮不足。
上讀/下寫下讀/上寫
(1)向下讀(rd,read down):主體安全級別高于客體信息資源的安全級別時允許查閱的讀操作;
(2)向上讀(ru,read up):主體安全級別低于客體信息資源的安全級別時允許的讀操作;
(3)向下寫(wd,write down):主體安全級別高于客體信息資源的安全級別時允許執(zhí)行的動作或是寫操作;
(4)向上寫(wu,write up):主體安全級別低于客體信息資源的安全級別時允許執(zhí)行的動作或是寫操作。
訪問控制列表ACL
ACL是最早也是最基本的一種訪問控制機制,它的原理非常簡單:每一項資源,都配有一個列表,這個列表記錄的就是哪些用戶可以對這項資源執(zhí)行CRUD中的那些操作。
當(dāng)系統(tǒng)試圖訪問這項資源時,會首先檢查這個列表中是否有關(guān)于當(dāng)前用戶的訪問權(quán)限,從而確定當(dāng)前用戶可否執(zhí)行相應(yīng)的操作??偟脕碚f,ACL是一種面向資源的訪問控制模型,它的機制是圍繞“資源”展開的。
由于ACL的簡單性,使得它幾乎不需要任何基礎(chǔ)設(shè)施就可以完成訪問控制。但同時它的缺點也是很明顯的,由于需要維護(hù)大量的訪問權(quán)限列表,ACL在性能上有明顯的缺陷。另外,對于擁有大量用戶與眾多資源的應(yīng)用,管理訪問控制列表本身就變成非常繁重的工作。
基于角色的訪問控制RBAC
RBAC是把用戶按角色進(jìn)行歸類,通過用戶的角色來確定用戶能否針對某項資源進(jìn)行某項操作。RBAC相對于ACL最大的優(yōu)勢就是它簡化了用戶與權(quán)限的管理,通過對用戶進(jìn)行分類,使得角色與權(quán)限關(guān)聯(lián)起來,而用戶與權(quán)限變成了間接關(guān)聯(lián)。RBAC模型使得訪問控制,特別是對用戶的授權(quán)管理變得非常簡單和易于維護(hù),因此有廣泛的應(yīng)用。
RBAC? 認(rèn)為授權(quán)實際上是Who 、What 、How 三元組之間的關(guān)系,也就是Who 對What 進(jìn)行How 的操作,也就是“主體”對“客體”的操作。
Who:權(quán)限的擁用者或主體(如Principal、User、Group、Role、Actor等等)
What:是操作或?qū)ο螅╫peration,object)。
How:具體的權(quán)限(Privilege,正向授權(quán)與負(fù)向授權(quán))。
Operator:操作。表明對What的How操作。也就是Privilege+Resource
Role:角色,一定數(shù)量的權(quán)限的集合。權(quán)限分配的單位與載體,目的是隔離User與Privilege的邏輯關(guān)系.
Group:用戶組,權(quán)限分配的單位與載體。權(quán)限不考慮分配給特定的用戶而給組。組可以包括組(以實現(xiàn)權(quán)限的繼承),也可以包含用戶,組內(nèi)用戶繼承組的權(quán)限。User與Group是多對多的關(guān)系。Group可以層次化,以滿足不同層級權(quán)限控制的要求。
RBAC的關(guān)注點在于Role和User, Permission的關(guān)系。稱為User assignment(UA)和Permission assignment(PA).關(guān)系的左右兩邊都是Many-to-Many關(guān)系。就是user可以有多個role,role可以包括多個user。
RBAC96是一個模型族,其中包括RBAC0~RBAC3四個概念性模型。
1、基本模型RBAC0定義了完全支持RBAC概念的任何系統(tǒng)的最低需求。
2、RBAC1和RBAC2兩者都包含RBAC0,但各自都增加了獨立的特點,它們被稱為高級模型。
RBAC1中增加了角色分級的概念,一個角色可以從另一個角色繼承許可權(quán)。
RBAC2中增加了一些限制,強調(diào)在RBAC的不同組件中在配置方面的一些限制。
3、RBAC3稱為統(tǒng)一模型,它包含了RBAC1和RBAC2,利用傳遞性,也把RBAC0包括在內(nèi)。這些模型構(gòu)成了RBAC96模型族。




