当前位置:文档之家› 自主访问控制综述

自主访问控制综述

自主访问控制综述摘要:访问控制是安全操作系统必备的功能之一,它的作用主要是决定谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。

而自主访问控制(Discretionary Access Control, DAC)则是最早的访问控制策略之一,至今已发展出多种改进的访问控制策略。

本文首先从一般访问控制技术入手,介绍访问控制的基本要素和模型,以及自主访问控制的主要过程;然后介绍了包括传统DAC 策略在内的多种自主访问控制策略;接下来列举了四种自主访问控制的实现技术和他们的优劣之处;最后对自主访问控制的现状进行总结并简略介绍其发展趋势。

1自主访问控制基本概念访问控制是指控制系统中主体(例如进程)对客体(例如文件目录等)的访问(例如读、写和执行等)。

自主访问控制中主体对客体的访问权限是由客体的属主决定的,也就是说系统允许主体(客体的拥有者)可以按照自己的意愿去制定谁以何种访问模式去访问该客体。

1.1访问控制基本要素访问控制由最基本的三要素组成:●主体(Subject):可以对其他实体施加动作的主动实体,如用户、进程、I/O设备等。

●客体(Object):接受其他实体访问的被动实体,如文件、共享内存、管道等。

●控制策略(Control Strategy):主体对客体的操作行为集和约束条件集,如访问矩阵、访问控制表等。

1.2访问控制基本模型自从1969年,B. W. Lampson通过形式化表示方法运用主体、客体和访问矩阵(Access Matrix)的思想第一次对访问控制问题进行了抽象,经过多年的扩充和改造,现在已有多种访问控制模型及其变种。

本文介绍的是访问控制研究中的两个基本理论模型:一是引用监控器,这是安全操作系统的基本模型,进而介绍了访问控制在安全操作系统中的地位及其与其他安全技术的关系;二是访问矩阵,这是访问控制技术最基本的抽象模型。

1.2.1引用监控器1972年,作为承担美国军的一项计算机安全规划研究任务的研究成果,J. P. Anderson在一份研究报告中首次提出了用监控器(Reference Monitor)、安全内核(Security Kernel)等重要思想。

同年Ronger Schell也提出了安全内核的概念,并定义为实现引用监控器抽象的硬件和软件。

在著名的计算机安全评价标准TCSEC中,引用监控器被作为重要的理论基础。

图 1 引用监控器模型如图1所示,安全操作系统的核心部分是安全内核,安全内核的基础是引用监控器,它是负责实施系统安全策略的硬件与软件的结合体。

访问控制依赖引用监控器进行主体对客体访问的控制,以决定主体是否有权对客体进行何种操作。

引用监控器查询授权数据库(Authorization Database),根据系统安全策略进行访问控制的判断,同时将相应活动记录在审计数据库(Audit Database)中。

由引用监控器模型可以看出,访问控制是实现安全操作系统的最核心的技术,但它并不是孤立的,它必须和其他安全技术相互配合以达到整个系统的安全。

1.2.2访问矩阵访问矩阵是最基本的访问控制抽象模型,最初由B. W. Lampson在1969年对访问控制问题的研究中作为一种基本控制策略提出。

主体是访问操作中的主动实体,客体是访问操作中的被动实体,主体对客体进行访问,系统使用引用监控器图 2 访问矩阵模型如图2所示,访问矩阵是以主体为行索引、以客体为列索引的矩阵,矩阵中的每一个元素表示一组访问方式,是若干访问方式的集合。

矩阵中第i行第j列的元素记录第i个主体S i可以执行的对第j个客体O j的访问方式,比如M ij等于表示S i可以对O j进行读和写访问。

1.3自主访问控制的主要特点自主访问控制是一种最普遍的访问控制安全策略,其最早出现在20世纪70年代初期的分时系统中,基本思想伴随着访问矩阵被提出,在在目前流行的Unix 类操作系统中被广泛使用。

自主访问控制基于对主体的识别来限制对客体的访问,这种控制是自主的。

与其他访问控制策略最大的区别在于,自主访问控制中部分具有对其他主体授予某种访问权限权利的主体可以自主地(可以是间接地)将访问权限或访问权限的子集授予其他主体。

在自主访问控制中具有这种授予权力的主体通常是客体的主人,因此有学者把自主访问控制称为基于主人的访问控制。

2自主访问控制策略自主访问控制策略作为最早被提出的访问控制策略之一,至今已有多种改进的访问控制策略。

下面列举传统DAC策略和几种由DAC发展而来的访问控制策略。

2.1传统DAC策略传统DAC策略的基本过程已在上文中介绍过,可以看出,访问权限的管理依赖于所有对客体具有访问权限的主体。

明显的,自主访问控制主要存在着以下三点不足:●资源管理比较分散●用户间的关系不能在系统中体现出来,不易管理●不能对系统中的信息流进行保护,容易泄露,无法抵御特洛伊木马其中,第三点的不足对安全管理来说是非常不安全的,针对自主访问控制的不足,许多研究者对其提出了一系列的改进措施。

2.2 HRU、TAM、ATAM策略早在70年代末,M. A. Harrison,W. L. Ruzzo和J. D. UIIman就对自主访问控制进行扩充,提出了客体主人自主管理该客体的访问和安全管理员限制访问权限随意扩散相结合的半自主式的HRU访问控制模型。

1992年,Sandhu等人为了表示主体需要拥有的访问权限,将HRU模型发展为TAM(Typed Access Matrix)模型。

