黑客攻防从入门到精通(Web技术实战篇)
上QQ阅读APP看书,第一时间看更新

5.1 访问控制模型有哪些

访问控制模型是一种从访问控制的角度出发,描述安全系统,建立安全模型的方法。

访问控制是指主体依据某些控制策略或权限对客体本身或是其资源进行的不同授权访问。访问控制包括三个要素,即主体、客体和控制策略。

(1)主体(Subject):是可以对其他实体施加动作的主动实体,简记为S。有时我们也称为用户(User)或访问者(被授权使用计算机的人员),记为U。主体的含义是广泛的,可以是用户所在的组织(以后我们称为用户组)、用户本身,也可是用户使用的计算机终端、卡机、手持终端(无线)等,甚至可以是应用服务程序或进程。

(2)客体(Object):是接受其他实体访问的被动实体,简记为O。客体的概念也很广泛,凡是可以被操作的信息、资源、对象都可以被认为是客体。在信息社会中,客体可以是信息、文件、记录等的集合体,也可以是网路上的硬件设施、无线通信中的终端,甚至一个客体可以包含另外一个客体。

(3)控制策略: 是主体对客体的操作行为集和约束条件集,简记为KS。简单地讲,控制策略是主体对客体的访问规则集,这个规则集直接定义了主体对客体的作用行为和客体对主体的条件约束。访问策略体现了一种授权行为,也就是客体对主体的权限允许,这种允许不超越规则集,由其给出。

访问控制功能及原理如图5-1所示。

图5-1 访问控制功能及原理

访问控制系统三个要素之间的行为关系可以使用三元组(S, O, P)来表示,其中S表示主体,O表示客体,P表示许可。当主体S提出一系列正常的请求信息I1, …, In,通过信息系统的入口到达控制规则集KS监视的监控器,由KS判断是否允许或拒绝这次请求,因此这种情况下,必须先要确认是合法的主体而不是假冒的欺骗者,也就是对主体进行认证。主体通过验证,才能访问客体,但并不保证其有权限可以对客体进行操作。客体对主体的具体约束由访问控制表来控制实现,对主体的验证一般会鉴别用户的标识和用户密码。用户标识(User Identification, UID)是一个用来鉴别用户身份的字符串,每个用户有且只能有唯一的用户标识,以便与其他用户区别。当一个用户注册进入系统时,他必须提供其用户标识,然后系统执行一个可靠的审查来确信当前用户是对应用户标识的那个用户。

多级安全信息系统:由于用户的访问涉及访问的权限控制规则集合,对于将敏感信息与通常资源分开隔离的系统,我们称为多级安全信息系统。多级安全信息系统必然要将信息资源按照安全属性分级考虑,安全类别有两种类型,一种是有层次的安全级别(Hierarchical Classification),分为TS、S、C、R、U五级:绝密级别(Top Secret),秘密级别(Secret),机密级别(Confidential),限制级别(Restricted)和无级别级(Unclassified);另一种是无层次的安全级别,不对主体和客体按照安全类别分类,只是给出客体接受访问时可以使用的规则和管理者。图5-2所示为多级信息系统设计流程。

图5-2 多级安全信息系统设计流程

访问控制的实现首先要考虑对合法用户进行验证,其次是对控制策略的选用与管理,最后要对没有非法用户或是越权操作进行管理。所以,访问控制包括认证、控制策略实现和审计三方面的内容。

(1)认证:主体对客体的识别认证和客体对主体检验认证。主体和客体的认证关系是相互的,当一个主体受到另外一个客体的访问时,这个主体也就变成了客体。一个实体可以在某一时刻是主体,而在另一时刻是客体,这取决于当前实体的功能是动作的执行者还是动作的被执行者。

(2)控制策略的具体实现:如何设定规则集合从而确保正常用户对信息资源的合法使用,既要防止非法用户,也要考虑敏感资源的泄露;对于合法用户而言,更不能越权行使控制策略所赋予其权力以外的功能。

(3)审计:审计的重要意义在于,比如客体的管理者即管理员有操作赋予权,他有可能滥用这一权力,这是无法在策略中加以约束的。必须对这些行为进行记录,从而达到威慑和保证访问控制正常实现的目的。

