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


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

什么是访问控制

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

什么是访问控制模型

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

访问控制的核心要素

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

在这里插入图片描述

1、访问控制模型的分类

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

访问控制模型
自主访问控制模型\nDAC
访问矩阵模型
访问控制列表\n ACL
访问能力表 \nCapacity List
强制访问控制模型 \nMAC
保密性模型
完整性模型
混合策略模型
Bell-LaPadula 模型
Biba 模型
Clark-Wilson 模型
Chinese Wall 模型
基于角色的访问控制模型 RBAC
系统内置多个角色\n将权限与角色进行联

2、自主访问控制模型DAC

自主访问控制模型(DAC)

  • 创建者(客体的属主)能够决定该客体的访问权限
  • 灵活,具有较好的易用性和可扩展性
  • 安全性不高
自主访问控制模型DAC
访问矩阵模型
访问控制列表 ACL
权能列表 Capacity List

DAC的实现机制: 通过访问控制表/矩阵实现
简而言之,通过管理员赋予不同用户对不同目标的读,写,所属权限来实现权限管理。

用户 / 目标 目标a 目标b 目标c 目标d
用户a R, W, Own
用户b R, W, Own R, W, Own
用户c R R, W R R
用户d R R, W R R

访问控制表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 是一种有效的权限管理方式,特别适用于权限需求复杂和频繁变化的大型组织或系统。

用户 1
用户 2
用户 3
角色 1
角色 2
角色 3
权限 1
权限 2
权限 3
权限 4

相关推荐

  1. Nginx访问控制模块详解

    2024-01-05 16:38:02       27 阅读
  2. 网络安全基础术语

    2024-01-05 16:38:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 16:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 16:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 16:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 16:38:02       20 阅读

热门阅读

  1. MySQL 存储引擎对比:InnoDB vs. MyISAM

    2024-01-05 16:38:02       35 阅读
  2. Spring Boot中进行分库编程

    2024-01-05 16:38:02       33 阅读
  3. 数据库-创建表

    2024-01-05 16:38:02       41 阅读
  4. gradio-osprey-demo

    2024-01-05 16:38:02       28 阅读
  5. Linux - 清理僵尸进程

    2024-01-05 16:38:02       39 阅读
  6. SQL的一些基本语句

    2024-01-05 16:38:02       36 阅读
  7. 【Git】Git版本控制工具使用详解

    2024-01-05 16:38:02       35 阅读
  8. 如何实现服务器主动向客户端推送实时数据

    2024-01-05 16:38:02       38 阅读
  9. Spring基于注解的IOC配置

    2024-01-05 16:38:02       33 阅读