访问控制模型

在项目中需要加入访问空值,于是对访问控制模型多了一些调研,介绍一些常见的访问控制模型.

访问控制模型三要素

  • 主体(Subject) 指主动对其它实体施加动作的实体
  • 客体 (Object) 是被动接受其他实体访问的实体
  • 控制策略 (Policy) 为主体对客体的操作行为和约束条件

自主访问控制模型(DAC)

概念

自主访问控制模型(DAC,Discretionary Access Control)是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。拥有客体权限的用户,可以将该客体的权限分配给其他用户。例如没有文件 File1 访问权限的用户可以从有访问权限的 B 用户那里得到访问权限。

DAC访问控制的实现

权限控制列表

访问控制列表 (ACL, Access Control List),每一个客体都配有一个列表,这个列表记录了主体对客体进行何种操作。当系统试图访问客体时,先检查这个列表中是否有关于当前用户的访问权限。ACL 是一种面向资源的访问控制模型,它的机制是围绕资源展开的。

对于一个文件对象的 ACL:

  • Alice: read,write
  • Bob: read

表示 Alice 可以对该文件进行读写操作,Bob 只能读取。

权限控制矩阵

访问控制矩阵 (ACM,Access Control Matrix) 是通过矩阵形式描述主体和客体之间的权限分配关系。每个主体而言,都拥有对哪些客体的哪些访问权限;而对客体而言,又有哪些主体对他可以实施访问;

应用场景

DAC 常见于文件系统,LINUX,UNIX、WindowsNT 版本的操作系统都提供 DAC 的支持。在实现上,先对用户鉴权,然后根据控制列表决定用户能否访问资源。用户控制权限的修改通常由特权用户或者管理员组实现。

特点和缺点

特点

​ 授权的实施主体(1、可以授权的主体;2、管理授权的客体;3、授权组)自主负责赋予和回收其他主体对客体资源的访问权限。DAC 模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。

缺点

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

强制访问控制 MAC

强制访问控制模型 (MAC, Mandatory Access Control), 是为了弥补 DAC 权限控制过于分散的问题而诞生的。在计算机安全领域指一种由操作系统约束的访问控制,目标是限制主体或发起者访问或对对象或目标执行某种操作的能力。任何主体对任何对象的任何操作都将根据一组授权规则(也称策略)进行测试,决定操作是否允许。

  • Subject 被赋予一定的安全级别
  • Object 被赋予一定的安全级别
  • Subject 能否访问 Object 由双方的关系安全级别决定,这个判断通常有系统硬性限制.

MAC 非常适合机密机构或者其他等级观念强烈的行业,过重强调保密性,管理不够灵活。在实现上,MAC 和 DAC 通常为每个用户赋予对客体的访问权限规则集,考虑到管理的方便,在这一过程中还经常将具有相同职能的用户聚为组,然后再为每个组分配许可权。

强制访问策略

强制访问控制系统根据主体和客体的敏感标记来决定访问模式,模式包括

  • 不上读(NRU),主体不可读安全级别高于他的数据;
  • 不下读(NRD),主体不可读安全级别低于他的数据
  • 不上写(NWU),主体不可写安全级别高于他的数据。
  • 不下写(NWD),主体不可写安全级别低于他的数据。

由于安全性,这种方式一直被军方所使用,下面讲述两种被广泛使用的强制访问控制安全模型

  • BLP 模型:在 BLP 模型中,不上读,不下写,也就是不允许低安全等级的用户读取高安全等级的信息,不允许高敏感度的信息写入低敏感度的区域,禁止信息从高级别流向低级别,强制访问控制通过这种梯度的安全标签实现信息的单向流通
  • Biba 模型:由于 BLP 模型存在不保护信息的完整性和可用性,不涉及访问控制等缺点,所以使用 Biba 模型作为一个补充,它针对的是信息的完整性保护,主要用于非军事领域,Biba 模型使用不下读,不上写的原则来保证数据的完整性,在实际的应用中主要是避免应用程序修改某些重要的系统程序或系统数据库,这样可以使资源的完整性得到保障。也就是写,只能读上级发给他的命令,不能读他的下级接收到什么命令