随后,为了描述访问权限需要动态变化的系统安全策略,TAM发展为ATAM(Augmented TAM)模型。

HRU与传统DAC最大的不同在于它将访问权限的授予改为半自主式:主体仍然有权利将其具有的访问权限授予给其他客体,这种授予行为也要受到一个调整访问权限分配的安全策略的限制,通常这个安全策略由安全管理员来制定。

在HRU中,每次对访问矩阵进行改变时(包括对主体、客体以及权限的改变),先生成一个临时的结果,然后用调整访问权限分配的安全策略来对这个临时结果进行判断。

如果这个结果符合此安全策略,才允许此次访问权限的授予。

可以说,HRU模型用得好的话,可以完全不用担心非授权者会“意外”获得某个不应获得的访问权限。

但这种设定当主体集和客体集发生改变时,需要依赖安全管理员对访问权限的扩散策略进行更新。

TAM策略对此作出了改进:每当产生新主体时,管理员就需要对新主体的访问权限和它本身所拥有权限的扩散范围进行限定;每当产生新客体时,其所属主体和管理员就需要对其每一种权限的扩散范围进行限定。

这样一来,只要前期系统架构合理,TAM就能极为方便的控制住访问权限的扩散范围。

ATAM策略则是在TAM策略的基础上,为了描述访问权限需要动态变化的系统安全策略而发展出来的安全策略。

2.3基于角色/时间特性的DAC策略2000年Sylvia Osbom等人提出使用基于角色的访问控制来模拟自主访问控制,讨论了提出使用基于角色的访问控制来模拟自主访问控制,讨论了角色和自主访问控制结合方法,针对三种DAC类型,设计了文件管理角色和正规角色。

管理角色根据DAC类型不同,可包括OWN_O,PARENT_O和PARENTwithGRANT_O。

正规角色根据访问方式不同,可包括READ_O、WRITE_O和EXECUTE_O角色。

OWN_O角色有权向PARENT_O添加或删除用户,PARENTwithGRANT_O角色有权向PARENT_O添加或删除用户。

PARENT_O有权向READ_O、WRITE_O或者EXECUTE_O添加或删除用户。

正规角色中用户具有相应得读、写或执行的权限。

对应严格的DAC,管理角色只有OWN_O,正规角色可以包括READ_O、WRITE_O和EXECUTE_O,分别表示有权读、写或执行的用户集。

而在许多基于时间特性的DAC策略中,时间点和时间区间的概念被引入到DAC中并与访问权限结合,使得访问权限具有时间特性。

换句话说,用户只能在某个时间点或者时间区间内对客体进行访问。

该方法使主体可以自主地决定其他哪些主体可以在哪个时间访问他所拥有的客体,实现了更细粒度的控制。

在一些客体对访问许可有严格时间要求的系统中,如军事信息、情报、新闻等,基于时间特性的DAC策略就比较适合。

当然为了更加严格的控制信息流的传递,通常此策略也会和其他访问控制策略相结合。

除了最为知名的基于角色/时间特性的DAC策略,还有许多种基于某些因素的访问控制策略,在此就不一一列举了。

3自主访问控制实现技术实现自主访问控制实际上就是要把访问矩阵中的信息保存在系统中。

因为在大型系统中访问矩阵很大而且其中会有很多空值,如果以矩阵的形式将其保存会严重浪费资源,所以目前使用的实现技术都不会保存整个访问矩阵。

下面是基于访问矩阵的行或者列来保存信息:3.1保护位(Owner/Group/Other)机制在此机制中,每个操作系统客体都附有一个位集合以便为不同安全类别的用户指定不同访问模式。

常见的实现中其类别包括Owner、Group、Other三类,保护位分别指定这三类用户的读、写、执行权限。

由于保护位与客体相关联,显然它可决定哪些用户对客体拥有自主访问权限和在需要时撤消权限,访问权的复制和扩展的可简单地通过将此客体的保护位的修改权限授予某些用户来实现。

在B3级别,DAC要求增强了,包括利用系统能力表指定各自的访问模式和不能进行访问来实现命名的个体和定义的个体组对命名客体实现共享的控制。

保护位机制限于指定一个单一组对于一个客体的一组权限,但这种机制只能为此单一组指定单一的一组权限,权限划分的粒度过粗,所以它不能在同一时间为个体和定义的个体组指定受控制的共享,不能满足B3级别DAC的要求。

但由于它的设计简单、高效,像Unix等当今流行的操作系统许多都采用了这种机制。

3.2能力表(Capabilities)机制能力表机制将每一个操作系统的主体与一个客体访问列表(能力表)相联系,它指定了主体可以访问的客体以及此主体对此客体相应的访问方式。

由于能力表与主体相关联,故在一个特定时刻判断哪些主体对一个特定客体具有访问权限比较困难。

这使得访问权限的撤消变得复杂。

典型的是:一个用户可以通过提供一个必需的能力表的拷贝将访问权限授予其它用户,结果是访问权限的扩展过于复杂而难以控制。

能力表机制提供了一种在运行期间实行访问控制的方式(例如,它在DBMS中可能发挥作用:只要能够检索用户/主体模版以判断对一个表的特定视图是否具有访问权限)。

然而,这一方法对每个用户都需要很多的项来实现这种检索。

它可以满足B3级别的要求。

3.3访问控制表(Access Control Lists, ACLs)访问控制表是目前最流行、使用最多的访问控制实现技术。

相关主题