访问控制模型一般包括主体、客体,以及为识别和验证这些实体的子系统和控制实体间访问的参考监视器。由于网络传输的需要,访问控制的研究发展很快,有许多访问控制模型被提出来。建立规范的访问控制模型,是实现严格访问控制策略所必需的。20世纪70年代,Harrison、Ruzzo和Ullman提出了HRU模型;接着,Jones等人在1976年提出了Take-Grant模型;随后,1985年美国军方提出可信计算机系统评估准则TCSEC,其中描述了两种著名的访问控制策略:自主访问控制模型(DAC)和强制访问控制模型(MAC)。基于角色的访问控制(RBAC)是由Ferraiolo和Kuhn在1992年提出的。考虑到网络安全和传输流,后来又提出了基于对象和任务的访问控制。

本节在探讨现有信息系统安全模型的基础上,主要分析信息流模型、Bell-LaPadula(BLP)模型和Biba模型等访问控制模型的优缺点,并针对信息安全的现实要求,对基于角色、对象、任务的模型做阐述。

5.1.1 自主访问控制模型

自主访问控制模型(Discretionary Access Control Model, DAC Model)是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其他用户。自主访问控制又称为任意访问控制。LINUX、UNIX、Windows NT或是SERVER版本的操作系统都提供自主访问控制的功能。在实现上,首先要对用户的身份进行鉴别,然后就可以按照访问控制列表所赋予用户的权限允许和限制用户使用客体的资源。主体控制权限的修改通常由特权用户或是特权用户(管理员)组实现。自主访问控制结构和流程如图5-3所示。

图5-3 自主访问控制结构和流程

自主访问控制对用户提供的这种灵活的数据访问方式,使得DAC广泛应用在商业和工业环境中。由于用户可以任意传递权限,那么,没有访问文件File1权限的用户A就能够从有访问权限的用户B那里得到访问权限或是直接获得文件File1。因此,DAC模型提供的安全防护还是相对比较低的,不能给系统提供充分的数据保护。

自主访问控制模型的特点是授权的实施主体(可以授权的主体、管理授权的客体、授权组)自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。

5.1.2 强制访问控制模型

为了实现比DAC更为严格的访问控制策略,美国政府和军方开发了各种各样的控制模型,这些方案或模型都有比较完善和详尽的定义。随后,逐渐形成强制访问的模型,并得到广泛的商业关注和应用。在DAC访问控制中,用户和客体资源都被赋予一定的安全级别,用户不能改变自身和客体的安全级别,只有管理员才能够确定用户和组的访问权限。和DAC模型不同的是,强制访问控制模型(Mandatory Access Control Model, MAC Model)是一种多级访问控制策略,它的主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。MAC对访问主体和受控对象标识两个安全标记:一个是具有偏序关系的安全等级标记;另一个是非等级分类标记。主体和客体在分属不同的安全类别时,都属于一个固定的安全类别SC, SC就构成一个偏序关系(如TS表示绝密级,就比密级S要高)。当主体S的安全类别为TS,而客体O的安全类别为S时,用偏序关系可以表述为SC(S)≥SC(O)。强制访问控制模型框架如图5-4所示。

图5-4 强制访问控制模型框架

考虑到偏序关系,主体对客体的访问主要有4种方式。

(1)向下读(read down, rd):主体安全级别高于客体信息资源的安全级别时允许查阅的读操作。

(2)向上读(read up, ru):主体安全级别低于客体信息资源的安全级别时允许的读操作。

(3)向下写(write down, wd):主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作。

(4)向上写(write up, wu):主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。

由于MAC通过分级的安全标签实现了信息的单向流通,因此它一直被军方采用,其中最著名的是Bell-LaPadula模型和Biba模型。Bell-LaPadula模型具有只允许向下读、向上写的特点,可以有效地防止机密信息向下级泄露;Biba模型则具有不允许向下读、向上写的特点,可以有效地保护数据的完整性。

下面我们对MAC模型中的几种主要模型:Lattice模型、Bell-LaPadula模型(BLP Model)和Biba模型(Biba Model)做简单的阐述。

1.Lattice模型

在Lattices模型中,每个资源和用户都服从于一个安全类别,这些安全类别我们称为安全级别,也就是在本章开始所描述的5个安全级别:TS, S, C, R, U。在整个安全模型中,信息资源对应一个安全类别,用户所对应的安全级别必须比可以使用的客体资源高才能进行访问。Lattices模型是实现安全分级的系统,这种方案非常适用于需要对信息资源进行明显分类的系统。

2.Bell-LaPadula模型

