权限控制DAC,MAC,RBAC,ABAC

一:自主访问控制(DAC: Discretionary Access Control)
1、主体对它所属的对象和运行的程序拥有全部的控制权。
例如,Alice拥有一个叫mywork.doc的文件。她许可Bob和Sales group的成员来读这个文件,除此之外别的人都不可以。改进的DAC实现提供了一个基于“need-to-know”的访问授权的方法,默认拒绝任何人的访问。访问许可必须被显式地赋予访问者。
2、被某个用户执行的程序拥有与该用户相同的权限。
这意味着系统安全依靠运行的程序,因此,当一个程序中发生安全裂缝,会影响到该用户能访问的所有对象。这使得DAC在特洛伊木马前特别脆弱。例如,假设Alice对文件file1.doc拥有读写权限。Charlie,一个恶意攻击者,写了一个程序,这个程序在执行时生成文件file2.doc.这个程序授予Alice写权限和Charlike读权限。Charlie把这个程序伪装成合法的程序发给Alice。当Alice运行这个程序是,它就具有了和Alice相同的权限。它可以拷贝file1.doc到file2.doc,这样charlie就窃取了file1.doc的内容。如果一个管理员执行这个程序,攻击者会获取最大的特权,危害整个系统的安全。
3、拥有对象权限的用户,又可以将该对象的权限分配给其他用户,所以称之为“自主(Discretionary)”控制。

这种设计最常见的应用就是文件系统的权限设计,如微软的NTFS。

二:强制访问控制(MAC: Mandatory Access Control)
MAC是为了弥补DAC权限控制过于分散的问题而诞生的。
1、在MAC这种模型里,管理员管理访问控制。管理员制定策略,用户不能改变它。策略定义了哪个主体能访问哪个对象。
这种访问控制模型可以增加安全级别,因为它基于策略,任何没有被显式授权的操作都不能执行。MAC被开发和实现在最重视保密的系统中,如军事系统。主体获得清楚的标记,对象得到分类标记,或称安全级别。
2、工作机制是“need to know basis”,即最少的特权,用户只能访问他工作需要的对象。同时,主体不能向下写,即他们不能写或创建低于自己级别的标记的对象。
这防止了主体把秘密和低于它的级别的主体共享,从而保证信息保密。

三:基于角色的访问控制(RBAC: Role-Based Access Control)
因为DAC和MAC的诸多限制,于是诞生了RBAC,并且成为了迄今为止最为普及的权限设计模型。
用户-角色-权限

四:基于属性的权限验证(ABAC: Attribute-Based Access Control)
不同于常见的将用户通过某种方式关联到权限的方式,ABAC则是通过动态计算一个或一组属性来是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性(如一篇文章,又称资源属性),

发布了78 篇原创文章 · 获赞 11 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览