文章目录
随着数据泄露事件的频繁发生和网络攻击的日益复杂化,确保敏感数据和关键资源的安全变得越来越重要。在众多网络安全措施中,访问控制模型扮演着至关重要的角色。
什么是访问控制
为用户对系统资源提供最大限度共享的基础上,对用户的访问权进行管理,防止对信息的非授权篡改和滥用
什么是访问控制模型
对一系列访问控制规则集合的描述,可以是非形式化的,也可以是形式化的。
访问控制的核心要素
访问控制模型基于三个基本元素:主体(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 模型创建了一种动态的访问控制策略,该策略根据用户的访问历史进行调整。它的设计目的是防止利益冲突,确保一旦客体(或任何专业人士)访问了一家公司的机密信息,他们就不能访问竞争对手的机密信息。
例如
控制策略
围绕三个主要概念构建:对象、主体和数据集。
- 对象(公司数据集): 这些是不同公司的数据集。一旦主体访问了一家公司的数据集,他们就被禁止访问竞争公司的数据集。
- 主体: 这些是试图访问数据集的用户或实体。他们的访问权限根据他们的访问历史动态调整。
- 利益冲突类: 包括直接竞争公司的群组。一个主体访问了该类别中一家公司的数据后,就不能访问同一类别中的竞争公司的数据。
访问控制规则
Chinese Wall 模型执行以下规则:
- 读取访问: 主体可以读取一个对象,当且仅当:- 该对象不在其已访问过的竞争公司的数据集中。- 访问不会导致违反利益冲突类的规定。
- 写入访问: 写入通常受到更多限制,以确保不会在竞争对手之间发生数据的交叉污染。
4、基于角色的访问控制RBAC
基于角色的访问控制(Role-Based Access Control,简称RBAC)是一种广泛应用的访问控制机制,主要通过分配角色和权限来管理用户对系统资源的访问。这种方法减少了直接将权限分配给用户的复杂性,而是通过角色来间接管理权限。
RBAC 的核心概念
RBAC 模型基于几个关键概念:
- 角色(Role): 代表一组权限的集合,通常与特定的工作职责或职位相关联。
- 用户(User): 系统的操作主体,可以是人员或其他实体。
- 权限(Permission): 用户或角色执行某项操作的能力,例如读取、写入或修改文件。
- 会话(Session): 用户与系统交互的一次实例,在此期间,用户可以激活一个或多个角色。
RBAC 的类型
RBAC 有几种不同的实现方式:
- RBAC0(基本RBAC): 包括角色、用户、权限以及用户与角色、角色与权限之间的关联。
- RBAC1(具有角色层级的RBAC): 引入角色层级概念,支持角色继承。
- RBAC2(具有约束的RBAC): 加入诸如分离职责、最少特权等安全策略约束。
- 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
版权归原作者 Demonslzh6 所有, 如有侵权,请联系我们删除。