Lattice模型没有考虑特洛伊木马等不安全因素的潜在威胁,这样,低级安全用户有可能复制和拷贝比较敏感的信息。在军方术语中,特洛伊木马的最大作用是降低整个系统的安全级别。考虑到这种攻击行为,Bell和LaPadula设计了一种模型抵抗这种攻击,我们称为Bell-LaPadula模型。Bell-LaPadula模型可以有效防止低级用户和进程访问安全级别比他们高的信息资源。此外,安全级别高的用户和进程也不能向比他们安全级别低的用户和进程写入数据。

Bell-LaPadula模型是典型的信息保密性多级安全模型,主要应用于军事系统。Bell-LaPadula模型通常是处理多级安全信息系统的设计基础,客体在处理绝密级数据和秘密级数据时,要防止处理绝密级数据的程序把信息泄露给处理秘密级数据的程序。BLP模型的出发点是维护系统的保密性,有效地防止信息泄露,这与我们下面要讲的维护信息系统数据完整性的Biba模型正好相反。Bell-LaPadula模型框架如图5-5所示。

图5-5 Bell-LaPadula模型框架

Bell-LaPadula(以下简称BLP)模型建立的访问控制原则可以用两点简单表示:①无上读;②无下写。

BLP模型的安全策略包括强制访问控制和自主访问控制两部分。强制访问控制中的安全特性要求对给定安全级别的主体,仅被允许对同一安全级别和较低安全级别上的客体进行“读”;对给定安全级别上的主体,仅被允许向相同安全级别或较高安全级别上的客体进行“写”。自主访问控制允许用户自行定义是否让个人或组织存取数据。

BLP模型用偏序关系可以表示为:①rd,当且仅当SC(S)≥SC(O),允许读操作;②wu,当且仅当SC(S)≤SC(O),允许写操作。BLP模型“只能从下读、向上写”的规则忽略了完整性的重要安全指标,使非法、越权篡改成为可能。

BLP模型为通用的计算机系统定义了安全性属性,即以一组规则表示什么是一个安全的系统,尽管这种基于规则的模型比较容易实现,但是它不能更一般地以语义的形式阐明安全性的含义,因此,这种模型不能解释主——客体框架以外的安全性问题。例如,在一种远程读的情况下,一个高安全级主体向一个低安全级客体发出远程读请求,这种分布式读请求可以被看作是从高安全级向低安全级的一个消息传递,也就是“向下写”。另一个例子是如何处理可信主体的问题,可信主体可以是管理员或是提供关键服务的进程,如设备驱动程序和存储管理功能模块,这些可信主体若不违背BLP模型的规则就不能正常执行它们的任务,而BLP模型对这些可信主体可能引起的泄露危机没有任何处理和避免的方法。

3.Biba模型

在研究BLP模型的特性时发现,BLP模型只解决了信息的保密问题,其在完整性定义存在方面有一定缺陷。BLP模型没有采取有效的措施来制约对信息的非授权修改,因此使非法、越权篡改成为可能。考虑到上述因素,Biba模型模仿BLP模型的信息保密性级别,定义了信息完整性级别,在信息流向的定义方面不允许从级别低的进程到级别高的进程,也就是说用户只能向比自己安全级别低的客体写入信息,从而防止非法用户创建安全级别高的客体信息,避免越权、篡改等行为的产生。Biba模型可同时针对有层次的安全级别和无层次的安全种类。Biba模型框架如图5-6所示。

图5-6 Biba模型框架

Biba模型有以下两个主要特征。

(1)禁止向上“写”,这样使得完整性级别高的文件一定是由完整性级别高的进程所产生的,从而保证了完整性级别高的文件不会被完整性级别低的文件或完整性级别低的进程中的信息覆盖。

(2)Biba模型没有下“读”。

Biba模型用偏序关系可以表示为:①ru,当且仅当SC(S)≤SC(O),允许读操作;②wd,当且仅当SC(S)≥SC(O),允许写操作。

Biba模型是和BLP模型相对立的模型,Biba模型改正了被BLP模型忽略的信息完整性问题,但在一定程度上忽视了保密性。

MAC访问控制模型和DAC访问控制模型属于传统的访问控制模型。在实现上,MAC和DAC通常为每个用户赋予对客体的访问权限规则集,考虑到管理的方便,在这一过程中还经常将具有相同职能的用户聚为组,然后再为每个组分配许可权。用户自主地把自己所拥有的客体的访问权限授予其他用户的这种做法,其优点是显而易见的,但是如果企业的组织结构或是系统的安全需求处于变化的过程中时,那么就需要进行大量烦琐的授权变动,系统管理员的工作将变得非常繁重,更主要的是容易发生错误造成一些意想不到的安全漏洞。

