1、第六章访问控制技术第六章 访问控制技术本章内容o 6.1 访问控制的模型o 6.2 访问控制策略o 6.3 访问控制的实现o 6.4 安全级别与访问控制o 6.5 访问控制与授权o 6.6 访问控制与审计访问控制技术o国际标准化组织(ISO)在网络安全标准ISO7498-2中定义了5种层次型安全服务,即:身份认证服务、访问控制服务、数据保密服务、数据完整性服务和不可否认服务,因此,访问控制是信息安全的一个重要组成部分。o互联网络的蓬勃发展,为信息资源的共享提供了更加完善的手段,也给信息安全提供了更为丰富的研究材料。信息安全的目的是为了保护在信息系统中存储和处理的信息的安全,自20世纪70年代起
2、,Denning、Bell、Lapadula和Biba等人对信息安全模型进行了大量的基础研究,特别是可信计算机评估标准TCSEC(该准则以“阻止非授权用户对敏感信息的访问”为主要目标)问世以后,系统安全模型得到了广泛的研究,并在各种系统中实现了多种安全模型。o本章主要涉及以下几个方面:访问控制的模型;访问控制的策略;访问控制的的实现;安全级别与访问控制;访问控制与授权;访问控制与审计 6.1 访问控制的模型访问控制的模型本节提示:o 6.1.1自主访问控制模型(DAC Model)o 6.1.2强制访问控制模型(MAC Model)o 6.1.3基于角色的访问控制模型(RBAC Model)o
3、 6.1.4基于任务的访问控制模型(TBAC Model)o 6.1.5基于对象的访问控制模型(OBAC Model)o 6.1.6信息流模型访问控制的模式o 访问控制模型是一种从访问控制的角度出发,描述安全系统,建立安全模型的方法。o 访问控制是指主体依据某些控制策略或权限对客体本身或是其资源进行的不同授权访问。访问控制包括三个要素,即:主体、客体和控制策略。主体(Subject)o 主体:是指一个提出请求或要求的实体,是动作的发起者,但不一定是动作的执行者。主体可以是用户或其它任何代理用户行为的实体(例如进程、作业和程序)。这里规定实体(Entity)表示一个计算机资源(物理设备、数据文件
4、、内存或进程)或一个合法用户。主体可以对其它实体施加动作的主动实体,简记为S。有时也称为用户(User)或访问者(被授权使用计算机的人员),记为U。主体的含义是广泛的,可以是用户所在的组织(以后称为用户组)、用户本身,也可是用户使用的计算机终端、卡机、手持终端(无线)等,甚至可以是应用服务程序程序或进程。客体(Object)o 客体:是接受其他实体访问的被动实体,简记为O。客体的概念也很广泛,凡是可以被操作的信息、资源、对象都可以认为是客体。在信息社会中,客体可以是信息、文件、记录等的集合体,也可以是网路上的硬件设施,无线通信中的终端,甚至一个客体可以包含另外一个客体。控制策略o 控制策略:是
5、主体对客体的操作行为集和约束条件集,简记为KS。简单讲,控制策略是主体对客体的访问规则集,这个规则集直接定义了主体对可以的作用行为和客体对主体的条件约束。访问策略体现了一种授权行为,也就是客体对主体的权限允许,这种允许不超越规则集。三个要素之间的行为关系 o 访问控制系统三个要素之间的行为关系,可以使用三元组(S,O,P)来表示,其中S表示主体,O表示客体,P表示许可。当主体S提出一系列正常的请求信息I1,In,通过信息系统的入口到达控制规则集KS监视的监控器,由KS判断是否允许或拒绝这次请求,因此这种情况下,必须先要确认是合法的主体,而不是假冒的欺骗者,也就是对主体进行认证。主体通过验证,才
6、能访问客体,但并不保证其有权限可以对客体进行操作。客体对主体的具体约束由访问控制表来控制实现,对主体的验证一般会鉴别用户的标识和用户密码。用户标识(UID:User Identification)是一个用来鉴别用户身份的字符串,每个用户有且只能有唯一的一个用户标识,以便与其他用户区别。当一个用户注册进入系统时,他必须提供其用户标识,然后系统执行一个可靠的审查来确信当前用户是对应用户标识的那个用户。访问控制关系示意图 信息系统入口.监控器 客体信息 控制策略 KS 敏感区域 主体 O 客体 O I1 In 多级安全信息系统多级安全信息系统:由于用户的访问涉及到访问的权限控制规则集合,将敏感信息与
7、通常资源分开隔离的系统,称之为多级安全信息系统。多级安全系统必然要将信息资源按照安全属性分级考虑,安全类别有两种类型,一种是有层次的安全级别(Hierarchical Classification),分为TS,S,C,RS,U 5级,它们是绝密级别(Top Secret)、秘密级别(Secret)、机密级别(Confidential)、限制级别(Restricted)和无级别级(Unclassified);另一种是无层次的安全级别,不对主体和客体按照安全类别分类,只是给出客体接受访问时可以使用的规则和管理者。访问控制内容o访问控制的实现首先要考虑对合法用户进行验证,然后是对控制策略的选用与管理
8、,最后要对非法用户或是越权操作进行管理。所以,访问控制包括认证、控制策略实现和审计3方面的内容:o(1)认证:主体对客体的识别认证和客体对主体检验认证。主体和客体的认证关系是相互的,当一个主体受到另外一个客体的访问时,这个主体也就变成了客体。一个实体可以在某一时刻是主体,而在另一时刻是客体,这取决于当前实体的功能是动作的执行者还是动作的被执行者。o(2)控制策略的具体实现:体现在如何设定规则集合,从而确保正常用户对信息资源的合法使用,既要防止非法用户,也要考虑敏感资源的泄漏,对于合法用户而言,也不能越权行使控制策略所赋予其权利以外的功能。o(3)审计:审计的重要意义在于,比如客体的管理者即管理
9、员有操作赋予权,他有可能滥用这一权利,这是无法在策略中加以约束的。必须对这些行为进行记录,从而达到威慑和保证访问控制正常实现的目的。访问控制模型o访问控制安全模型一般包括主体、客体,以及为识别和验证这些实体的子系统和控制实体间访问的监视器。由于网络传输的需要,访问控制的研究发展很快,提出了许多访问控制模型。建立规范的访问控制模型,是实现严格访问控制策略所必须的。20世纪70年代,Harrison,Ruzzo和Ullman提出了HRU模型。接着,Jones等人在1976年提出了Take-Grant模型。随后,1985年美国军方提出可信计算机系统评估准则TCSEC,其中描述了两种著名的访问控制策略
10、:自主访问控制模型(DAC)和强制访问控制模型(MAC)。基于角色的访问控制(RBAC)由Ferraiolo和Kuhn在1992年提出的。考虑到网络安全和传输流,又提出了基于对象和基于任务的访问控制。o本节在探讨现有信息系统安全模型的基础上,主要分析信息流模型、Bell-LaPadula(BLP)模型和Biba模型等访问控制模型的优缺点,并针对信息安全的现实要求,也对基于角色、基于对象、基于任务的模型做了一定的阐述。6.1.1自主访问控制模型(DAC Model)o自主访问控制模型(Discretionary Access Control Model,DAC Model)是根据自主访问控制策略
11、建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其它用户。自主访问控制又称为任意访问控制。Linux,Unix、Windows NT或是Server版本的操作系统都提供自主访问控制的功能。在实现上,首先要对用户的身份进行鉴别,然后就可以按照访问控制列表所赋予用户的权限,允许和限制用户使用客体的资源。主体控制权限的修改通常由特权用户(管理员)或是特权用户组实现。o任意访问控制对用户提供的这种灵活的数据访问方式,使得DAC广泛应用在商业和工业环境中;由于用户可以任意传递权限,那么,没有访问某一文件权
12、限的用户A就能够从有访问权限的用户B那里得到访问权限或是直接获得该文件;因此,DAC模型提供的安全防护还是相对比较低的,不能给系统提供充分的数据保护。o自主访问控制模型的特点是授权的实施主体(可以授权的主体、管理授权的客体、授权组)自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主体的访问控制信息,从而达到对主体访问权限的限制目的。6.1.2强制访问控制模型(MAC Model)强制访问控制模型(Mandatory Access Control Model,MAC Model)最初是为了实现比DAC更为严格的访问控制策略,美国政府和军方开发
13、了各种各样的控制模型,这些方案或模型都有比较完善的和详尽的定义。随后,逐渐形成强制访问控制模型,并得到广泛的商业关注和应用。在DAC访问控制中,用户和客体资源都被赋予一定的安全级别,用户不能改变自身和客体的安全级别,只有管理员才能够确定用户和组的访问权限。和DAC模型不同的是,MAC是一种多级访问控制策略,它的主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。MAC对访问主体和受控对象标识两个安全标记:一个是具有偏序关系的安全等级标记;另一
14、个是非等级分类标记。主体和客体在分属不同的安全类别时,用SC表示它们构成的一个偏序关系,比如TS表示绝密级,就比密级S要高,当主体S的安全类别为TS,而客体O的安全类别为S时,用偏序关系可以表述为SC(S)SC(O)。主体对客体的访问根据偏序关系,主体对客体的访问主要有4种方式:o(1)向下读(rd,read down)n 主体安全级别高于客体信息资源的安全级别时允许查阅的读操作;o(2)向上读(ru,read up)n 主体安全级别低于客体信息资源的安全级别时允许的读操作;o(3)向下写(wd,write down)n 主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;o(4
15、)向上写(wu,write up)n 主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。MAC模型中的几种主要模型o 几种主要模型:Lattice模型,Bell-LaPadula模型和Biba模型o 由于MAC通过分级的安全标签实现了信息的单向流通,因此它一直被军方采用,其中最著名的是Bell-LaPadula模型和Biba模型:Bell-LaPadula模型具有只允许向下读、向上写的特点,可以有效地防止机密信息向下级泄露;Biba模型则具有不允许向下读、向上写的特点,可以有效地保护数据的完整性。1Lattice模型o 在Lattices模型中,每个资源和用户都服从于一个安全类
16、别。这些安全类别称为安全级别,也就是在本章开始所描述的5个安全级别:TS,S,C,R,U。在整个安全模型中,信息资源对应一个安全类别,用户所对应的安全级别必须比可以使用的客体资源高才能进行访问。Lattices模型是实现安全分级的系统,这种方案非常适用于需要对信息资源进行明显分类的系统。2Bell-LaPadula模型(1/3)o BLP(Bell and LaPadula,1976)模型是典型的信息保密性多级安全模型,主要应用于军事系统。Bell-LaPadula模型通常是处理多级安全信息系统的设计基础,客体在处理绝密级数据和秘密级数据时,要防止处理绝密级数据的程序把信息泄露给处理秘密级数据
17、的程序。BLP模型的出发点是维护系统的保密性,有效地防止信息泄露,这与后面讨论的维护信息系统数据完整性的Biba模型正好相反。Bell-LaPadula模型(2/3)o Lattice模型没有考虑特洛伊木马等不安全因素的潜在威胁,这样,低级安全用户有可能复制和拷贝比较敏感的信息。在军方术语中,特洛伊木马的最大作用是降低整个系统的安全级别。考虑到这种攻击行为,Bell和LaPadula设计了一种模型抵抗这种攻击,称为Bell-LaPadula模型。Bell-LaPadula模型可以有效防止低级用户和进程访问安全级别比他们高的信息资源,此外,安全级别高的用户和进程也不能向比他安全级别低的用户和进程
18、写入数据。上述Bell-LaPadula模型建立的访问控制原则可以用以下两点简单表示:无向上读;无向下写。Bell-LaPadula模型(3/3)oBLP模型的安全策略包括强制访问控制和自主访问控制两部分:强制访问控制中的安全特性要求对给定安全级别的主体,仅被允许对同一安全级别和较低安全级别上的客体进行“读”;对给定安全级别上的主体,仅被允许向相同安全级别或较高安全级别上的客体进行“写”;任意访问控制允许用户自行定义是否让个人或组织存取数据。Bell-LaPadula模型用偏序关系可以表示为:o rd,当且仅当SC(S)SC(O),允许读操作;o wu,当且仅当SC(S)SC(O),允许写操作
19、。o显然BLP模型只能“向下读、向上写”的规则忽略了完整性的重要安全指标,使非法、越权篡改成为可能。oBLP模型为通用的计算机系统定义了安全性属性,即以一组规则表示什么是一个安全的系统,尽管这种基于规则的模型比较容易实现,但是它不能更一般地以语义的形式阐明安全性的含义,因此,这种模型不能解释主-客体框架以外的安全性问题。例如,如何处理可信主体的问题,可信主体可以是管理员或是提供关键服务的进程,像设备驱动程序和存储管理功能模块,这些可信主体若不违背BLP模型的规则就不能正常执行它们的任务,而BLP模型对这些可信主体可能引起的泄露危机没有任何处理和避免的方法。3Biba模型o Biba模型(Bib
20、a,1977)在研究BLP模型的特性时发现,BLP模型只解决了信息的保密问题,其在完整性定义存在方面有一定缺陷。BLP模型没有采取有效的措施来制约对信息的非授权修改,因此使非法、越权篡改成为可能。考虑到上述因素,Biba模型模仿BLP模型的信息保密性级别,定义了信息完整性级别,在信息流向的定义方面不允许从级别低的进程到级别高的进程,也就是说用户只能向比自己安全级别低的客体写入信息,从而防止非法用户创建安全级别高的客体信息,避免越权、篡改等行为的产生。Biba模型可同时针对有层次的安全级别和无层次的安全种类。Biba模型(续)o Biba模型的两个主要特征是n 禁止向上“写”,这样使得完整性级别
21、高的文件是一定由完整性高的进程所产生的,从而保证了完整性级别高的文件不会被完整性低的文件或完整性低的进程中的信息所覆盖。n Biba模型没有下“读”。o Biba模型用偏序关系可以表示为:n ru,当且仅当SC(S)SC(O),允许读操作;n wd,当且仅当SC(S)SC(O),允许写操作。o Biba模型是和BLP模型相对立的模型,Biba模型改正了被BLP模型所忽略的信息完整性问题,但在一定程度上却忽视了保密性。o MAC访问控制模型和DAC访问控制模型属于传统的访问控制模型,对这两种模型研究的也比较充分。在实现上,MAC和DAC通常为每个用户赋予对客体的访问权限规则集,考虑到管理的方便,
22、在这一过程中还经常将具有相同职能的用户聚为组,然后再为每个组分配许可权。用户自主地把自己所拥有的客体的访问权限授予其它用户的这种做法,其优点是显而易见的,但是如果企业的组织结构或是系统的安全需求处于变化的过程中时,那么就需要进行大量繁琐的授权变动,系统管理员的工作将变得非常繁重,更主要的是容易发生错误造成一些意想不到的安全漏洞。考虑到上述因素,引入新的机制加以解决,即基于角色的访问控制模型。6.1.3基于角色的访问控制模型o 角色(Role)是指一个可以完成一定事务的命名组,不同的角色通过不同的事务来执行各自的功能。o 事务(Transaction)是指一个完成一定功能的过程,可以是一个程序或
23、程序的一部分。o 角色是代表具有某种能力的人或是某些属性的人的一类抽象,角色和组的主要区别在于:用户属于组是相对固定的,而用户能被指派到哪些角色则受时间、地点、事件等诸多因素影响。角色比组的抽象级别要高,角色和组的关系可以这样考虑,作为饰演的角色,我是一名学生,我就只能享有学生的权限(区别于老师),但是我又处于某个班级中,就同时能享有本“组”组员的权限。基于角色的访问控制模型o 基于角色的访问控制模型(Role-based Access Model,RBAC Model)的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。这是因为在很多实际应用中,用户并
24、不是可以访问的客体信息资源的所有者(这些信息属于企业或公司),这样的话,访问控制应该基于员工的职务而不是基于员工在哪个组或谁是信息的所有者,即访问控制是由各个用户在部门中所担任的角色来确定的,例如,一个学校可以有教工、老师、学生和其他管理人员等角色。o RBAC从控制主体的角度出发,根据管理中相对稳定的职权和责任来划分角色,将访问权限与角色相联系,这点与传统的MAC和DAC将权限直接授予用户的方式不同;通过给用户分配合适的角色,让用户与访问权限相联系。角色成为访问控制中访问主体和受控对象之间的一座桥梁。基于角色的访问控制模型o 角色可以看作是一组操作的集合,不同的角色具有不同的操作集,这些操作
25、集由系统管理员分配给角色。在下面的实例中,我们假设Tch 1,Tch 2,Tch 3,Tch i是对应的教师,Stud 1,Stud 2,Stud3,Stud j是相应的学生,Mng 1,Mng 2,Mng 3,Mng k是教务处管理人员,那么老师的权限为Tch MN=查询成绩、上传所教课程的成绩;学生的权限为Stud MN=查询成绩、反映意见;教务管理人员的权限为Mng MN=查询、修改成绩、打印成绩清单。那么,依据角色的不同,每个主体只能执行自己所规定的访问功能。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制(RBAC)的根本特征,即
26、:依据RBAC策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能和责任被赋予相应的角色,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。基于角色的访问控制模型o在该例中,系统管理员负责授予用户各种角色的成员资格或撤消某用户具有的某个角色。例如学校新进一名教师Tch x,那么系统管理员只需将Tch x添加到教师这一角色的成员中即可,而无需对访问控制列表做改动。同一个用户可以是多个角色的成员,即同一个用户可以扮演多种角色,比如一个用户可以是老师,同时也可以作为进修的学生。同样,一个角色可以拥有多个用户成员,这与现实是一致的,一个人可以在同一部门中担任多种职
27、务,而且担任相同职务的可能不止一人。因此RBAC提供了一种描述用户和权限之间的多对多关系,角色可以划分成不同的等级,通过角色等级关系来反映一个组织的职权和责任关系,这种关系具有反身性、传递性和非对称性特点,通过继承行为形成了一个偏序关系,比如Mng MNTch MNStud MN。RBAC中通常定义不同的约束规则来对模型中的各种关系进行限制,最基本的约束是“相互排斥”约束和“基本限制”约束,分别规定了模型中的互斥角色和一个角色可被分配的最大用户数。基于角色的访问控制模型oRBAC中引进了角色的概念,用角色表示访问主体具有的职权和责任,灵活地表达和实现了企业的安全策略,使系统权限管理在企业的组织
28、视图这个较高的抽象集上进行,从而简化了权限设置的管理,从这个角度看,RBAC很好地解决了企业管理信息系统中用户数量多、变动频繁的问题。o相比较而言,RBAC是实施面向企业的安全策略的一种有效的访问控制方式,它具有灵活性、方便性和安全性的特点,目前在大型数据库系统的权限管理中得到普遍应用。角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色。用户与客体无直接联系,他只有通过角色才享有该角色所对应的权限,从而访问相应的客体。因此用户不能自主地将访问权限授给别的用户,这是RBAC与DAC的根本区别所在。RBAC与MAC的区别在于:MAC是基于多级安全需求的
29、,而RBAC则不是。o上述几个访问控制模型都是从系统的角度出发去保护资源(控制环境是静态的),在进行权限的控制时没有考虑执行的上下文环境。数据库、网络和分布式计算的发展,组织任务进一步自动化,与服务相关的信息进一步计算机化,这促使人们将安全问题方面的注意力从独立的计算机系统中静态的主体和客体保护,转移到随着任务的执行而进行动态授权的保护上。此外,上述访问控制模型不能记录主体对客体权限的使用,权限没有时间限制,只要主体拥有对客体的访问权限,主体就可以无数次地执行该权限。考虑到上述原因,引入工作流的概念加以阐述。工作流是为完成某一目标而由多个相关的任务(活动)构成的业务流程。工作流所关注的问题是处
30、理过程的自动化,对人和其他资源进行协调管理,从而完成某项工作。当数据在工作流中流动时,执行操作的用户在改变,用户的权限也在改变,这与数据处理的上下文环境相关。传统的DAC和MAC访问控制技术,则无法予以实现,上述的RBAC模型,也需要频繁地更换角色,且不适合工作流程的运转。这就迫使人们必须考虑新的模型机制,也就是基于任务的访问控制模型。6.1.4基于任务的访问控制模型o 基于任务的访问控制模型(Task-based Access Control Model,TBAC Model)是从应用和企业层角度来解决安全问题,以面向任务的观点,从任务(活动)的角度来建立安全模型和实现安全机制,在任务处理的
31、过程中提供动态实时的安全管理。o 在TBAC中,对象的访问权限控制并不是静止不变的,而是随着执行任务的上下文环境发生变化。TBAC首要考虑的是在工作流的环境中对信息的保护问题:在工作流环境中,数据的处理与上一次的处理相关联,相应的访问控制也如此,因而TBAC是一种上下文相关的访问控制模型。其次,TBAC不仅能对不同工作流实行不同的访问控制策略,而且还能对同一工作流的不同任务实例实行不同的访问控制策略。从这个意义上说,TBAC是基于任务的,这也表明,TBAC是一种基于实例(Instance-Based)的访问控制模型。TBAC模型组成(1/3)TBAC模型由工作流、授权结构体、受托人集、许可集4
32、部分组成。o任务(Task)是工作流程中的一个逻辑单元,是一个可区分的动作,与多个用户相关,也可能包括几个子任务。o授权结构体(Authorization Unit)是由一个或多个授权步组成的结构体,它们在逻辑上是联系在一起的。授权结构体分为一般授权结构体和原子授权结构体。o授权步(Authorization Step)表示一个原始授权处理步,是指在一个工作流程中对处理对象的一次处理过程。授权步是访问控制所能控制的最小单元,由受托人集(Trustee Set)和多个许可集(Permissions Set)组成。o受托人集是可被授予执行授权步的用户的集合,许可集则是受托集的成员被授予授权步时拥有
33、的访问许可。当授权步初始化以后,一个来自受托人集中的成员将被授予授权步,称这个受托人为授权步的执行委托者,该受托人执行授权步过程中所需许可的集合称为执行者许可集。授权步之间或授权结构体之间的相互关系称为依赖(Dependency),依赖反映了基于任务的访问控制的原则。授权步的状态变化一般自我管理,依据执行的条件而自动变迁状态,但有时也可以由管理员进行调配。TBAC模型组成(2/3)o 一个工作流的业务流程由多个任务构成。而一个任务对应于一个授权结构体,每个授权结构体由特定的授权步组成。授权结构体之间以及授权步之间通过依赖关系联系在一起。在TBAC中,一个授权步的处理可以决定后续授权步对处理对象
34、的操作许可,上述许可集合称为激活许可集。执行者许可集和激活许可集一起称为授权步的保护态。TBAC模型组成(3/3)oTBAC模型一般用5元组(S,O,P,L,AS)来表示,其中S表示主体,O表示客体,P表示许可,L表示生命期(Lifecycle),AS表示授权步。由于任务都是有时效性的,所以在基于任务的访问控制中,用户对于授予他的权限的使用也是有时效性的。因此,若P是授权步AS所激活的权限,那么L则是授权步AS的存活期限。在授权步AS被激活之前,它的保护态是无效的,其中包含的许可不可使用。当授权步AS被触发时,它的委托执行者开始拥有执行者许可集中的权限,同时它的生命期开始倒记时。在生命期期间,
35、5元组有效。生命期终止时,五元组无效,委托执行者所拥有的权限被回收。oTBAC的访问政策及其内部组件关系一般由系统管理员直接配置。通过授权步的动态权限管理,TBAC支持最小特权原则和最小泄漏原则,在执行任务时只给用户分配所需的权限,未执行任务或任务终止后用户不再拥有所分配的权限;而且在执行任务过程中,当某一权限不再使用时,授权步自动将该权限回收;另外,对于敏感的任务需要不同的用户执行,这可通过授权步之间的分权依赖实现。oTBAC从工作流中的任务角度建模,可以依据任务和任务状态的不同,对权限进行动态管理。因此,TBAC非常适合分布式计算和多点访问控制的信息处理控制以及在工作流、分布式处理和事务管
36、理系统中的决策制定。6.1.5基于对象的访问控制模型o基于对象的访问控制(Object-based Access Control Model,OBAC Model):DAC或MAC模型的主要任务都是对系统中的访问主体和受控对象进行一维的权限管理,当用户数量多、处理的信息数据量巨大时,用户权限的管理任务将变得十分繁重,并且用户权限难以维护,这就降低了系统的安全性和可靠性。对于海量的数据和差异较大的数据类型,需要用专门的系统和专门的人员加以处理,要是采用RBAC模型的话,安全管理员除了维护用户和角色的关联关系外,还需要将庞大的信息资源访问权限赋予有限个角色。当信息资源的种类增加或减少时,安全管理员
37、必须更新所有角色的访问权限设置,而且,如果受控对象的属性发生变化,同时需要将受控对象不同属性的数据分配给不同的访问主体处理时,安全管理员将不得不增加新的角色,并且还必须更新原来所有角色的访问权限设置以及访问主体的角色分配设置,这样的访问控制需求变化往往是不可预知的,造成访问控制管理的难度和工作量巨大。在这种情况下,有必要引入基于受控对象的访问控制模型。基于对象的访问控制模型(续)o控制策略和控制规则是OBAC访问控制系统的核心所在,在OBAC模型中,将访问控制列表与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许对策略和规则进行重用、继承和派生
38、操作。这样,不仅可以对受控对象本身进行访问控制,受控对象的属性也可以进行访问控制,而且派生对象可以继承父对象的访问控制设置,这对于信息量巨大、信息内容更新变化频繁的管理信息系统非常有益,可以减轻由于信息资源的派生、演化和重组等带来的分配、设定角色权限等的工作量。oOBAC从信息系统的数据差异变化和用户需求出发,有效地解决了信息数据量大、数据种类繁多、数据更新变化频繁的大型管理信息系统的安全管理。OBAC从受控对象的角度出发,将访问主体的访问权限直接与受控对象相关联,一方面定义对象的访问控制列表,增、删、修改访问控制项易于操作,另一方面,当受控对象的属性发生改变,或者受控对象发生继承和派生行为时
39、,无须更新访问主体的权限,只需要修改受控对象的相应访问控制项即可,从而减少了访问主体的权限管理,降低了授权数据管理的复杂性。6.1.6信息流模型 o从安全模型所控制的对象来看,一般有两种不同的方法来建立安全模型:一种是信息流模型;另一种是访问控制模型。o信息流模型主要着眼于对客体之间的信息传输过程的控制,通过对信息流向的分析可以发现系统中存在的隐蔽通道,并设法予以堵塞。信息流是信息根据某种因果关系的流动,信息流总是从旧状态的变量流向新状态的变量。信息流模型的出发点是彻底切断系统中信息流的隐蔽通道,防止对信息的窃取。隐蔽通道就是指系统中非正常使用的、不受强制访问控制正规保护的通信方式。隐蔽通道的
40、存在显然危及系统敏感信息的保护。信息流模型需要遵守的安全规则是:在系统状态转换时,信息流只能从访问级别低的状态流向访问级别高的状态。信息流模型实现的关键在于对系统的描述,即对模型进行彻底的信息流分析,找出所有的信息流,并根据信息流安全规则判断其是否为异常流。若是就反复修改系统的描述或模型,直到所有的信息流都不是异常流为止。信息流模型是一种基于事件或踪迹的模型,其焦点是系统用户可见的行为。现有的信息流模型无法直接指出哪种内部信息流是被允许的,哪种是不被允许的,因此在实际系统中的实现和验证中没有太多的帮助和指导。6.2 访问控制策略访问控制策略 本节提示o 6.2.1安全策略o 6.2.2基于身份
41、的安全策略o 6.2.3基于规则的安全策略6.2.1安全策略o 安全策略建立的需要和目的安全策略建立的需要和目的安全的领域非常广泛繁杂,构建一个可以抵御风险的安全框架涉及很多细节。就算是最简单的安全需求,也可能会涉及到密码学、代码重用等实际问题。做一个相当完备的安全分析不得不需要专业人员给出许许多多不同的专业细节和计算环境,这通常会使专业的框架师也望而生畏。如果能够提供一种恰当的、符合安全需求的整体思路,就会使这个问题容易的多,也更加有明确的前进方向。能够提供这种帮助的就是安全策略。一个恰当的安全策略总会把自己关注的核心集中到最高决策层认为必须值得注意的那些方面。概括地说,一种安全策略实质上表
42、明:当设计所涉及的那个系统在进行操作时,必须明确在安全领域的范围内,什么操作是明确允许的,什么操作是一般默认允许的,什么操作是明确不允许的,什么操作是默认不允许的。不要求安全策略作出具体的措施规定以及确切说明通过何种方式能够够达到预期的结果,但是应该向安全构架的实际搭造者们指出在当前的前提下,什么因素和风险才是最重要的。就这个意义而言,建立安全策略是实现安全的最首要的工作,也是实现安全技术管理与规范的第一步。安全策略的具体含义和实现 o安全策略的前提是具有一般性和普遍性,如何能使安全策略的这种普遍性和所要分析的实际问题的特殊性相结合,即,使安全策略与当前的具体应用紧密结合是面临的最主要的问题。
43、控制策略的制定是一个按照安全需求、依照实例不断精确细化的求解过程。安全策略的制订者总是试图在安全设计的每个设计阶段分别设计和考虑不同的安全需求与应用细节,这样可以将一个复杂的问题简单化。但是设计者要考虑到实际应用的前瞻性,有时候并不知道这些具体的需求与细节是什么;为了能够描述和了解这些细节,就需要在安全策略的指导下,对安全涉及到的领域和相关做细致的考查和研究。借助这些手段能够迫使人们增加对于将安全策略应用到实际中、或是强加于实际应用而导致的问题的认知。总之,对上述问题认识的越充分,能够实现和解释的过程就更加精确细化,这一精确细化的过程有助于帮助建立和完善从实际应用中提炼抽象出来的、用确切语言表
44、述的安全策略。反过来,这个重新表述的安全策略就能够更易于去完成安全框架中所设定的细节。oISO 7498标准是目前国际上普遍遵循的计算机信息系统互连标准,1989年12月国际标准化组织(ISO)颁布了该标准的第二部分,即ISO 7498-2,并首次确定了开放系统互连(OSI)参考模型的信息安全体系结构。我国将其作为GB/T 9387-2标准,并予以执行。按照ISO 7498-2中OSI安全体系结构中的定义,访问控制的安全策略有以下两种实现方式:基于身份的安全策略和基于规则的安全策略。目前使用的两种安全策略建立的基础都是授权行为。就其形式而言,基于身份的安全策略等同于DAC安全策略,基于规则的安
45、全策略等同于MAC安全策略。安全策略的实施原则 安全策略的制定实施也是围绕主体、客体和安全控制规则集三者之间的关系展开的。o 最小特权原则:最小特权原则是指主体执行操作时,按照主体所需权利的最小化原则分配给主体权力。最小特权原则的优点是最大限度地限制了主体实施授权行为,可以避免来自突发事件、错误和未授权用主体的危险。也就是说,为了达到一定目的,主体必须执行一定操作,但他只能做他所被允许做的,其它除外。o 最小泄漏原则:最小泄漏原则是指主体执行任务时,按照主体所需要知道的信息最小化的原则分配给主体权力。o 多级安全策略:多级安全策略是指主体和客体间的数据流向和权限控制按照安全级别的绝密(TS)、
46、秘密(S)、机密(C)、限制(RS)和无级别(U)5级来划分。多级安全策略的优点是避免敏感信息的扩散。具有安全级别的信息资源,只有安全级别比他高的主体才能够访问。6.2.2基于身份的安全策略 基于身份的安全策略(Identification-based Access Control Policies,IDBACP)的目的是过滤对数据或资源的访问,只有能通过认证的那些主体才有可能正常使用客体的资源。基于身份的安全策略的实例见图6.2.1,这是以访问控制矩阵的形式实现的。基于身份的策略包括基于个人的策略和基于组的策略。基于个人的策略 基于个人的策略(Individual-based Access
47、Control Policies,IDLBACP)是指以用户为中心建立的一种策略,这种策略由一些列表来组成,这些列表限定了针对特定的客体,哪些用户可以实现何种策操作行为。对文件2而言,授权用户B有只读的权利,授权用户A则被允许读和写;对授权用户N而言,具有对文件1、2和文件N的读写权利。基于组的策略 o基于组的策略(Group-based Access Control Policies,GBACP)是基于个人的策略的扩充,指一些用户被允许使用同样的访问控制规则访问同样的客体。授权用户A对文件1有读和写的权利,授权用户N同样被允许读和写对文件1,则对于文件1而言,A和N基于同样的授权规则;对于所
48、有的文件而言,从文件1、2到N,授权用户A和N都基于同样的授权规则,那么A和N可以组成一个用户组G。o基于身份的安全策略有两种基本的实现方法:能力表和访问控制列表。这两种实现机制将在下一节阐述,这是按照被授权访问的信息为访问者所拥有,还是被访问数据的一部分而区分的。6.2.3基于规则的安全策略o 基于规则的安全策略中,授权通常依赖于敏感性。在一个安全系统中,数据或资源应该标注安全标记,代表用户进行活动的进程可以得到与其原发者相应的安全标记。o 基于规则的安全策略在实现上,由系统通过比较用户的安全级别和客体资源的安全级别来判断是否允许用户可以进行访问。6.3 访问控制的实现访问控制的实现 本节提
49、示o 6.3.1访问控制的实现机制o 6.3.2访问控制表o 6.3.3访问控制矩阵o 6.3.4访问控制能力列表o 6.3.5访问控制安全标签列表o 6.3.6访问控制实现的具体类别6.3.1访问控制的实现机制建立访问控制模型和实现访问控制都是抽象和复杂的行为,实现访问的控制不仅要保证授权用户使用的权限与其所拥有的权限对应,制止非授权用户的非授权行为;还要保证敏感信息的交叉感染。为了便于讨论这一问题,以文件的访问控制为例对访问控制的实现做具体说明。通常用户访问信息资源(文件或是数据库),可能的行为有读、写和管理。为方便起见,用Read或是R表示读操作,Write或是W表示写操作,Own或是O
50、表示管理操作。之所以将管理操作从读写中分离出来,是因为管理员也许会对控制规则本身或是文件的属性等做修改,也就是修改在下面提到的访问控制表。6.3.2访问控制表o 访问控制表(Access Control Lists,ACLs)是以文件为中心建立的访问权限表,简记为ACLs。目前,大多数PC、服务器和主机都使用ACLs作为访问控制的实现机制。访问控制表的优点在于实现简单,任何得到授权的主体都可以有一个访问表,例如授权用户A1的访问控制规则存储在文件File 1中,A1的访问规则可以由A1下面的权限表ACLs A1来确定,权限表限定了用户UserA1的访问权限。访问控制表的实现示例 6.3.3访问