访问控制类型及部分具体介绍

访问控制是信息安全领域中的一个关键概念,用于限制对资源的访问。根据不同的标准和实现方式,访问控制可以分为几种主要类型:

  1. 自主访问控制 (Discretionary Access Control, DAC):

    • 在DAC模型中,资源的所有者可以自行决定谁能够访问他们的资源。
    • 用户可以根据自己的判断来授予或撤销其他用户的访问权限。
    • 例子:Unix/Linux 文件系统权限设置。
  2. 强制访问控制 (Mandatory Access Control, MAC):

    • 在MAC模型中,访问决策基于系统定义的安全策略,这些策略由系统管理员设定,并且用户不能更改。
    • 系统会为每个主体(如用户)和客体(如文件)分配安全标签,然后根据这些标签之间的关系来决定访问权限。
    • 例子:Bell-LaPadula 模型、Biba 模型。
  3. 基于角色的访问控制 (Role-Based Access Control, RBAC):

    • RBAC 根据用户在组织内的角色来分配权限。
    • 角色是一组权限的集合,通过将用户分配给一个或多个角色来简化权限管理。
    • 例子:企业内部系统中的管理员、经理、员工等角色。
  4. 基于规则的访问控制 (Rule-Based Access Control, RuBAC):

    • 在这种模型中,访问决策基于预定义的规则集。
    • 规则可能包括时间、地点、用户行为等多种因素。
    • 例子:防火墙规则、网络入侵检测系统。
  5. 基于属性的访问控制 (Attribute-Based Access Control, ABAC):

    • ABAC 是一种更细粒度的访问控制方法,它考虑了更多关于主体、客体以及环境的信息。
    • 访问决策基于一系列属性,如用户属性、资源属性、环境条件等。
    • 例子:XACML (eXtensible Access Control Markup Language)。
  6. 基于上下文的访问控制:

    • 这种类型的访问控制不仅考虑用户的身份和角色,还考虑当前的上下文信息,比如位置、设备类型、时间等。
    • 它可以看作是ABAC的一种特例,特别强调了动态上下文信息的作用。
  7. 多级安全 (Multilevel Security, MLS):

    • 多级安全是一种特殊的MAC形式,主要用于处理敏感信息,确保不同级别的信息不会被未经授权的人访问。
    • 通常用于军事和政府机构中。

典型的强制访问控制模型:

  1. Bell-LaPadula 模型

    • 主要关注信息的保密性。
    • 两个主要原则:简单安全属性(无向下读)和*属性(无向上写)。
    • 防止敏感信息从高安全级别流向低安全级别。
  2. Biba 模型

    • 与Bell-LaPadula模型相对,Biba模型更侧重于信息的完整性保护。
    • 包括完整性约束(无向上读)和*完整属性(无向下写)。
    • 防止未经授权的数据修改,确保数据不会被篡改或破坏。
  3. Clark-Wilson 模型

    • 强调数据的完整性而非保密性。
    • 通过认证过程、转换程序和一致性检查等机制来保证数据的正确性和完整性。
    • 适用于需要防止未授权修改的数据处理环境,如金融交易系统。
  4. Chinese Wall 模型(又称多边安全模型):

    • 处理利益冲突情况下的信息安全问题。
    • 例如,在金融服务中,顾问不应同时接触两家竞争公司的机密信息。
    • 该模型允许用户在一定条件下访问不同利益集团的信息,但会阻止潜在的利益冲突访问。
  5. Lattice-Based Access Control

    • 使用格结构来表示不同的安全级别及其之间的关系。
    • 格结构可以用来表示复杂的访问控制需求,比如多个维度的安全级别组合。
  6. Type Enforcement (TE)

    • 在SELinux(Security-Enhanced Linux)中实现的一种方法。
    • TE为每个对象分配类型,并通过策略规定哪些类型的主体可以访问哪些类型的客体。
    • 提供了非常细粒度的访问控制能力。

典型的DAC(自主访问控制)模型:

  1. 访问控制列表 (Access Control List, ACL):

    • 每个对象(如文件、目录)都有一个关联的ACL,列出了允许或拒绝访问该对象的主体及其权限。
    • 例如,在Windows文件系统中,每个文件或目录都有一个安全描述符,其中包含了多个访问控制条目(ACE),定义了不同用户的读、写、执行等权限。
  2. 权限位 (Permission Bits):

    • 这种方法常见于Unix/Linux文件系统中,使用一组位来表示不同的权限类型。
    • 对于每个文件或目录,通常有三组权限:用户(文件所有者)、组和其他人。
    • 每组权限又分为读、写和执行三种操作权限。
    • 例如,-rwxr-xr-- 表示文件所有者有读、写、执行权限,同组成员只有读和执行权限,其他用户只有读权限。
  3. 访问控制矩阵 (Access Control Matrix):

    • 理论上,访问控制矩阵是一个二维表格,行代表主体(用户或进程),列代表客体(文件或其他资源),单元格中的值表示特定主体对特定客体的访问权限。
    • 实际实现时,由于矩阵可能非常大且稀疏,通常会采用优化的数据结构来存储,比如能力表(capabilities)或ACLs。
  4. 能力 (Capabilities):

    • 能力机制为每个主体分配一个或多个令牌,这些令牌允许主体以特定方式访问特定客体。
    • 与ACL相比,能力更侧重于主体拥有的权限,而不是客体上的访问控制信息。
    • 在某些操作系统中,能力可以被用来增强安全性,因为它减少了对全局访问控制信息的依赖。
  5. 所有权 (Ownership):

    • 在一些简单的系统中,访问控制可以通过所有权来实现。
    • 只有资源的所有者才能更改该资源的访问权限,并且可以指定哪些用户能够访问该资源。
    • 例如,在一些数据库系统中,表的所有者可以授予其他用户对该表的特定操作权限。
相关推荐
摸鱼也很难35 分钟前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
woshilys1 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程3 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
Michaelwubo4 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07134 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
好像是个likun4 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
独行soc5 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
fantasy_arch5 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化