基于角色的访问控制(RBAC)

管理员定义一系列角色(roles)并把它们赋予主体。系统进程和普通用户可能有不同的角色。设置对象为某个类型,主体具有相应的角色就可以访问它。这样就把管理员从定义每个用户的许可权限的繁冗工作中解放出来。

基于角色的访问控制 (RBAC, Role Based Access Control) 在用户和权限之间引入了 “角色(Role)” 的概念,角色解耦了用户和权限之间的关系。

角色和组的主要区别

  • 组是用户的集合
  • 角色是权限的集合
  • 角色 / 权限之间的变化比组 / 用户关系之间的变化相对要慢得多,减小了授权管理的复杂性

基于角色的访问控制模型 RBAC,有时成为基于规则的基于角色的访问控制(Rule-Based Role-Based Access Control,RB-RBAC)。它包含了根据主体的属性和策略定义的规则动态地赋予主体角色的机制。例如,你是一个网络中的主体,你想访问另一个网络中的对象。这个网络在定义好了访问列表的路由器的另一端。路由器根据你的网络地址或协议,赋予你某个角色,这决定了你是否被授权访问。

发展历程

RBAC0

RBAC0 作为基础模型,只包含核心的三要素,用户,角色,权限。用户和角色可以是多对多的关系,权限和角色也是多对多的关系。

RBAC1

RBAC1 包括了 RBAC0 并且添加了角色继承。顾名思义,角色继承就是指角色可以继承于其他角色,在拥有其他角色权限的同时,自己还可以关联额外的权限。这种设计可以给角色分组和分层,一定程度简化了权限管理工作。也就是角色之间存在上下级的关系,对应到实体设计中也就是角色实体的自身关联。

RBAC2

RBAC2 也包括 RBAC0 并且添加了约束。RBAC1 和 RBAC2 相互独立.
RBAC2 的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。

互斥约束:包括互斥用户,互斥角色,互斥权限。同一个用户不能拥有相互排斥的角色,两个互斥角色不能分配一样的权限集,互斥的权限不能分配给同一个角色,在 session 中,同一个角色不能拥有互斥权限。

基数约束:一个角色被分配的用户数量受限,它指的是有多少用户能拥有这个角色。例如:一个角色专门为公司 CEO 创建的,那这个角色的数量是有限的。

先决条件角色:指要想获得较高的权限,要首先拥有低一级的权限。例如:先有副总经理权限,才能有总经理权限。

RBAC3

RBAC3 是一个全功能的 RBAC,RBAC3 合并了 RBAC0,RBAC1,RBAC2.

基于属性的访问控制 (ABAC)

基于属性的访问控制 (ABAC, Attribute Based Access Control) 通过动态计算一个或一组属性是否满足某种条件来进行授权判断。可以按需实现不同颗粒度的权限控制,但定义权限时不易看出用户和对象间的关系。如果规则复杂,容易给管理者带来维护和追查带来麻烦。

属性通常来说分为四类:

  • 用户属性(如用户年龄)
  • 环境属性(如当前时间)
  • 操作属性(如读取)
  • 对象属性(如一篇文章,又称资源属性)

指定基于属性的控制协议需要将主体,环境,客体的属性构建集合,通过关联控制策略形成响应结果.

跟 RBAC 相比,ABAC 对权限的控制粒度更细,如控制用户的访问速率。实际开发中可以结合 RBAC 角色管理的优点和 ABAC 的灵活性一起使用。

参考

[1] 权限系统_访问控制模型 访问控制模型(DAC,MAC,RBAC,ABAC)_fei33423的专栏-CSDN博客

[2] 访问控制模型(DAC,MAC,RBAC,ABAC)_John的博客-CSDN博客_自主访问控制模型

[3] http://www.easysb.cn/2019/12/538.html

