这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
什么是访问控制模型
访问控制模型,顾名思义,就是控制对计算机中的某个资源的访问。
访问控制模型包含三个要素:
- 主体:访问者
- 客体:访问目标
- 访问策略:主体对客体的操作行为和约束条件
访问控制模型的分类
常见的访问控制模型有:DAC、MAC、RBAC、ABAC等,下面我们一一介绍
自主访问控制模型(DAC)
自主访问控制模型(Discretionary Access Control),自主主要体现在拥有权限的主体可以把访问权限赋予其他主体。DAC通常假定所有客体都有所属的主体,并且主体能够修改下属客体的权限。
通常DAC通过访问控制列表ACL(Access Control List)或者ACM(Access Control Matrix)进行访问控制。其实它俩只是形式不同,所以这里我们只讨论ACL。
ACL是一张表,它对应一个访问客体,表里每一行的内容都是某个主体对该客体的访问权限。如文件A拥有一个表,表里第一行写着,用户admin,拥有对该文件的读、写权限。
缺点:
- 主体权限太大,容易泄露信息或被攻击
- 用户量多、数据量大的时候,ACL会变更很庞大
- 维护困难,权限控制分散,人员、策略发生变化,要改的数据很多
- 对分布式不友好,不利于实现统一的全局访问控制
强制访问控制模型(MAC)
强制访问控制模型(MAC, Mandatory Access Control)是为了解决DAC权限过于分散的问题诞生的。MAC是一种中心化的访问控制理念。
操作系统赋予访问主体与客体一定的安全属性,主体访问客体时,由操作系统根据安全策略决定该操作是否允许。并且用户无权对策略进行修改,安全策略由安全策略管理员集中控制。这使得安全策略得以“强制”实施。
显然MAC不够灵活且成本高,但是它具有很高的安全性,所以在安全性较高的系统中(如政府和军事系统)得到广泛应用。如我国的等保2.0规定,四级等保系统中,要求对所有的主体、客体采用强制访问控制机制。
DAC和MAC是经典的访问控制模型,但是离我们多少有点远。下一章,将会对目前主流的RBAC、ABAC等访问控制模型进行介绍,敬请期待!