访问控制技术应用研究

时间:2022-09-10 07:08:48

访问控制技术应用研究

摘要:有效的安全访问控制机制是合法地使用信息系统、充分发挥信息系统的作用的一个前提,因此,要充分利用信息系统的诸多优点,有力保障所开发系统的访问安全性,必须建立一套有效的系统访问控制机制。本文着重分析、研究了访问控制方面的各种理论并进行比较。

关键词:访问控制;RBAC;DAC;MAC

中图分类号:TP302文献标识码:A文章编号:1009-3044(2008)35-2302-03

The Research of Access Control Technology Implementation

ZHANG Su, ZHANG Xiao-yan, WANG Fang

(Suzhou Vocation University, Suzhou 215011, China)

Abstract: Effective security access control mechanism is the premise to use information systems legally and to have a better performance in using. So we have to establish an effective system access control mechanism to have a better use of information system and to assure the access security of the system. This paper mainly analysis all kinds of access control analysis theories and have a compare.

Key words: access control; RBAC; DAC; MAC

1 引言

访问控制是一个古老而又新颖的话题,访问控制技术起源于70年代,当时是为了满足管理大型主机系统上共享数据授权访问的需要。但随着计算机技术和应用的发展,特别是网络应用的发展,这一技术的思想和方法迅速应用于信息系统的各个领域。所谓访问控制,就是通过某种途径显式地准许或限制访问能力及范围的一种方法。通过访问控制服务,可以限制对关键资源的访问,防止非法用户的侵入或者因合法用户的不慎操作所造成的破坏。简单的说访问控制要解决的问题就是“何时何地,哪些用户可以对哪些资源做哪些操作”。目前比较流行的技术有三种:自主访问控制、强制访问控制和基于角色的访问控制。

2 自主访问控制技术

自主访问控制(DAC:Discretionary Access Control)随分时系统的出现而产生。基本思想是:系统中的主体(用户或用户进程)可以自主地将其拥有的对客体的访问权限(全部或部分地)授予其它主体。其实现方法一般是建立系统访问控制矩阵,矩阵的行对应系统的主体,列对应系统的客体,元素表示主体对客体的访问权限。

尽管DAC已经在许多系统中得以实现(如UNIX),然而DAC的一个致命弱点是:访问权的授予是可以传递的。一旦访问权被传递出去将难以控制,访问权的管理是相当困难的,会带来严重的安全问题;另一方面,DAC不保护受保护的客体产生的副本,即一个用户不能访问某一客体,但能够访问它的拷贝,这更增加了管理的难度;而且在大型系统中主、客体的数量巨大,无论使用哪一种形式的DAC,所带来的系统开销都是难以支付的,效率相当低下,难以满足大型应用特别是网络应用的需要。

3 强制访问控制技术

强制访问控制(MAC:Mandatory Access Control)源于对信息机密性的要求以及防止特洛伊木马之类的攻击。MAC通过无法回避的存取限制来阻止直接或间接的非法入侵。系统中的主/客体都被分配一个固定的安全属性,利用安全属性决定一个主体是否可以访问某个客体。安全属性是强制性的,由安全管理员(SO:Security Officer)分配,用户或用户进程不能改变自身或其他主/客体的安全属性。

MAC的本质是基于格的非循环单向信息流政策。系统中每个主体都被授予一个安全证书,而每个客体被指定为一定的敏感级别。访问控制的两个关键规则是:不向上读和不向下写,即信息流只能从低安全级向高安全级流动。任何违反非循环信息流的行为都是被禁止的。

