0


网络安全基础之访问控制模型详解——DAC, MAC, RBAC

文章目录

随着数据泄露事件的频繁发生和网络攻击的日益复杂化,确保敏感数据和关键资源的安全变得越来越重要。在众多网络安全措施中,访问控制模型扮演着至关重要的角色。

什么是访问控制

为用户对系统资源提供最大限度共享的基础上,对用户的访问权进行管理,防止对信息的非授权篡改和滥用

什么是访问控制模型

对一系列访问控制规则集合的描述,可以是非形式化的,也可以是形式化的。

访问控制的核心要素

访问控制模型基于三个基本元素:主体(Subject)、客体(Object)和访问权限(Access Rights)。主体通常指请求访问资源的用户或程序,客体则是被访问的资源,如文件、数据库或系统资源等。访问权限定义了主体对客体的操作权限,例如读取、写入或执行等。

在这里插入图片描述

1、访问控制模型的分类

访问控制模型主要分为三类:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。每种模型都有其独特的特点和应用场景,而选择合适的模型则取决于组织的具体需求和安全策略

#mermaid-svg-KJhx3omARKZLdY6c {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KJhx3omARKZLdY6c .error-icon{fill:#552222;}#mermaid-svg-KJhx3omARKZLdY6c .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KJhx3omARKZLdY6c .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-KJhx3omARKZLdY6c .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KJhx3omARKZLdY6c .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KJhx3omARKZLdY6c .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KJhx3omARKZLdY6c .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KJhx3omARKZLdY6c .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KJhx3omARKZLdY6c .marker.cross{stroke:#333333;}#mermaid-svg-KJhx3omARKZLdY6c svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KJhx3omARKZLdY6c .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-KJhx3omARKZLdY6c .cluster-label text{fill:#333;}#mermaid-svg-KJhx3omARKZLdY6c .cluster-label span{color:#333;}#mermaid-svg-KJhx3omARKZLdY6c .label text,#mermaid-svg-KJhx3omARKZLdY6c span{fill:#333;color:#333;}#mermaid-svg-KJhx3omARKZLdY6c .node rect,#mermaid-svg-KJhx3omARKZLdY6c .node circle,#mermaid-svg-KJhx3omARKZLdY6c .node ellipse,#mermaid-svg-KJhx3omARKZLdY6c .node polygon,#mermaid-svg-KJhx3omARKZLdY6c .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-KJhx3omARKZLdY6c .node .label{text-align:center;}#mermaid-svg-KJhx3omARKZLdY6c .node.clickable{cursor:pointer;}#mermaid-svg-KJhx3omARKZLdY6c .arrowheadPath{fill:#333333;}#mermaid-svg-KJhx3omARKZLdY6c .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-KJhx3omARKZLdY6c .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-KJhx3omARKZLdY6c .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-KJhx3omARKZLdY6c .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-KJhx3omARKZLdY6c .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-KJhx3omARKZLdY6c .cluster text{fill:#333;}#mermaid-svg-KJhx3omARKZLdY6c .cluster span{color:#333;}#mermaid-svg-KJhx3omARKZLdY6c div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-KJhx3omARKZLdY6c :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

       访问控制模型 
     

       自主访问控制模型\nDAC 
     

       访问矩阵模型 
     

       访问控制列表\n ACL 
     

       访问能力表 \nCapacity List 
     

       强制访问控制模型 \nMAC 
     

       保密性模型 
     

       完整性模型 
     

       混合策略模型 
     

       Bell-LaPadula 模型 
     

       Biba 模型 
     

       Clark-Wilson 模型 
     

       Chinese Wall 模型 
     

       基于角色的访问控制模型 RBAC 
     

       系统内置多个角色\n将权限与角色进行联 
     

2、自主访问控制模型DAC

自主访问控制模型(DAC)

  • 创建者(客体的属主)能够决定该客体的访问权限
  • 灵活,具有较好的易用性和可扩展性
  • 安全性不高

#mermaid-svg-UInz7rDMvMVFiNAW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .error-icon{fill:#552222;}#mermaid-svg-UInz7rDMvMVFiNAW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UInz7rDMvMVFiNAW .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UInz7rDMvMVFiNAW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UInz7rDMvMVFiNAW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UInz7rDMvMVFiNAW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UInz7rDMvMVFiNAW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UInz7rDMvMVFiNAW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UInz7rDMvMVFiNAW .marker.cross{stroke:#333333;}#mermaid-svg-UInz7rDMvMVFiNAW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UInz7rDMvMVFiNAW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .cluster-label text{fill:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .cluster-label span{color:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .label text,#mermaid-svg-UInz7rDMvMVFiNAW span{fill:#333;color:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .node rect,#mermaid-svg-UInz7rDMvMVFiNAW .node circle,#mermaid-svg-UInz7rDMvMVFiNAW .node ellipse,#mermaid-svg-UInz7rDMvMVFiNAW .node polygon,#mermaid-svg-UInz7rDMvMVFiNAW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UInz7rDMvMVFiNAW .node .label{text-align:center;}#mermaid-svg-UInz7rDMvMVFiNAW .node.clickable{cursor:pointer;}#mermaid-svg-UInz7rDMvMVFiNAW .arrowheadPath{fill:#333333;}#mermaid-svg-UInz7rDMvMVFiNAW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-UInz7rDMvMVFiNAW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-UInz7rDMvMVFiNAW .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-UInz7rDMvMVFiNAW .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-UInz7rDMvMVFiNAW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-UInz7rDMvMVFiNAW .cluster text{fill:#333;}#mermaid-svg-UInz7rDMvMVFiNAW .cluster span{color:#333;}#mermaid-svg-UInz7rDMvMVFiNAW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-UInz7rDMvMVFiNAW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

       自主访问控制模型DAC 
     

       访问矩阵模型 
     

       访问控制列表 ACL 
     

       权能列表 Capacity List 
     

