Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【安全知识】访问控制模型DAC、MAC、RBAC、ABAC有什么区别?

【安全知识】访问控制模型DAC、MAC、RBAC、ABAC有什么区别?

原创
作者头像
星尘安全
发布于 2024-09-16 02:56:16
发布于 2024-09-16 02:56:16
1.1K0
举报
文章被收录于专栏:网络安全网络安全

不同的公司或软件提供商,设计了无数种控制用户访问功能或资源的方法。但无论哪种设计,都可归到四种经典权限模型里——自主访问控制(DAC, Discretionary Access Control)、强制访问控制(MAC, Mandatory Access Control)、基于角色访问控制(RBAC, Role-based Access Control)和基于属性访问控制(ABAC, Attribute-based Access Control)。

从本质来说,无论何种类型的权限管理模型都可以抽象出三个基本的要素——即:用户(user)、系统/应用(system/application)、策略(policy)。

访问控制模型三要素

  • 主体(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 的灵活性一起使用。

文章来源:博客园

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
四大访问控制模型:OBAC、RBAC、TBAC与ABAC的对比与应用
在信息安全领域,访问控制是确保数据和资源安全的关键技术。随着信息系统复杂度的提高,访问控制技术也在不断演进,从早期简单的访问控制列表(ACL)发展到如今多种精细化的控制模型。本文将深入剖析四种主流的访问控制模型:基于对象的访问控制(OBAC)、基于角色的访问控制(RBAC)、基于任务的访问控制(TBAC)和基于属性的访问控制(ABAC),通过比较它们的原理、特点、应用场景及优缺点,帮助读者更好地理解各种访问控制技术。
CoderJia
2025/04/22
8340
权限管理系统RBAC和ABAC模型
目前广泛采用的两种权限模型:基于角色的访问控制(role-based access control RBAC)和基于属性的访问控制(attribute-based access control ABAC)
用户9914333
2022/07/22
11.8K0
权限管理系统RBAC和ABAC模型
权限系统与RBAC模型概述[绝对经典]
一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠下心来学习。
菲宇
2019/06/13
4.7K0
权限系统与RBAC模型概述[绝对经典]
权限系统就该这么设计,yyds
权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。
码猿技术专栏
2023/05/01
1.3K0
权限系统就该这么设计,yyds
关于访问控制模型
访问控制服务主要由访问控制模型和策略描述语言组成 常见的访问控制模型主要是自主访问控制 DAC、强制访问控制 MAC、基于角色的访问控制 RBAC。 访问策略规则以及访问主体和访问客体三者是访问控制系统的基本条件。 访问主体:在信息环境中,对目标信息的获取通常是由访问主体发起的,访问主体需要遵循相应的规则,从而可以访问一定的客体。通常访问主体是用户开发和使用的应用程度。 访问客体:在信息系统中,客体可以被主体进行一定的访问行为操作。 安全访问策略:是为了保护信息安全性而制定的策略规则,规定了主体是否可以访问客体以及可以使用何种方式对客体进行访问。 常见的策略描述语言就有ACML、XACML,就像前端里面的JSON、XML一样,用于前后端的交流,哈哈,这是我的理解~~就说XACML语言吧,它是为了PEP(执行模块)和PDP(策略模块),还有可能有PIP(信息模块)的信息交换,因为每个模块可能用不同的语言写,会存在语义鸿沟(当然,这是虚拟机自省技术里的定义了),但是确实也是这样,就像两个地区的人都说方言肯定听不懂嘛,所以大家交流都得说普通话,这就是策略描述语言。
网络安全观
2021/02/25
1.4K0
关于访问控制模型
常见的访问控制模型 Access Control Policy:RBAC,DAC,MAC,ABAC
一些标准的常见的 Access Control Policy: 基于角色访问控制 Role-Based Access Control(RBAC) 定义:根据角色确定访问权限,用户可以绑定不同角色。 优点:管理较为灵活,目前的主流模型。 例子:管理员角色、编辑角色、读者角色拥有不同的权限,新增加一个用户只需要设定相应角色,不需要依次设置对每个操作的权限。 自主访问控制 Discretionary Access Control(DAC) 定义:由资源的所有者、某些组的成员确定访问权限。 优点:可以基于数据/资源
饶文津
2020/12/16
2.5K0
网络安全第三讲 身份认证与访问控制
​ 2. 基于生物学信息的方案包括基于指纹识别的身份认证、基于语音识别的身份认证以及基于视网膜识别的身份认证等。
易兮科技
2020/10/28
5.5K0
网络安全第三讲 身份认证与访问控制
超级全面的权限系统设计方案
权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。
良月柒
2019/10/14
7.9K0
超级全面的权限系统设计方案
【实践】RBAC 权限管理分析和样例
RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
辉哥
2020/04/09
3.6K0
网络信息安全——访问控制「建议收藏」
访问控制是给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来, 然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。权限引擎所回答的只是:谁是否对某资源具有实施 某个动作(运动、计算)的权限。返回的结果只有:有、没有、权限引擎异常了。
全栈程序员站长
2022/09/15
9910
RBAC 模型 - 权限系统是如何进行架构设计的?
大家在平时使用网页的时候,遇到和权限相关的场景应该很多,比如视频网站的会员视频,管理后台的访问控制,那么,本文将带大家了解一下,权限系统的通用设计模型理念,和如何设计一个简易的权限系统。
用户3806669
2021/07/06
1.1K0
RBAC 模型 - 权限系统是如何进行架构设计的?
《计算机系统与网络安全》 第八章 操作系统安全基础
下面我们来学习访问控制。首先来学习防控制的基本概念和模型,访问控制是网络安全防护的主要策略之一,防控制是依据授权规则对提出的资源访问加以控制,它限制访问主体,包括用户以及代表用户的进程服务等,对任何资源,包括计算资源,通信资源和信息资源进行未授权的访问,使计算机系统在合法范围内使用。一方面防止非法用户使用资源,另外一方面还要防止合法用户滥用权限,它具体就是决定一个用户能够在系统当中做什么,或者代表用户的程序能够做什么。
猫头虎
2024/04/08
1980
《计算机系统与网络安全》 第八章 操作系统安全基础
访问控制技术
访问控制技术是指:防止对任何资源进行未授权的访问,从而使计算机系统在合法的范围内使用,用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术,如UniNAC网络准入控制系统等。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。
网络安全观
2021/02/25
2.3K0
Spring Security 中最流行的权限管理模型!
前面和大家说了 ACL,讲了理论,也给了一个完整的案例,相信小伙伴们对于 ACL 权限控制模型都已经比较了解了。
江南一点雨
2020/09/23
1.4K0
Spring Security 中最流行的权限管理模型!
信息安全之访问控制策略
信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。
海拥
2021/08/23
1.4K0
信息安全之访问控制策略
RBAC权限系统分析、设计与实现
最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。
架构师修行之路
2021/03/16
10K0
RBAC模型与Shiro简单的实例介绍 原
RBAC是基于角色的访问控制(Role-Based Access Control )在 RBAC  中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
wuweixiang
2018/08/14
8740
Spring Security 实战干货: RBAC权限控制概念的理解
欢迎阅读 Spring Security 实战干货系列文章 。截止到上一篇我们已经能够简单做到用户主体认证到接口的访问控制了,但是依然满足不了实际生产的需要。 如果我们需要一个完整的权限管理系统就必须了解一下 RBAC (Role-Based Access Control基于角色的访问控制) 的权限控制模型。
码农小胖哥
2019/12/10
9680
Spring Security 实战干货: RBAC权限控制概念的理解
数据安全保护之访问控制技术
数据作为信息的重要载体,其安全问题在信息安全中占有非常重要的地位。为了能够安全可控地使用数据,需要多种技术手段作为保障,这些技术手段一般包括访问控制技术、加密技术、数据备份和恢复技术、系统还原技术等多种技术手段。本文侧重论述访问控制技术,有关其它技术的探讨将发表在后续文章中。
网络安全观
2021/02/25
1.9K0
数据安全保护之访问控制技术
权限控制的解决方式(科普向)
目录 1 权限控制是什么   1.1 ACL   1.2 RBAC     1.2.1 名词术语     1.2.2 RBAC定义     1.2.3 RBAC分类       1.2.3.1 RBAC0       1.2.3.2 RBAC1       1.2.3.3 RBAC2     1.2.4 RBAC 接口 2 垂直权限(功能权限) 3 水平权限(数据权限) 4 OAuth   4.1 授权码模式(authorization code)   4.2 简化模式(implicit)   4.3 密码
butterfly100
2018/04/17
4.6K0
权限控制的解决方式(科普向)
推荐阅读
相关推荐
四大访问控制模型:OBAC、RBAC、TBAC与ABAC的对比与应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档