访问控制
访问控制的基本原理
在信息安全体系当中,访问控制占有非常重要的地位,涉及安全策略和实现机制。
访问控制安全策略是在系统安全策略层面上表示授权,是对访问如何控制、如何做出访问决定的高层指南,通常以用于所有与安全相关活动的一套访问控制规则来体现。
访问控制实现机制则是访问控制策略的软硬件底层实现,是指信息系统的主体(用户)依据给定的权限或控制策略,对信息系统的客体(资源)进行的不同授权访问。访问控制实现机制与其安全策略既有紧密联系,又各自独立。
访问控制安全策略的实施主要通过小特权原则、 小泄露原则和多级安全策略来规范主体、客体和安全控制规则集三者之间的关系。
小特权原则是在主体执行操作时,根据其所需小权利来为其赋权。
小泄露原则是在主体执行任务时按其所需小信息分配权限。
多级安全策略是对客体赋予一个安全敏感度标签,凭此标签来表征安全分级。
实施多级安全策略需要对信息进行分类,按照信息的安全级别来决定主客体之间的数据流向和权限控制。
访问控制机制的要素
访问控制主体:主体是指主动的实体,是访问的发起者,即发出访问操作和存取要求的主动方,也被称为访问者、授权用户或者用户。主体导致了信息的流动和系统状态的改变,通常包括用户、应用服务程序、进程和设备
访问控制客体:客体是指包含或接受信息的被动实体,在信息流动中处于主体作用之下的被动地位,客体通常包括文件、数据、程序、设备、信号量以及网络节点等。访问客体本质上是访问实体本身或其中所包含的信息和资源。
访问控制策略:信息系统中的主体对客体的约束条件集合和行动集合,规定了访问的权限,定义了系统运行期间的授权和非授权行为,即允许发生哪些行为,不允许发生哪些行为。通常可分为授权策略(Authorization Policy)和义务策略(Obligation Policy)。
访问权限取决于以下决定因素:用户分类、资源分类、资源使用和访问规则。
访问控制的手段包括用户识别码、口令、登录控制、资源授权、授权核查、日志和审计等。
| 决定因素 | 概述 | 详细说明 |
用户分类 |
对信息系统的用户进行分类 | 特殊用户 | 系统管理员,拥有高级权力,可访问所有资源,且具备所有类型的访问操作能力 |
| 一般用户 | 普通用户,是信息系统中数量多的用户,其访问操作受到由系统管理员分配的权限限制 |
| 审计用户 | 系统审计员,负责审计整个系统的安全控制与资源使用情况 |
| 资源分类 | 系统内需要保护的各类资源 | 包括:磁盘、终端、数据库及其中数据、应用程序、进程资源等 |
| 资源使用 | 针对待保护资源定义的访问控制包 | 包括:资源名称及拥有者的标识符、缺省访问权限、用户及用户组的特权明细表等 |
| 访问规则 | 定义了准许访问某个资源的条件 | 实现了用户与资源的匹配,指定某类型用户对相应资源的操作类型(如不许执行或不许访问等),这些规则由系统管理员来应用 |
访问控制的基本原理图
DAC模型、MAC模型、RBAC模型
自主访问控制(DAC)模型
1. DAC 模型的概念
DAC 模型是根据自主访问控制策略建立的一种模型, 早出现在 20 世纪 70 年代初的分时系统中,随后在各种计算机系统中获得普遍应用。其基本思想为:允许主体显式地指定其他主体(合法用户)以用户或用户组的身份对该主体所拥有的信息资源是否可以访问及执行。
“自主”是指具有某种访问能力的主体可以自主地将访问权的某个子集授予其他主体或者从其他主体收回所授予的权限。DAC 模型以对主体及主体所属主体组的识别为基础,来实现对客体访问的限制,与此同时,DAC 模型还需要校验主体对客体的访问请求是否符合访问控制策略,进而决定能否执行对客体的访问。
2.DAC 模型的实现机制
基于主体的实现机制:通过权限表记录各主体能够访问的客体以及可以采取的操作。具体包括权能表、前缀表和口令三种形式。
权能表:定义了某种操作的安全标记,主体需要具有该标记才能对客体进行相应访问。如银行卡的U盾。
前缀表:包括受保护的客体名以及主体对该客体的访问权。典型例子如受保护文件目录。
口令:则是给每个客体赋一个口令,主体访问特定客体时需要向 DAC 提供该客体的口令。典型例子如保险箱。
基于客体的自主访问控制:描述了客体会被哪些主体访问、访问该客体的主体可以进行哪些操作,主要采用访问控制列表(ACL)来表明客体对所有主体的权限,如删除某个主体则需检查所有客体的 ACL。典型例子如操作系统中的权限管理。
3. DAC 模型的优缺点
优点:
① 访问控制的粒度可以为单个用户,可在一定程度上实现权限隔离和资源保护;
② 授权灵活,系统中的主体可将其拥有的权限自主地向其他用户授予或者撤销;
③ 可将用户权限与用户直接对应,因此访问效率较高。
缺点
① 资源管理较为分散,系统中无法体现用户间的关系,不易管理;
② 主体能够自主地将权限授予其他主体,易造成权限传递失控,无法有效保护系统中的信息流,导致信息泄露;
③ 需要对每个资源指定可以访问的用户以及相应权限,在主体、客体数量较大时,会导致 DAC 系统开销增大, 用户角色变更时也需要修改该用户对所有资源的访问权限,导致访问控制的授权管理困难。因此,DAC 对于大型、复杂信息系统的适用性不强。
强制访问控制(MAC)模型
1.MAC 模型的基本概念
MAC 模型是一种多级访问控制策略模型,最早源于美国政府和军方对于信息机密性保护以及防范特洛伊木马类攻击的需求。
其基本思想为:系统对访问主体和受控客体(如程序、进程、文件和设备等)实行强制访问控制,系统事先给访问主体和受控客体分配不同的安全级别属性,再依据主体和客体的安全属性的级别来决定主体是否拥有对客体的访问权限。实施访问控制时,MAC 系统需要先比较访问主体和受控客体的安全级别属性,再决定访问主体能否访问该受控对象。
2.MAC 模型的实现机制
MAC 对资源管理集中进行严格的安全等级分类,为系统中的主体和客体(包括进程、文件、消息队列、信号量集合和共享存储区等)均分配一个强制性的、固定的安全属性。
安全属性如:如绝密级、机密级、秘密级、内部级、公开级等。
“强制”是指代表用户的进程无法改变其自身或任何客体的安全属性。
系统再利用该安全属性来决定主体是否可以访问某个客体,即根据主体和客体的敏感标记来决定访问模式。
3.MAC 模型的优缺点
优点:
① 根据事先定义的安全级别进行严格的权限管理,实现了集中管理;
② 通过信息的单向流动来防范信息扩散,增强了信息的机密性,可抵御特洛伊木马
之类的恶意程序攻击。
缺点:
① 用户和信息的安全级别分别取决于用户的可信任级别及信息的敏感程度,在访问控制粒度上不符合满足最小特权原则的要求,而且主体访问级别和客体安全级别的划分无法达到与现实要求一致,同级别之间缺乏控制机制,不便管理;
② 对信息无法实施全面的完整性控制;
③ 现代计算机系统中大量存在的逆向潜信道(如共享存储器、为提升硬件性能而采用的各种 Cache 等),可导致信息违反 MAC 规则流动,带来安全隐患。
基于角色的访问控制(RBAC)模型
1.RBAC模型的概念
随着信息技术应用的不断深入,信息系统的规模越来越大,系统用户的数量也非常庞大,而且经常变动,如果采用传统的 DAC/MAC 模型,访问权限被直接授予系统中的各用户,造成授权管理困难。
为此,人们在 20 世纪 70 年代提出了基于角色的访问控制的概念雏形,用于多用户和多机系统。1992 年,NIST 的 D. Ferraiolo 和 R. Kuhn 提出了基于角色的访问控制(RBAC)模型框架,并被人们广泛接受。
RBAC 模型通过引入角色的概念,实现了访问控制系统主体(用户)与对应权限的解耦,从而大大简化了各种应用场景下的授权管理。
2.RBAC模型的实现机制
RBAC 的基本思想是将访问权限赋给角色,再将角色赋给用户,使系统的用户担任一定的角色,用户通过角色才能获取访问权限。与用户相比,角色是相对稳定的。当用户变化时,只需撤销和重新分配角色。RBAC 模型基本解决了 DAC 模型灵活性造成的安全性问题以及MAC 不支持完整性保护所带来的局限性问题。
RBAC 与传统(DAC/MAC)访问控制的区别
3.RBAC模型的优缺点
优点
① 引入角色概念,实现了用户和权限的逻辑分离,以对角色进行控制取代了对用户的直接控制,提升了系统的灵活性与可操作性。
② 该模型为层次结构,可以与组织机构的管理架构和用户责权形成天然的良好映射,清晰描述组织机构中各用户之间的关系。而且,RBAC 的控制粒度较细,可以减轻管理工作,规避管理失误,还有利于实现分布式授权。
③ 易于实现最小特权原则和职权分离原则,限制用户仅具有完成特定任务所必须的权限,从而有效地避免了权限扩散的风险。
缺点
① 责权分离是一把“双刃剑”。
② 配置较为复杂,使用维护难度较高。
③ 在工程应用中不易理解和实现。
④ 权限校验时需要不断遍历和递归,在分布式系统中推广尤为困难。