访问控制模型详细介绍

1.访问控制模型

为用户对系统资源提供最大限度共享的基础上,对用户的访问权进行管理,防止对信息的非授权篡改和滥用。保证用户在系统安全策略下正常工作,拒绝非法用户的非授权访问请求,拒绝合法用户越权的服务请求

访问控制模型包括如下模型:
在这里插入图片描述

2.自主访问控制模型(DAC)

自主访问控制是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。

如:以 Linux 的文件权限为例,实现访问控制表/矩阵

用户目标x目标y目标z
rootr656
root777
admin766
命令作用
getfacl FileName#获取文件控制访问列表
setfacl -m u:USERNAME:7 FileName#设置用户在文件或目录控制访问列表
setfacl -m g:USERNAME:7 FileName#设置组在文件或目录控制访问列表
setfacl -x u:USERNAME FileName#删除某用户在某目录或文件上的访问列表
setfacl -x g:USERNAME FileName#删除某组在某目录或文件上的访问列表
setfacl -b FileName#取消对该文件上的所有 ACL 权限

特点:

  • 授权的实施主体自主负责赋予和回收其他主体对客源资源的访问权限。DAC 模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。
  • ACL(访问控制表)是 DAC 中常用的一种安全机制,系统安全管理员通过维护 ACL来控制用户访问有关数据。

缺点:

  • 主体的权限太大,无意间就可能泄露信息
  • 不能防备特洛伊木马的攻击访问控制表
  • 当用户数量多、管理数据量大时,ACL 就会很庞大。不易维护。

3.强制访问控制模型

主体和客体都有一个固定的安全属性,系统用该安全属性来决定一个主体是否可以访问某个客体。是一种强加给访问主体的规则

3.1 BLP 模式

BLP 模式是 Bell-Lapudula 的简称,是 D.Elliott Bell 和 Leonard J.LaPadula 于 1973 年提出的一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,该模型用于保证系统信息的机密性

BLP 模型的安全策略包括自主安全策略和强制安全策略两个部分:

  • 自主安全策略使用一个访问控制矩阵表示,矩阵中的元素表示主体对客体所有允许的访问模式,主体按照在访问矩阵中被授予的对客体的访问权限对客体进行相应的访问
  • 强制安全策略对每个主体和客体都定义了安全级,安全级由密级和范畴构成。安全级之间存在在支配关系(密级高于或等于、范畴包含)

BLP 安全特性:

低安全级不可以向高安全级读,高安全级可以向低安全级读

特性

低安全级可以向高安全级写,高安全级不可以向低安全级写

两种特性是同时存在

当访问者的安全级别高于被访问者时,访问者可以读取被访问者信息,当访问者不可以向被访问者写入信息
当访问者的安全级别低于被访问者时,访问者不可以读取被访问者信息,但访问者可以向被访问者写入信息

同范畴内,遵守如上规则,不同范畴不可以读和写
安全级

密级:绝密、机密、秘密、公开
范畴:军事、外交、商务…

3.2 Biba 模型

1977年,由 Biba 提出,多级访问控制模型,保护数据完整性。强制安全策略为每一个主体和客体都分配了完整级。根据完整级进行访问控制,当访问者安全级别高于被访问者时,访问者可以向被访问者写入信息,当访问者不可以读取被访问者信息;当访问者的安全级别低于被访问者时,访问者可以读取被访问者信息,但访问者不可以向被访问者写入信息

3.3 Clark-Wilson 模型概念

Clark-Wilson模型概念是由计算机科学家David D.Clark和会计师David R.Wilson发表于1978年,用于确保商业数据完整性的访问控制模型,侧重于满足商业应用的需求。每次操作前和操作后,数据都必须满足这个一致性条件。

3.4 Chinese Wall 模型

若干有竞争关系的数据集构成了利益冲突,例如:银行COI类、石油公司COI类。该模型常用于域—权限隔离。同一域内的不同角色,不能赋予相同的权限。

4.基于角色访问控制模型(RBAC)

系统内置多个角色,将权限与角色进行关联,用户必须成为某个角色才能获得权限。根据用户所担任的角色来决定用户在系统中的访问权限。

RBAC支持三个著名的安全原则:最小权力原则、责任分离原则和数据抽象原则。

5.基于属性的访问控制(ABAC)模型

传统的 RBAC 与 ACL 等访问控制机制中,可以认为是 ABAC 的子集,对于RBAC,我们的访问机制实现只是基于属性role而已, ACL 则是基于属性是 identity 的 AC。 ABAC 就以面向对象的思想来进行更精细的访问控制,匹配负责的业务场景,对权限有了更细的划分。


版权声明:本文为qiye622原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。