DAC的实现机制: 通过访问控制表/矩阵实现
简而言之,通过管理员赋予不同用户对不同目标的读,写,所属权限来实现权限管理。
用户 / 目标目标a目标b目标c目标d用户aR, W, Own用户bR, W, OwnR, W, Own用户cRR, WRR用户dRR, WRR

访问控制表ACL与访问能力表CL

访问控制列表(权限与客体关联)
  • 基于对象的控制:ACL是依附于每个对象(如文件或目录)的(或者称之为客体)。每个对象都有一个列表,指定了哪些用户(或用户组)可以访问该对象,以及他们拥有的权限类型(如读、写、执行)。
  • 集中化管理:由于每个对象都有一个控制访问权限的中心列表,因此权限管理是集中化的。管理员可以在一个地方查看或修改特定资源的访问权限。
  • 查找效率:当一个对象被访问时,系统必须搜索与该对象相关联的ACL,以确定是否允许请求的操作。对于访问请求量大的系统,这可能会变成性能瓶颈。
访问能力列表(权限与主体关联)
  • 基于用户的控制:与ACL不同,访问能力列表是基于用户的。每个用户都有一个列表,详细列出了他们可以访问的所有对象及其相应的权限。
  • 分散管理:访问权限信息分散在每个用户的能力列表中。每个用户的列表指定了他们可以访问的资源和权限级别。
  • 查找效率:当用户尝试访问一个对象时,系统只需要检查该用户的能力列表。系统不需要在每次访问尝试时搜索每个对象的ACL。

缺点

关于有点如上所示很面贡献了。灵活性高能够自主授权。那么主要的缺点包括

  • 安全性不高
  • 信息在传递过程中其访问权限关系会被改变

3. 强制访问控制模型MAC

定义:主体和客体都有一个固定的安全属性,系统用该安全属性来决定一个主体是否可以访问某个客体

特点

  • 安全属性是强制的,任何主体都无法变更
  • 安全性较高,应用于军事等安全要求较高的系统

BLP (Bell-LaPadula Model)

由D. Elliott Bell和Leonard J. LaPadula于1973年提出的一种模拟军事安全策略的计算机访问控制模型,取两个创始人的姓氏中的字母来命令,简称为BLP模型。 BLP的访问控制策略

  • 包括自主安全策略与强制安全策略
  • 强制安全策略为每一个主体和客体都分配了安全级,根据安全级进行访问控制
安全级别

安全级别包括密级范畴
在这里插入图片描述

安全级别之间的支配关系
  • 密级高于或等于, 范畴包含 eg: - L=<机密,{外交,商务}>- L’=<秘密,{商务}>- 结果:L 支配 L’
安全策略

简单安全规则

  • 向下读(只能读取低于或等于当前密级的信息)

***-规则**

  • 向上写(只能写入高于或等于当前密级的信息)

BiBa模型(1977年由Biba提出)

Biba通过多级访问控制模型,保护数据完整性。
通过强制安全策略为每一个主体和客体都分配了完整级,根据完整级进行访问控制。

Biba的模型构成
  • 完整级: 包括安全级范畴在这里插入图片描述
  • 完整级之间与BLP类型,存在支配关系。 密级高于或等于, 范畴包含。
安全策略
  • 向上读:主体可以读客体,当且仅当客体的完整级别支配主体的完整级
  • 向下写:主体可以写客体,当且仅当主体的完整级别支配客体的完整级

Clark-Wilson(1987年由David D. Clark和David R. Wilson提出)

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

Chinese Wall 模型

Chinesw Wall模型也就是我们常说的“墙”, 所以,墙的本质就是通过我们独有的访问控制模型来实现的。随着它的诞生,也成为了世界各个高校在讲授访问控制模型时不得不提的经典案例。
Chinese Wall 模型创建了一种动态的访问控制策略,该策略根据用户的访问历史进行调整。它的设计目的是防止利益冲突,确保一旦客体(或任何专业人士)访问了一家公司的机密信息,他们就不能访问竞争对手的机密信息。
例如

控制策略

