第7章 访问控制技术原理与应用
7.1 访问控制概述
7.1.1 访问控制概念
访问控制是指对资源对象的访问者授权、控制的方法及运行机制。访问者又称为主体,可以是用户、进程、应用程序等;而资源对象又称为客体,即被访问的对象,可以是文件、应用服务、数据等;授权是访问者可以对资源对象进行访问的方式,如文件的读、写、删除、追加或电子邮件服务的接收、发送等;控制就是对访问者使用方式的监测和限制以及对是否许可用户访问资源对象做出决策,如拒绝访问、授权许可、禁止操作等。
7.1.2 访问控制目标
访问控制的目标有两个:一是防止非法用户进入系统;二是阻止合法用户对系统资源的非法使用,即禁止合法用户的越权访问。要实现访问控制的目标,首先要对网络用户进行有效的身份认证,然后根据不同的用户授予不同的访问权限,进而保护系统资源。同时还可以进行系统的安全审计和监控,检测用户对系统的攻击企图。
7.2 访问控制模型
7.2.1 访问控制参考模型
访问控制机制由一组安全机制构成,可以抽象为一个简单的模型,组成要素主要有主体(Subject)、参考监视器(Reference Monitor)、客体(Object)、访问控制数据库、审计库。
- 主体
主体是客体的操作实施者。通常是人、进程或设备等,一般是代表用户执行操作的进程。比如编辑一个文件,编辑进程是存取文件的主体,而文件则是客体。 - 客体
客体是被主体操作的对象。通常来说,对一个客体的访问隐含着对其信息的访问。 - 参考监视器
参考监视器是访问控制的决策单元和执行单元的集合体。控制从主体到客体的每一次操作,监督主体和客体之间的授权访问行为,并将重要的安全事件存入审计文件之中。 - 访问控制数据库
记录主体访问客体的权限及其访问方式的信息,提供访问控制决策判断的依据,也称为访问控制策略库。该数据库随着主体和客体的产生、删除及其权限的修改而动态变化。 - 审计库
存储主体访问客体的操作系统,包括访问成功、访问失败以及访问操作信息。
7.2.2 访问控制模型发展
为适应不同应用场景的访问控制需求,访问控制参考模型不断演变,形成各种各样的访问控制模型,主要有自主访问控制模型、强制访问控制模型、基于角色的访问控制模型、基于使用的访问控制模型、基于地理位置的访问控制模型、基于属性的访问控制模型、基于行为的访问控制模型、基于时态的访问控制模型。
7.3 访问控制类型
常用的访问控制类型主要有自主访问控制、强制访问控制、基于角色的访问控制、基于属性的访问控制。下面详细介绍各类访问控制的情况。
7.3.1 自主访问控制
自主访问控制(Discretionary Access Control,DAC)是指客体的所有者按照自己的安全策略授予系统中的其他用户对其的访问权。目前,自主访问控制的实现方法有两大类,即基于行的自主访问控制和基于列的自主访问控制。
- 基于行的自主访问控制
基于行的自主访问控制方法是在每个主体上都附加一个该主体可访问的客体的明细表,根据表中信息的不同又可分为三种形式,即能力表(capability list)、前缀表(profiles)、口令(password)。
(1)能力表。
能力是访问客体的钥匙,它决定用户能否对客体进行访问以及具有何种访问模式(读、写、执行)。拥有一定能力的主体可以按照给定的模式访问客体。
(2)前缀表
前缀表包括受保护客体名和主体对它的访问权限。当主体要访问某客体时,自主访问控制机制检查主体是否具有它所请求的访问权。
(3)口令
在基于口令机制的自主存取控制机制中,每个客体都相应地有一个口令。主体在对客体进行访问前,必须向系统提供该客体的口令。如果正确,它就可以访问该客体。 - 基于列的自主访问控制
基于列的自主访问控制机制是在每个客体上都附加一个可访问它的主体的明细表,它有两种形式,即保护位(protection bits)和访问控制表(Access Control List,ACL)。
(1)保护位。
这种方法通过对主体、主体组以及客体的拥有者指明一个访问模式集合,通常以比特位来表示访问权限。UNIX/Linux系统就是利用这种访问控制方法。
(2)访问控制表。
访问控制表简称ACL,它是在每个客体上都附加一个主体明细表,表示访问控制矩阵。表中的每一项都包括主体的身份和主体对该客体的访问权限。
7.3.2 强制访问控制
强制访问控制(Mandatory Access Control,MAC)是指系统根据主体和客体的安全属性,以强制的方式控制主体对客体的访问。例如,在强制访问控制机制下,安全操作系统中的每个进程、每个文件等客体都被赋予了相应的安全级别和范畴,当一个进程访问一个文件时,系统调用强制访问控制机制,当且仅当进程的安全级别不小于客体的安全级别,并且进行的范畴包含文件的范畴时,进程才能访问客体,否则就拒绝。
7.3.3 基于角色的访问控制
通俗地讲,角色(role)就是系统中的岗位、职位或者分工。例如,在一个医院系统中,医生、护士、药剂师、门卫等都可以视为角色。所谓角色的访问控制(RBAC)就是指根据完成某些职责任务所需要的权限来进行授权和管理。RBAC由用户(U)、角色(R)、会话(S)和权限(P)四个基本要素组成。
在一个系统中,可以有多个用户和多个角色,用户与角色的关系是多对多的关系。
7.3.4 基于属性的访问控制
基于属性的访问控制(Attribute Based Access Control)简称为ABAC,其访问控制方法是根据主体的属性、客体的属性、环境的条件以及访问策略对主体的请求操作进行授权许可或拒绝。
7.4 访问控制策略设计与实现
访问控制机制的实现依赖于安全策略设计,本节主要讲述访问控制策略的需求、访问控制策略的常见类型、访问控制的规则构成等内容。
7.4.1 访问控制策略
访问控制策略用于规定用户访问资源的权限,防止资源损失、泄露或非法使用。在设计访问控制策略时,一般应考虑下面的要求:
(1)不同网络应用的安全需求,如内部用户访问还是外部用户;
(2)所有和应用相关的信息的确认,如通信端口号、IP地址等;
(3)网络信息传播和授权策略,如信息的安全级别和分类;
(4)不同系统的访问控制和信息分类策略之间的一致性;
(5)关于保护数据和服务的有关法规和合同义务;
(6)访问权限的更新和维护。
访问控制策略必须指明禁止什么和允许什么,在说明访问控制规则时,应做到以下几点:
(1)所建立的规则应以“未经明确允许的都是禁止的”为前提,而不是以较弱的原则“未经明确禁止的都是允许的”为前提;
(2)信息标记的变化,包括由信息处理设备自动引起的或是由用户决定引起的;
(3)由信息系统和管理人员引起的用户许可的变化;
(4)规则在颁布之前需要管理人员的批准或其他形式的许可。
总而言之,一个访问控制策略由所要控制的对象、访问控制规则、用户权限或其他访问安全要求组成。在一个网络系统中,访问控制策略有许多,具体包括机房访问控制策略、拨号服务器访问控制策略、路由器访问控制策略、交换机访问控制策略、防火墙访问控制策略、主机访问控制策略、数据库访问控制策略、客户端访问控制策略、网络服务访问控制策略等。
7.4.2 访问控制规则
访问控制规则实际上就是访问约束条件集,是访问控制策略的具体实现和表现形式。目前,常见的访问控制规则有基于用户身份、基于时间、基于地址、基于服务数量等多种情况,下面分别介绍主要的访问控制规则。
- 基于用户身份的访问控制规则
- 基于角色的访问控制规则
- 基于地址的访问控制规则
- 基于时间的访问控制规则
- 基于异常事件的访问控制规则
- 基于服务数量的访问控制规则
7.5 访问控制过程与安全管理
访问控制是一个网络安全控制的过程,本节主要介绍访问控制实施的主要步骤、最小特权管理、用户访问管理和口令安全管理。
访问控制过程
访问控制的目的是保护系统的资产,防止非法用户进入系统及合法用户对系统资源的非法使用。要实现访问控制管理,一般需要五个步骤:
第一步,明确访问控制管理的资产,例如网络系统的路由器、Web服务等;
第二步,分析管理资产的安全需求,例如保密性要求、可用性要求等;
第三步,制定访问控制策略,确定访问控制规则以及用户权限分配;
第四步,实现访问控制策略,建立用户访问身份认证系统,并根据用户类型授权用户访问资产;
第五步,运行和维护访问控制系统,及时调整访问策略。
7.5.2 最小特权管理
特权(Privilege)是用户超越系统访问控制所拥有的权限。这种特权设置有利于系统维护和配置,但不利于系统的安全性。特权的管理应按最小化机制,防止特权误用。最小特权原则(Principle of Least Privilege)指系统中的每一个主体只能拥有完成任务所必要的权限集。
7.5.3 用户访问管理
为了防止系统的非授权使用,对系统中的用户权限应进行有效管理。用户管理是网络安全管理的重要内容之一,其主要工作包括用户登记、用户权限分配、访问记录、权限监测、权限取消、撤销用户。
7.5.4 口令安全管理
口令是当前大多数网络实施访问控制进行身份鉴别的重要依据,因此,口令管理尤为重要,一般遵守以下原则:
- 口令选择至少在8个字符以上,应选用大小写字母、数字、特殊字符组合;
- 禁止使用与帐号相同的口令;
- 更换系统默认口令,避免使用默认口令;
- 限制帐号登录次数,建议为3次;
- 口令文件应加密存放,并只有超级用户才能读取;
- 禁止以明文形式在网络上传递口令;
- 口令应有时效机制,保证经常更改,并且禁止重用口令;
- 以所有的帐号进行口令破解工具,检查是否存在弱口令或没有口令的帐号。
7.6 访问控制主要产品与技术指标
访问控制是网络安全普遍采用的安全技术,其产品表现形式有独立系统形态、功能模块形态、专用设备形态。本节阐述访问控制的主要产品类型和技术指标。
7.6.1 访问控制主要产品
访问控制主要产品类型有4A系统、安全网关、系统安全增强等,下面分别进行介绍。
- 4A系统
4A是指认证(Authentication)、授权(Authorization)、帐号(Account)、审计(Audit),中文统一名称为统一安全管理平台,平台集中提供帐号、认证、授权和审计等网络安全服务。该产品的技术特点是集成了访问控制机制和功能,提供多种访问控制服务。平台常用的基于角色的访问控制方法,以便于账号授权管理。 - 安全网关
安全网关产品的技术特点是利用网络数据包信息和网络安全威胁特征库,对网络通信连接服务进行访问控制。这类产品是一种特殊的网络安全产品,如防火墙、统一威胁管理(UTM)等。 - 系统安全增强
系统安全增强产品的特点是通常利用访问控制技术来增强操作系统、数据库系统的安全,防止特权滥用。如Linux的安全增强系统SELinux、Windows操作系统加固等。
7.6.2 访问控制主要技术指标
不同的访问控制技术产品,其技术指标有所差异,但其共性指标主要如下。
- 产品支持访问的控制策略规则类型
- 产品支持访问控制规则最大数量
- 产品访问控制规则检查速度
- 产品自身安全和质量保障级别
7.7 访问控制技术应用
按照访问控制的对象分类,访问控制技术的主要应用场景类型如下。
- 物理访问控制
- 网络访问控制
- 操作系统访问控制
- 数据库/数据访问控制
- 应用系统访问控制