MAC起初主要用于军方的应用中,并且常与DAC结合使用,主体只有通过了DAC与MAC的检查后,才能访问某个客体。由于MAC对客体施加了更严格的访问控制,因而可以防止特洛伊木马之类的程序偷窃受保护的信息,同时MAC对用户意外泄漏机密信息的可能性也有预防能力。但如果用户恶意泄漏信息,则可能无能为力;而且,由于MAC增加了不能回避的访问限制,因而可能影响系统的灵活性;另一方面,虽然MAC增强了信息的机密性,但不能实施完整性控制,而一些完整性控制策略却可以实现机密性的功能;再者网上信息更需要完整性,这影响了MAC的网上应用;最后,在MAC系统中实现单向信息流的前提是系统中不存在逆向潜信道。逆向潜信道的存在会导致信息违反规则的流动。而现代计算机系统中这种潜信道是难以去除的,如大量的共享存储器以及为提升硬件性能而采用的各种Cache等,这给系统增加了安全性漏洞。

4 基于角色的访问控制技术

RBAC是通过角色将用户和资源相关联,用户不知道他可以操作哪些资源,只知道他属于哪些角色,用户一旦属于某个角色,就可以操作该角色拥有的所有资源。

RBAC的基本思想是将权限指派给角色,同时将用户也指派给角色,用户通过角色取得相应的权限。RBAC的突出优点是简化了各种环境下的授权管理,和DAC、MAC相比安全性和可操作性更高,因此受到广泛的支持。由于RBAC理论中的角色和权限概念非常抽象,它们应用广泛、内涵丰富,因此,在讨论角色和权限的时候一定要明确具体的环境。所以RBAC到目前为止还只是一个理论的抽象模型,使用时必须和具体应用相结合。虽然RBAC已经在一些商业数据库系统中得到应用(如Oracle、SQL Server),但RBAC仍处于发展阶段,RBAC的应用仍是一个相当复杂的问题。

5 NIST关于RBAC的建议标准

NIST建议标准将RBAC模型划分为四个组件:核心RBAC(Core RBAC)、等级RBAC(Hierarchical RBAC)、静态职责分离(SSD: Static Separation of Duties)和动态职责分离(DSD: Dynamic Separation of Duties)。可以根据需要选择实现其中的部分或全部组件,其中核心RBAC是必须实现的组件。如果实现全部组件,其模型如图1所示。

下面解释一下相关概念。

1) 主体(Subject)

可以对其它实体实施操作的主动实体。通常是系统用户或用户行为的进程。一般来说,为了叙述方便,常把主体限定为自然的人也就是用户。

2) 用户(User)

企图使用系统的人员。每个用户都有一个唯一的用户标识(UID),当注册进入系统时,用户要提供其UID,系统进行用户身份认证以确认用户身份。

3) 客体(Object)

接受其它实体动作的被动实体。通常是可以识别的系统资源,如文件。一个实体在某一时刻是主体而在另一时刻又成了客体,这取决于该实体是动作的执行者还是承受者。

4) 角色(Role)

角色的含义非常丰富。把角色引入到访问控制中,不仅大大丰富了访问控制的内涵,而且使得访问控制的实现也更加灵活。但是,至今在访问控制中对角色还没有清晰明确的定义。简单的说,一个角色就是在组织上下关系范围之内的一项工作的职能。角色也可以被定义为与特殊工作相关的行为和职责的集合。由于在RBAC中用户和权限都分配给角色,所以也可以把角色理解为用户与权限的集合。

5) 权限(Permission)

权限是一个很抽象的概念,指在受系统保护的客体上执行某一操作的许可。这里的操作定义为一个可执行的程序映像,对于用户来讲,它的调用将执行某些函数。RBAC所控制的操作和对象的类型依赖于系统中要实现的类型。例如,在一个文件系统中,操作就可能包括读、写和执行;在数据库管理系统中,操作可能包括插入、删除、附加和更新。除此之外,这里说的权限仅限于对数据和资源对象的访问,不包括对系统要素自身的访问控制。

6) 用户角色指派(User-to-Role Assignment)

将用户指派给角色,一个用户可指派给多个角色,一个角色可被指派给多个用户。用户和角色之间是多对多的关系。

7) 权限角色指派(Permission-to-Role Assignment)