5.1.3 基于角色的访问控制模型

考虑到上述因素,我们引入新的机制加以解决——基于角色的访问控制模型。角色(Role)是指一个可以完成一定事务的命名组,不同的角色通过不同的事务来执行各自的功能。事务(Transaction)是指一个完成一定功能的过程,可以是一个程序或程序的一部分。角色是代表具有某种能力的人或是某些属性的人的一类抽象,角色和组的主要区别在于:用户属于组是相对固定的,而用户能被指派到哪些角色则受时间、地点、事件等诸多因素影响。角色比组的抽象级别要高,角色和组的关系可以这样考虑:作为饰演的角色,我是一名学生,我就只能享有学生的权限(区别于老师),但是我又处于某个班级中,就同时只能享有本“组”组员的权限。

基于角色的访问控制模型(Role-based Access Model, RBAC Model)的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。这是因为在很多实际应用中,用户并不是可以访问的客体信息资源的所有者(这些信息属于企业或公司),这样的话,访问控制应该基于员工的职务而不是基于员工在哪个组或谁是信息的所有者,即访问控制是由各个用户在部门中所担任的角色来确定的,如一个学校可以有教工、老师、学生和其他管理人员等角色。基于角色的访问控制模型框架如图5-7所示。

图5-7 基于角色的访问控制模型框架

RBAC模型从控制主体的角度出发,根据管理中相对稳定的职权和责任来划分角色,将访问权限与角色相联系,这点与传统的MAC和DAC将权限直接授予用户的方式不同。通过给用户分配合适的角色,让用户与访问权限相联系,角色成为访问控制中访问主体和受控对象之间的一座桥梁。

角色可以看作是一组操作的集合,不同的角色具有不同的操作集,这些操作集由系统管理员分配给角色。在下面的实例中,我们假设Tch1、Tch2、Tch3…Tchi是对应的教师,Stud1、Stud 2、Stud3…Studj是相应的学生,Mng1、Mng 2、Mng 3…Mngk是教务处管理人员,那么老师的权限为Tch MN={查询成绩、上传所教课程的成绩},学生的权限为Stud MN={查询成绩、反映意见},教务处管理人员的权限为Mng MN={查询、修改成绩,打印成绩清单}。那么,依据角色的不同,每个主体只能执行自己所制定的访问功能。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制(RBAC)的根本特征,即依据RBAC策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能和责任被赋予相应的角色,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。

系统管理员负责授予用户各种角色的成员资格或撤销某用户具有的某个角色。例如,学校新入职一名教师Tchx,那么系统管理员只需将Tchx添加到教师这一角色的成员中即可,而无须对访问控制列表做改动。同一个用户可以是多个角色的成员,即同一个用户可以扮演多种角色,如一个用户可以是老师,同时也可以作为进修的学生。同样,一个角色可以拥有多个用户成员,这与现实是一致的,一个人可以在同一部门中担任多种职务,而且担任相同职务的可能不止一人。因此RBAC提供了一种描述用户和权限之间的多对多关系,角色可以划分成不同的等级,通过角色等级关系来反映一个组织的职权和责任关系,这种关系具有反身性、传递性和非对称性特点,通过继承行为形成了一个偏序关系,如MngMN>TchMN>Stud MN。RBAC中通常定义不同的约束规则来对模型中的各种关系进行限制,最基本的约束是“相互排斥”约束和“基本限制”约束,分别规定了模型中的互斥角色和一个角色可被分配的最大用户数。RBAC中引进了角色的概念,用角色表示访问主体具有的职权和责任,灵活地表达和实现了企业的安全策略,使系统权限管理在企业的组织视图这个较高的抽象集上进行,从而简化了权限设置的管理,从这个角度看,RBAC很好地解决了企业管理信息系统中用户数量多、变动频繁的问题。

相比较而言,RBAC是实施面向企业的安全策略的一种有效的访问控制方式,其具有灵活性、方便性和安全性的特点,目前在大型数据库系统的权限管理中得到普遍应用。角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色。用户与客体无直接联系,他只有通过角色才享有该角色所对应的权限,从而访问相应的客体。因此用户不能自主地将访问权限授给别的用户,这是RBAC与DAC的根本区别。RBAC与MAC的区别在于:MAC是基于多级安全需求的,而RBAC则不是。

5.1.4 基于任务的访问控制模型

