访问控制的核心是授权策略。以授权策略来划分, 访问控制模型(Access Control Model)可分为: 传统的访问控制模型(DAC\MAC\ACL)、基于角色的访问控制(RBAC) 模型、基于任务和工作流的访问控制(TBAC) 模型、基于任务和角色的访问控制(T-RBAC) 模型等。
1. 传统的访问控制模型
自主访问控制DAC(Discretionary access control)
自主访问控制是指由用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。
AC通过授权列表(或访问控制列表)来限定哪些主体针对哪些客体可以执行什么操作。如此将可以非常灵活地对策略进行调整。由于其易用性与可扩展性,自主访问控制机制经常被用于商业系统。
自主访问控制中,用户可以针对被保护对象制定自己的保护策略。
- 每个主体拥有一个用户名并属于一个组或具有一个角色
- 每个客体都拥有一个限定主体对其访问权限的访问控制列表(ACL)
- 每次访问发生时都会基于访问控制列表检查用户标志以实现对其访问权限的控制
特点:
授权的实施主体(1、可以授权的主体;2、管理授权的客体;3、授权组)自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。
( ACL)是DAC 中常用的一种安全机制,系统安全管理员通过维护ACL(访问控制表)来控制用户访问有关数据。 Linux的访问控制模型、
缺点:
主体的权限太大,无意间就可能泄露信息
不能防备特洛伊木马的攻击访问控制表
当用户数量多、管理数据量大时,ACL 就会很庞大。不易维护。
应用实例:
在商业环境中,你会经常遇到自主访问控制机制,由于它易于扩展和理解。大多数系统仅基于自主访问控制机制来实现访问控制,如主流操作系统(Windows NT Server, UNIX 系统),防火墙(ACLs)等。
强制访问控制MAC(Mandatory Access Control))
用来保护系统确定的对象,对此对象用户不能进行更改。也就是说,系统独立于用户行为强制执行访问控制,用户不能改变他们的安全级别或对象的安全属性。这样的访问控制规则通常对数据和用户按照安全等级划分标签,访问控制机制通过比较安全标签来确定的授予还是拒绝用户对资源的访问。
在强制访问控制系统中,所有主体(用户,进程)和客体(文件,数据)都被分配了安全标签,安全标签标识一个安全等级。
- 主体 (用户, 进程) 被分配一个安全等级
- 客体 (文件, 数据) 也被分配一个安全等级
- 访问控制执行时对主体和客体的安全级别进行比较
是一种强加给访问主体(即系统强制主体服从访问控制策略)的一种访问方式,它利用上读/下写来保证数据的完整性,利用下读/上写来保证数据的保密性。
特点
通过梯度安全标签实现信息的单向流通
可以有效地阻止特洛伊木马的泄露
缺陷
主要在于实现工作量较大,管理不便,不够灵活,而且它过重强调保密性,对系统连续工作能力、授权的可管理性方面考虑不足。
上读/下写 下读/上写
(1)向下读(rd,read down):主体安全级别高于客体信息资源的安全级别时允许查阅的读操作;
(2)向上读(ru,read up):主体安全级别低于客体信息资源的安全级别时允许的读操作;
(3)向下写(wd,write down):主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;
(4)向上写(wu,write up):主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。
MAC通过分级的安全标签实现了信息的单向流通,其中最著名的是Bell-LaPadula模型和Biba模型:Bell-LaPadula模型具有只允许向下读、向上写的特点,可以有效地防止机密信息向下级泄露;Biba模型则具有不允许向下读、向上写的特点,可以有效地保护数据的完整性。
1).Lattice模型
在Lattices模型中,每个资源和用户都服从于一个安全类别。这些安全类别我们称为安全级别,五个安全级别,TS,S,C,R,U。在整个安全模型中,信息资源对应一个安全类别,用户所对应的安全级别必须比可以使用的客体资源高才能进行访问。Lattices模型是实现安全分级的系统,这种方案非常适用于需要对信息资源进行明显分类的系统。
2).Bell-LaPadula模型
Bell-LaPadula模型通常是处理多级安全信息系统的设计基础,客体在处理绝密级数据和秘密级数据时,要防止处理绝密级数据的程序把信息泄露给处理秘密级数据的程序。BLP模型的出发点是维护系统的保密性,有效地防止信息泄露。
Top Secret (TS), Secret (S),Confidential (C), and Unclassified (U),
3).Biba模型
Biba模型是和BLP模型相对立的模型,Biba模型改正了被BLP模型所忽略的信息完整性问题,但在一定程度上却忽视了保密性。
integrity levels: Crucial (C),Important (I), and Unknown (U).
应用实例:
强制访问控制进行了很强的等级划分,所以经常用于军事用途。
用一个例子来说明强制访问控制规则的应用,如WEB服务以"秘密"的安全级别运行。假如WEB服务器被攻击,攻击者在目标系统中以"秘密"的安全级别进行操作,他将不能访问系统中安全级为"机密"及"高密"的数据。
第一版简单的网管系统的权限模型也是强制访问控制模型:用户有6个级别,需要控制的资源的也有对应的级别,当用户的级别大于或等于资源的级别就可以访问该资源,如果用户的级别小于资源的级别则不能访问该资源。
Examples of MAC
• Linux enhancements
- RSBAC by the Adamantix project
- SE by the NSA
-LIDS
• eTrust CA-ACF2 by CA
• Multics-based Honeywell
•SCOMP
• Pump
• Purple Penelope
When most people talk about the types of MAC, they refer to models such as Bell-LaPadula Policy
and Biba. Implementation examples are Linux enhancements, such as RSBAC by the Adamantix
project; SE (Security Enhanced) Linux by the NSA (SE Linux currently supports 30 object classes
and 122 object permissions (rules); Flask, which has been incorporated into SE; or LIDS. Each of
these must be examined in terms of their ability to allow information flow to/from its associated
object class.
The following are additional examples:
• Computer Associate's eTrust CA-ACF2 Security for z/OS and OS/390
• Multics-based Honeywell computer
• SCOMP (Secure Communications Processor)
• Pump (developed by the US Naval Research Laboratory)
• Purple Penelope (An NT workstation MLS wrapper from the British Defense Evaluation and
Research Agency)
Following are references for these systems:
• http://itlab.uta.edu/cse6392/Fall2003/Presentations/Security/Raman%20Securityl.pdf
• http://www.networkpenetration.com/adv steg_posix flock.html
• http://www.tresys.com/Downloads/selinux-tools/apol/iflow_help.txt
强制访问控制和自主访问控制有时会结合使用。例如,系统可能首先执行强制访问控制来检查用户是否有权限访问一个文件组(这种保护是强制的,也就是说:这些策略不能被用户更改),然后再针对该组中的各个文件制定相关的访问控制列表(自主访问控制策略)。
2. 基于角色的访问控制模型RBAC
基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权
五个基本数据元素 :
用户 users(USERS)、角色 roles(ROLES)、目标 objects(OBS)、操作 operations(OPS) 、许可权 permissions(PRMS)
• 模型的优点
o 通过角色配置用户及权限,增加了灵活性
o 支持多管理员的分布式管理,管理比较方便
o 支持由简到繁的层次模型,适合各种应用需要
o 完全独立于其它安全手段,是策略中立的( policy-neutral )
通过对resource的粒度控制,可以做到大到整个系统,小到数据库表字段的控制
3. 基于任务和工作流的访问控制模型TBAC
所谓任务(或活动) ,就是要进行的一个个操作的统称。TBAC 模型是一种基于任务、采用动态授权的主动安全模型
基本思想
(1) 将访问权限与任务相结合,每个任务的执行都被看作是主体使用相关访问权限访问客体的过程。在任务执行过程中, 权限被消耗,当权限用完时,主体就不能再访问客体了。
(2) 系统授予给用户的访问权限,不仅仅与主体、客体有关,还与主体当前执行的任务、任务的状态有关。客体的访问控制权限并不是静止不变的, 而是随着执行任务的上下文环境
的变化而变化。
缺点
TBAC 中并没有将角色与任务清楚地分离开来, 也不支持角色的层次等级;另外,TBAC并不支持被动访问控制, 需要与RBAC结合使用 。
4. 基于任务和角色的访问控制模型T-RBAC
T-RBAC 模型把任务和角色置于同等重要的地位, 它们是两个独立而又相互关联的重要概念。任务是RBAC 和TBAC能结合的基础。
T-RBAC 模型中是先将访问权限分配给任务,再将任务分配给角色,角色通过任务与权限关联,任务是角色和权限交换信息的桥梁。
在T-RBAC模型中, 任务具有权限,角色只有在执行任务时才具有权限, 当角色不执行任务时不具有权限;权限的分配和回收是动态进行的,任务根据流程动态到达角色, 权限随之赋予角色,当任务完成时,角色的权限也随之收回;角色在工作流中不需要赋予权限。这样, 不仅使角色的操作、维护和任务的管理变得简单方便, 也使得系统变得更为安全。
5. 基于对象的访问控制模型
控制策略和控制规则是OBAC访问控制系统的核心所在,在基于受控对象的访问控制模型中,将访问控制列表与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许对策略和规则进行重用、继承和派生操作。这样,不仅可以对受控对象本身进行访问控制,受控对象的属性也可以进行访问控制,而且派生对象可以继承父对象的访问控制设置,这对于信息量巨大、信息内容更新变化频繁的管理信息系统非常有益,可以减轻由于信息资源的派生、演化和重组等带来的分配、设定角色权限等的工作量。
OBAC从信息系统的数据差异变化和用户需求出发,有效地解决了信息数据量大、数据种类繁多、数据更新变化频繁的大型管理信息系统的安全管理。OBAC从受控对象的角度出发,将访问主体的访问权限直接与受控对象相关联,一方面定义对象的访问控制列表,增、删、修改访问控制项易于操作,另一方面,当受控对象的属性发生改变,或者受控对象发生继承和派生行为时,无须更新访问主体的权限,只需要修改受控对象的相应访问控制项即可,从而减少了访问主体的权限管理,降低了授权数据管理的复杂性。
6. 下一代访问控制模型UCON
使用控制( UsageControl:UCON) 模型 , 也称ABC模型。UCON模型包含三个基本元素: 主体、客体、权限和另外三个与授权有关的元素: 授权规则、条件、义务,如图3 所示。
http://www.doc88.com/p-398143817984.html
UCON模型中的主要元素如下:
主体( Subjects)。它是具有某些属性和对客体(Objects)操作权限的实体。主体的属性包括身份、角色、安全级别、成员资格等。这些属性用于授权过程。客体( Objects) 。它是主体的操作对象,它也有属性,包括安全级别、所有者、等级等。这些属性也用于授权过程。
权限( Rights)。它是主体拥有的对客体操作的一些特权。权限由一个主体对客体进行访问或使用的功能集组成。UCON中的权限可分成许多功能类, 如审计类、修改类等。
授权规则( AuthorizationRules) 。它是允许主体对客体进行访问或使用前必须满足的一个需求集。授权规则是用来检查主体是否有资格访问客体的决策因素。
条件( Conditions)。它是在使用授权规则进行授权过程中, 允许主体对客体进行访问权限前必须检验的一个决策因素集。条件是环境的或面向系统的决策因素。条件可用来检查存在的限制, 使用权限是否有效,哪些限制必须更新等。
义务( Obligations)。它是一个主体在获得对客体的访问权限后必须履行的强制需求。分配了权限, 就应有执行这些权限的义务责任。
在UCON模型中, 授权规则、条件、义务与授权过程相关,它们是决定一个主体是否有某种权限能对客体进行访问的决策因素。基于这些元素, UCON有四种可能的授权过程, 并由此可以证明:UCON模型不仅包含了DAC,MAC, RBAC, 而且还包含了数字版权管理(DRM)、信任管理等。UCON 模型涵盖了现代商务和信息系统需求中的安全和隐私这两个重要的问题。因此, UCON模型为研究下一代访问控制提供了一种有希望的方法, 被称作下一代访问控制模型。
7. 基于属性的访问控制(ABAC)
ABAC是一种为解决行业分布式应用可信关系访问控制模型,它利用相关实体(如主体、客体、环境)的属性作为授权的基础来研究如何进行访问控制。基于这样的目的,可将实体的属性分为主体属性、实体属性和环境属性,这与传统的基于身份的访问控制(IBAC)不同。在基于属性的访问控制中,访问判定是基于请求者和资源具有的属性,请求者和资源在ABAC 中通过特性来标识,而不像IBAC那样只通过ID来标识,这使得ABAC具有足够的灵活性和可扩展性,同时使得安全的匿名访问成为可能,这在大型分布式环境下是十分重要的。
参考文献