将权限指派给角色,即建立权限与角色之间的多对多关系。这样,通过角色将用户与权限关联起来,用户具有其所属诸角色拥有的权限的总和。

8) 会话(Session)

指特定环境下一个用户与一组角色的映射,即用户为完成某项任务而激活其所属角色集合的一个子集,被激活角色的权限并集即为该用户当前有效的访问权限。

9) 角色层次(Role Hierarchical)

在核心RBAC的基础上增加对角色等级的支持。角色等级是一个严格意义上的偏序关系,上级角色继承下级角色的权限,下级角色获得上级角色的用户。根据偏序关系中有无限制又可以分为两种情形:

通用等级RBAC支持任意的偏序关系,支持角色多种继承,一个角色可以有多个直接子角色,也可以有多个直接父角色。

有限等级RBAC在偏序关系中加入某种限制,一般是使等级结构趋于简单,如成为树或反树结构。

角色划分等级是RBAC的一个突出优点。通常可以根据现实组织结构的模式构造角色层次关系,使它直接反映一个组织的职责关系。

10) 静态职责分离(SSD: Static Separation of Duties)

在一个基于角色的系统中,由于用户可能会获取互斥角色的授权,因此就会出现权力冲突。静态职责分离可以通过将用户指派给角色时施加约束来阻止这种冲突发生。这意味着如果一个用户指派给了一个角色,那么他将被禁止指派给与这一角色存在互斥关系的任何角色。除了角色间的职责分离,同时还存在权限间的职责分离。

11) 动态职责分离(DSD: Dynamic Separation of Duties)

与SSD类似,DSD也是限制可提供给用户的访问权限,但实施的机制不同,DSD在用户会话中对可激活的当前角色进行限制。在SSD中,有冲突的角色不可被指派给同一个用户;在DSD中,有冲突的角色可以被指派给同一个用户,但是它们不能在同一个会话中被激活。

6 各种访问控制技术比较

DAC是将用户和资源、操作直接关联,采用列表、矩阵等形式记录用户可以对哪些资源做哪种操作。MAC一般应用于军事系统中,它不将用户和资源做关联,而是给每个用户和资源都分配一个安全级别,用户只可以操作安全级别比其低的资源,无权操作安全级别比其高的资源。RBAC是通过角色将用户和资源相关联,用户不知道他可以操作哪些资源,只知道他属于哪些角色,用户一旦属于某个角色,就可以操作该角色拥有的所有资源。

从现在分布式系统应用和发展的前景来看,基于角色的访问控制模型比其它访问控制模型更实用,更容易扩展。目前国内外在基于角色的访问控制理论方面的研究主要分为模型研究和应用研究两类。模型研究是对模型本身做修改和发展,完善模型的内涵。应用研究主要是针对特定的应用领域,扩充和调整基于角色的访问控制模型,使其更好的满足特定应用的需求。

7 总结

一个应用系统要投入实际运营,不可避免的需要考虑其访问安全性问题,只有解决了这个问题才能保障应用程序能够稳定的运行。本文着重分析、阐述了访问控制方面的各种理论并进行比较,为下一步的研究奠定基础。

参考文献:

[1] Ravi S. Sandhu. Access Control. The neglected frontier[Z]. ACISP/1996.

[2] David F. Ferraiolo, Ravi S. Sandhu, Serban Gavrila, D. Richard Kuhn and Ramaswamy Chandr-amouli. Proposed NIST standard for role-base access control[J]. ACM Transactions on Information and Systems Security, Aug 2001, (3):224-274.

[3] 毛碧波,孙玉芳.角色访问控制[J].计算机科学,2003,30(1):121-123.

[4] 刘宏月,范九伦,马建峰.访问控制技术研究进展[J].小型微型计算机系统,2004,25(3):56-59.

上一篇:SPS与VB无缝集成的电力系统功角稳定仿真研究 下一篇:网络化实验教学系统设计