围绕三个主要概念构建:对象、主体和数据集。
在这里插入图片描述

  1. 对象(公司数据集): 这些是不同公司的数据集。一旦主体访问了一家公司的数据集,他们就被禁止访问竞争公司的数据集。
  2. 主体: 这些是试图访问数据集的用户或实体。他们的访问权限根据他们的访问历史动态调整。
  3. 利益冲突类: 包括直接竞争公司的群组。一个主体访问了该类别中一家公司的数据后,就不能访问同一类别中的竞争公司的数据。
访问控制规则

Chinese Wall 模型执行以下规则:

  1. 读取访问: 主体可以读取一个对象,当且仅当:- 该对象不在其已访问过的竞争公司的数据集中。- 访问不会导致违反利益冲突类的规定。
  2. 写入访问: 写入通常受到更多限制,以确保不会在竞争对手之间发生数据的交叉污染。

4、基于角色的访问控制RBAC

基于角色的访问控制(Role-Based Access Control,简称RBAC)是一种广泛应用的访问控制机制,主要通过分配角色和权限来管理用户对系统资源的访问。这种方法减少了直接将权限分配给用户的复杂性,而是通过角色来间接管理权限。

RBAC 的核心概念

RBAC 模型基于几个关键概念:

  1. 角色(Role): 代表一组权限的集合,通常与特定的工作职责或职位相关联。
  2. 用户(User): 系统的操作主体,可以是人员或其他实体。
  3. 权限(Permission): 用户或角色执行某项操作的能力,例如读取、写入或修改文件。
  4. 会话(Session): 用户与系统交互的一次实例,在此期间,用户可以激活一个或多个角色。

RBAC 的类型

RBAC 有几种不同的实现方式:

  1. RBAC0(基本RBAC): 包括角色、用户、权限以及用户与角色、角色与权限之间的关联。
  2. RBAC1(具有角色层级的RBAC): 引入角色层级概念,支持角色继承。
  3. RBAC2(具有约束的RBAC): 加入诸如分离职责、最少特权等安全策略约束。
  4. RBAC3(完整的RBAC): 包含前三个级别的所有特征,是最完整的RBAC模型。

RBAC 的优势

RBAC 模型的主要优势包括:

  • 简化管理: 通过角色管理权限,而不是直接对每个用户单独管理,简化了权限的分配和管理。
  • 提高安全性: 支持最少特权原则和职责分离,减少了潜在的安全风险。
  • 灵活性和可扩展性: 可根据组织的需求和变化灵活调整角色和权限。

RBAC 是一种有效的权限管理方式,特别适用于权限需求复杂和频繁变化的大型组织或系统。

#mermaid-svg-2VxdPl88wBcwChzl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2VxdPl88wBcwChzl .error-icon{fill:#552222;}#mermaid-svg-2VxdPl88wBcwChzl .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2VxdPl88wBcwChzl .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-2VxdPl88wBcwChzl .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2VxdPl88wBcwChzl .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2VxdPl88wBcwChzl .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2VxdPl88wBcwChzl .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2VxdPl88wBcwChzl .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2VxdPl88wBcwChzl .marker.cross{stroke:#333333;}#mermaid-svg-2VxdPl88wBcwChzl svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2VxdPl88wBcwChzl .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-2VxdPl88wBcwChzl .cluster-label text{fill:#333;}#mermaid-svg-2VxdPl88wBcwChzl .cluster-label span{color:#333;}#mermaid-svg-2VxdPl88wBcwChzl .label text,#mermaid-svg-2VxdPl88wBcwChzl span{fill:#333;color:#333;}#mermaid-svg-2VxdPl88wBcwChzl .node rect,#mermaid-svg-2VxdPl88wBcwChzl .node circle,#mermaid-svg-2VxdPl88wBcwChzl .node ellipse,#mermaid-svg-2VxdPl88wBcwChzl .node polygon,#mermaid-svg-2VxdPl88wBcwChzl .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2VxdPl88wBcwChzl .node .label{text-align:center;}#mermaid-svg-2VxdPl88wBcwChzl .node.clickable{cursor:pointer;}#mermaid-svg-2VxdPl88wBcwChzl .arrowheadPath{fill:#333333;}#mermaid-svg-2VxdPl88wBcwChzl .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-2VxdPl88wBcwChzl .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-2VxdPl88wBcwChzl .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-2VxdPl88wBcwChzl .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-2VxdPl88wBcwChzl .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-2VxdPl88wBcwChzl .cluster text{fill:#333;}#mermaid-svg-2VxdPl88wBcwChzl .cluster span{color:#333;}#mermaid-svg-2VxdPl88wBcwChzl div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-2VxdPl88wBcwChzl :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

       用户 1 
     

       用户 2 
     

       用户 3 
     

       角色 1 
     

       角色 2 
     

       角色 3 
     

       权限 1 
     

       权限 2 
     

       权限 3 
     

       权限 4 
     
标签: web安全 macos 网络

本文转载自: https://blog.csdn.net/Demonslzh/article/details/135376021
版权归原作者 Demonslzh6 所有, 如有侵权,请联系我们删除。

“网络安全基础之访问控制模型详解——DAC, MAC, RBAC”的评论:

还没有评论