访问控制模型总结(DAC MAC RBAC ABAC)相关推荐

  1. 访问控制模型(DAC,MAC,RBAC,ABAC)

    访问控制模型 项目中需要加入访问控制,对访问控制模型做了一些调研, 本文主要是介绍一些常用的访问控制模型. 基本要素 访问控制模型包括三个要素,即: 主体(Subject) 指主动对其它实体施加动作的 ...

  2. 权限设计,设计模型分析(DAC,MAC,RBAC,ABAC) 之 RBAC

    一.什么是RBAC模型 RBAC是Role-Based Access Control的缩写,意为:基于角色的权限控制.通过角色关联用户,角色关联权限的方式间接赋予用户权限. 如下图: 为什么不直接给用 ...

  3. 【设计权限系统】ACL, DAC, MAC, RBAC, ABAC模型的不同应用场景

    [权限系统设计]ACL, DAC, MAC, RBAC, ABAC模型的不同应用场景 ACL 访问控制列表 规定资源可以被哪些主体进行哪些操作 场景:部门隔离 适用资源:客户页面.人事页面 在ACL权 ...

  4. DAC MAC RBAC ABAC 权限系统的设计

    访问控制Access Control DAC (Discretionary Access Control) 自主访问控制,有权限的人可以给这个权限授权 MAC( Mandatory Access Co ...

  5. 权限模型 DAC ACL RBAC ABAC

    访问控制方式 访问控制 介绍 自主访问控制(DAC,Discretionary Access Control) 强制访问控制 (MAC,Mandatory Access Control) 访问控制列表 ...

  6. 访问控制的三种模型(DAC、MAC、RBAC)

    一.自主访问控制模型(DAC) 是资源的所有者,往往也是创建者,可以规定谁有权访问他们的资源. 安全性较低,不能抵御特洛伊木马的攻击. DAC可以用访问控制矩阵来表示. 访问控制列表ACL: 访问能力 ...

  7. 基于属性的访问控制模型ABAC

    针对传统访问控制模型难以解决的动态.细粒度访问控制问题,研究人员提出了基于属性的访问控制模型(attribute-based access control,简称ABAC).ABAC 模型基于实体属性而 ...

  8. 常见的权限访问控制模型

    权限访问控制即控制用户对资源或者服务的访问权限,目前流行的权限访问控制模型有以下几种. MAC(Mandatory Access Control) 起初由政府和军方设计并使用, 它有非常严格的访问控制 ...

  9. 访问控制模型详细介绍

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

最新文章

  1. android 展开式按钮,Android自定义View实现可展开、会呼吸的按钮
  2. LoadRunner12使用教程(三)——Action迭代
  3. 假设一个学校的计算机系新建,武汉大学计算机学院《计算机系统结构》08级A卷B卷及答案...
  4. JavaScript的标签
  5. oracle表是动态表怎么算排名,Oracle学习动态性能表
  6. curl 请求日志_kong api网关日志 将请求和响应数据附加到磁盘上的日志文件中
  7. 当你拼命挣死工资时,他们已抢占2018年最火爆高科技赚钱项目......
  8. 数学建模之图论——图与网络模型(二)(最小生成树问题、最大流问题)
  9. java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx
  10. Unity面试题精选(5)
  11. android 睡眠与唤醒I
  12. STP:生成树协议解决网络冗余问题
  13. CentOS的SSH,Putty配置说明
  14. PL/SQL跨库查询数据
  15. springboot配置错误页面
  16. mac虚拟机服务器设置u盘启动不了,mac虚拟机如何使用u盘启动盘
  17. 使用地图编辑器构建游戏场景
  18. 软考程序员常见问题答疑
  19. r7 6700g核显相当于什么显卡 锐龙r76700g性能怎么样
  20. oracle numa map size mismatch,Oracle启动时提示map size mismatch; abort

热门文章

  1. kali_上传_腾讯云_搭建kali
  2. 复杂网络——常见的论文下载和真实数据集下载网站
  3. SMTP、ESMTP、POP3常用命令备忘
  4. Mac触控板设置以及使用
  5. java压缩与解压缩(1)使用java.util.zip
  6. 每天一个开发小技巧~
  7. my name is van
  8. 太厉害了!java老版手机游戏下载
  9. UNIX常用命令(C站最全,一文通关)
  10. via导出书签html,书签助手,迈出换用 Via 浏览器的第一步 | App+1