上述几个访问控制模型都是从系统的角度出发去保护资源(控制环境是静态的),在进行权限的控制时没有考虑执行的上下文环境。数据库、网络和分布式计算的发展,组织任务进一步自动化,与服务相关的信息进一步计算机化,这促使人们将安全问题方面的注意力从独立的计算机系统中静态的主体和客体保护,转移到随着任务的执行而进行动态授权的保护上。此外,上述访问控制模型不能记录主体对客体权限的使用,权限没有时间限制,只要主体拥有对客体的访问权限,主体就可以无数次地执行该权限。考虑到上述原因,我们引入工作流的概念加以阐述。工作流是为完成某一目标而由多个相关的任务(活动)构成的业务流程。工作流所关注的问题是处理过程的自动化,对人和其他资源进行协调管理,从而完成某项工作。当数据在工作流中流动时,执行操作的用户在改变,用户的权限也在改变,这与数据处理的上下文环境相关。传统的DAC和MAC访问控制技术,则无法予以实现,RBAC模型也需要频繁地更换角色,且不适合工作流程的运转。这就迫使我们必须考虑新的模型机制,也就是基于任务的访问控制模型。

基于任务的访问控制模型(Task-based Access Control Model, TBAC Model)是从应用和企业层角度来解决安全问题,以面向任务的观点,从任务(活动)的角度来建立安全模型和实现安全机制,在任务处理的过程中提供动态实时的安全管理,如图5-8所示。

图5-8 基于任务的访问控制模型

在TBAC中,对象的访问权限控制并不是静止不变的,而是随着执行任务的上下文环境发生变化。TBAC首先考虑的是在工作流的环境中对信息的保护问题:在工作流环境中,数据的处理与上一次的处理相关联,相应的访问控制也如此,因而TBAC是一种上下文相关的访问控制模型。其次,TBAC不仅能对不同工作流实行不同的访问控制策略,而且能对同一工作流的不同任务实例实行不同的访问控制策略。从这个意义上说,TBAC是基于任务的,这也表明TBAC是一种基于实例(instance-based)的访问控制模型。

TBAC模型由工作流、授权结构体、受托人集、许可集四部分组成。

任务(task)是工作流程中的一个逻辑单元,是一个可区分的动作,与多个用户相关,也可能包括几个子任务。授权结构体是任务在计算机中进行控制的一个实例。任务中的子任务,对应于授权结构体中的授权步。

授权结构体(authorization unit)是由一个或多个授权步组成的结构体,它们在逻辑上是联系在一起的。授权结构体分为一般授权结构体和原子授权结构体。一般授权结构体内部的授权步依次执行,原子授权结构体内部的每个授权步紧密联系,其中任何一个授权步失败都会导致整个结构体的失败。

授权步(authorization step)表示一个原始授权处理步,是指在一个工作流程中对处理对象的一次处理过程。授权步是访问控制所能控制的最小单元,由受托人集(trustee-set)和多个许可集(permissions set)组成。

受托人集是可被授予执行授权步的用户的集合,许可集则是受托集的成员被授予授权步时拥有的访问许可。当授权步初始化以后,一个来自受托人集中的成员将被授予授权步,我们称这个受托人为授权步的执行委托者,该受托人执行授权步过程中所需许可的集合称为执行者许可集。授权步之间或授权结构体之间的相互关系称为依赖(dependency),依赖反映了基于任务的访问控制的原则。授权步的状态变化一般自我管理,依据执行的条件而自动变迁状态,但有时也可以由管理员进行调配。

一个工作流的业务流程由多个任务构成,而一个任务对应于一个授权结构体,每个授权结构体由特定的授权步组成。授权结构体之间以及授权步之间通过依赖关系联系在一起。在TBAC中,一个授权步的处理可以决定后续授权步对处理对象的操作许可,上述许可集合称为激活许可集。执行者许可集和激活许可集一起被称为授权步的保护态。

TBAC模型一般用五元组(S, O, P, L, AS)来表示,其中S表示主体,O表示客体,P表示许可,L表示生命期(lifecycle), AS表示授权步。由于任务都是有时效性的,所以在基于任务的访问控制中,用户对于授予他的权限的使用也是有时效性的。因此,若P是授权步AS所激活的权限,那么L则是授权步AS的存活期限。在授权步AS被激活之前,它的保护态是无效的,其中包含的许可不可使用。当授权步AS被触发时,它的委托执行者开始拥有执行者许可集中的权限,同时它的生命期开始倒计时。在生命期期间,五元组(S, O, P, L, AS)有效。生命期终止时,五元组(S, O, P, L, AS)无效,委托执行者所拥有的权限被回收。

