权限系统设计一: DACMACRBACABAC模型
Posted 陪学产品Club
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限系统设计一: DACMACRBACABAC模型相关的知识,希望对你有一定的参考价值。
自主访问控制(DAC: Discretionary Access Control)
自主访问控制中,产品中的操作对象被设置了权限等级。
在用户登陆时,系统识别用户,根据被操作对象(Subject)的权限控制列表(ACL: Access Control List)或者权限控制矩阵(ACL: AccessControl Matrix)信息设置用户能对哪些操作对象进行何种操作,例读取操作或能够修改操作对象。
更具特点的是,拥有对象权限的用户,还可以将对象权限分配给其他用户,所以叫“自主(Discretionary)”控制。
Windows中的文档系统的权限设计就是“自主访问控制”模型的典型应用。

然而DAC最大缺陷是权限控制分散,不便于管理。例如在文档权限管理中,我们无法将一组文件设置成统一权限开放给指定的一群用户。
强制访问控制(MAC: Mandatory Access Control)
MAC设计中所有的访问控制策略都由系统管理员来制定,用户无法改变。每个对象都有权限标识,每个用户也会有权限标识,用户能否操作某个对象判断在于两个权限标识的关系,而关系判断通常由系统做硬性限制。
如:用户甲查看文档A,此时系统给出这样的提示“无法访问,需要一级许可”,这说明文档本身有“一级许可”的权限标识,而用户权限不具备。
由系统管理员会制定访问策略,比如高级用户可以访问所有类型的文件,中级用户可以访问保密级别以下的文件,而普通用户只能访问公开的文件。
一个持洛伊木马可以攻破任何形式的自主访问控制,由于自主控制方式允许用户程序来修改他拥有文件的存取控制表,因而为非法者带来可乘之机。
MAC不提供这一方便,在这类系统中,用户要修改存取控制表的唯一途径是请求一个特权系统调用。该调用的功能是依据用户终端输入的信息,而不是靠另一个程序提供的信息来修改存取控制信息。
在通常的计算机系统中,只要系统允许用户自己编程,就没办法杜绝木马。
但可以对其过程采取某些措施,这种方法称为过程控制。
例如,警告用户不要运行系统目录以外的任何程序。提醒用户注意,如果偶然调用一个其它目录的文件时,不要做任何动作,等等。需要说明的一点是,这些限制取决于用户本身执行与否。
比如,限制共享文件,但共享文件是计算机系统的优点,所以是不可能加以完全限制的。再者,就是限制用户编程。不过这种做法只适用于某些专用系统。在大型的,通用系统中,编程能力是不可能去除的。
MAC适用在对保密性要求比较高的系统中,比如军方机构。商业系统中使用MAC的有SE Linux和Trusted Solaris。而对于大部分的商业服务型系统来说,略显死死板不够灵活。
下次我们将继续讲解权限系统的设计细节,请持续关注哦~
以上是关于权限系统设计一: DACMACRBACABAC模型的主要内容,如果未能解决你的问题,请参考以下文章
ToB产品权限系统设计(一RBAC模型)
企业管理系统前后端分离架构设计 系列一 权限模型篇
基于RBAC权限控制模型的管理系统的设计与实现
基于RBAC权限控制模型的管理系统的设计与实现
用户管理系统 - 用户权限设计(RBAC模型)
企业管理系统前后端分离架构设计 系列一 权限模型篇