TBAC的访问政策及其内部组件关系一般由系统管理员直接配置。通过授权步的动态权限管理,TBAC支持最小特权原则和最小泄露原则,在执行任务时只给用户分配所需的权限,未执行任务或任务终止后用户不再拥有所分配的权限;而且在执行任务过程中,当某一权限不再使用时,授权步自动将该权限回收。另外,对于敏感的任务需要不同的用户执行,这可通过授权步之间的分权依赖实现。

TBAC从工作流中的任务角度建模,可以依据任务和任务状态的不同,对权限进行动态管理。因此,TBAC非常适合分布式计算和多点访问控制的信息处理控制以及在工作流、分布式处理和事务管理系统中的决策制定。

5.1.5 基于对象的访问控制模型

DAC或MAC模型的主要任务都是对系统中的访问主体和受控对象进行一维的权限管理,当用户数量多、处理的信息数据量巨大时,用户权限的管理任务将变得十分繁重,并且用户权限难以维护,这就降低了系统的安全性和可靠性。对于海量的数据和差异较大的数据类型,需要用专门的系统和专门的人员加以处理,如果采用RBAC模型,安全管理员除了维护用户和角色的关联关系外,还需要将庞大的信息资源访问权限赋予有限个角色。当信息资源的种类增加或减少时,安全管理员必须更新所有角色的访问权限设置,而且,如果受控对象的属性发生变化,同时需要将受控对象不同属性的数据分配给不同的访问主体处理时,安全管理员将不得不增加新的角色,并且还必须更新原来所有角色的访问权限设置以及访问主体的角色分配设置,这样的访问控制需求变化往往是不可预知的,造成访问控制管理的难度和工作量巨大。在这种情况下,有必要引入基于受控对象的访问控制模型(Object-based Access Control Model, OBAC Model)。

控制策略和控制规则是OBAC访问控制系统的核心所在,在基于受控对象的访问控制模型中,将访问控制列表与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许对策略和规则进行重用、继承和派生操作。这样,不仅可以对受控对象本身进行访问控制,受控对象的属性也可以进行访问控制,而且派生对象可以继承父对象的访问控制设置,这对于信息量巨大、信息内容更新变化频繁的管理信息系统非常有益,可以减轻由于信息资源的派生、演化和重组等带来的分配、设定角色权限等的工作量,如图5-9所示。

图5-9 基于对象的访问控制模型

OBAC从信息系统的数据差异变化和用户需求出发,有效地解决了信息数据量大、数据种类繁多、数据更新变化频繁的大型管理信息系统的安全管理问题。OBAC从受控对象的角度出发,将访问主体的访问权限直接与受控对象相关联,一方面定义对象的访问控制列表,增、删、修改访问控制项易于操作,另一方面当受控对象的属性发生改变,或者受控对象发生继承和派生行为时,无须更新访问主体的权限,只需要修改受控对象的相应访问控制项即可,从而减少访问主体的权限管理,降低授权数据管理的复杂性。

5.1.6 信息流模型

从安全模型所控制的对象来看,一般有两种不同的方法来建立安全模型:一种是信息流模型;另一种是访问控制模型。

信息流模型主要着眼于对客体之间的信息传输过程的控制,通过对信息流向的分析可以发现系统中存在的隐蔽通道,并设法予以堵塞,如图5-10所示。信息流是信息根据某种因果关系的流动,信息流总是从旧状态的变量流向新状态的变量。信息流模型的出发点是彻底切断系统中信息流的隐蔽通道,防止对信息的窃取。隐蔽通道就是指系统中非正常使用的、不受强制访问控制正规保护的通信方式。隐蔽通道的存在显然危及系统敏感信息的保护。信息流模型需要遵守的安全规则:在系统状态转换时,信息流只能从访问级别低的状态流向访问级别高的状态。信息流模型实现的关键在于对系统的描述,即对模型进行彻底的信息流分析,找出所有的信息流,并根据信息流安全规则判断其是否为异常流。若是就反复修改系统的描述或模型,直到所有的信息流都不是异常流为止。信息流模型是一种基于事件或踪迹的模型,其焦点是系统用户可见的行为。现有的信息流模型无法直接指出哪种内部信息流是被允许的,哪种是不被允许的,因此在实际系统中的实现和验证中没有太多的帮助和指导。

图5-10 强制访问控制的信息流安全模型