绝大部分信息系统的安全目标都不会单一地局限于保密性或者完整性。由于具体应用对保密性与完整性都有一定的要求,因此应用中更多的需求是要求安全策略兼顾保密性和完整性两个方面,这样的策略称为混合型策略。本节将介绍混合型安全策略及几种典型的模型。
混合型策略的应用十分广泛,在许多领域,对于信息安全的要求既包括信息保密性要求也包括信息完整性要求,这就需要建立混合型的安全策略。具体的策略目标由具体的应用来决定。例如,在投资活动中存在很多利益冲突,为了有效防止不公平行为引发这些利益冲突,安全策略必须考虑到多方面因素。最为典型的混合型策略是Chinese Wall模型(CW模型)。另外,在医疗信息管理方面,混合型策略也得到了广泛的应用。同时,在很多领域的信息管理中还会用到基于创建者的访问控制模型以及基于角色的访问控制模型。
CW模型是由Brewer和Nash发布,兼顾了信息系统的保密性和完整性的多边安全(Multilateral Secure)模型,该模型依据用户以前的动作和行为,动态地进行访问控制,主要用于避免因为用户的访问行为所造成的利益冲突。CW模型经常被用于金融机构的信息处理系统,为市场分析家提供更好的服务。与BLP模型不同的是,访问数据不受限于数据的属性(密级),而是受限于主体获得了对哪些数据的访问权限。CW模型的设计思想是将一些可能会产生访问冲突的数据分成不同的数据集,并强制所有的主体最多只能访问一个数据集,而选择哪个数据集并未受到强制规则的限制,这种策略无法用BLP模型完整表述。
1.模型描述
CW模型最初是为投资银行设计的,但也可应用于其他相似的场合。CW安全策略的基础是客户可访问的信息不会与目前他们可支配的信息产生冲突。在投资银行中,一个银行会同时拥有多个互为竞争者的客户,一个交易员在为多个客户工作时,就有可能利用职务之便,使竞争中的一些客户得到利益,而使另一些客户受到损失。
CW模型反映的是一种对信息存取保护的商业需求。这种需求涉及一些投资、法律、医学或者财务公司等领域的商业利益冲突。当一个公司机构或者个人获得了在同一市场中竞争公司或者个人之间的敏感信息后,就会产生此类的利益冲突。Brewer和Nash提出了CW模型来模拟咨询公司的访问规则,分析师必须保证与不同客户的交易不会引起利益冲突。
例如,咨询公司会存储公司的咨询记录以及一些敏感信息,咨询师就利用这些记录来指导公司或者个人的投资计划。当一个咨询师同时为两家IT公司的投资计划进行咨询时,就可能存在潜在的利益冲突,因为这两家公司的投资可能会发生利益冲突。因此,分析师不能同时为两家同行业中竞争的企业提供咨询。
下面对这个策略进行描述:客体(C),表示某家公司的相关信息条目;客体集合(CD),表示某家公司的所有客体的集合;利益冲突(COI),是若干互相竞争的公司的客体集合。
例2-8 CW模型中规定,每个数据客体唯一对应一个客体集合,每个客体集合也唯一对应一个利益冲突类,但一个利益冲突类可以包含多个客体集合。例如,一家咨询公司可以接受多个领域中的若干公司作为客户,包括银行(工商银行、农业银行、建设银行)、手机厂商(诺基亚、三星)、计算机制造商(联想、宏碁),需要将这些公司的数据分类储存。以上公司数据根据CW模型可以分为7个客体集合、3个利益冲突类,分别为{工商银行,农业银行,建设银行}、{诺基亚,三星}、{联想,宏碁},如图2-10所示。
图2-10 CW模型数据库
在该模型中,咨询师作为主体只能访问同一个利益冲突类中的一个客体集合。也就是说,如果咨询师A访问了工商银行的相关信息,那么他就不能再去访问农业银行或建设银行的信息,其他两个利益冲突类中的客体集合也是如此,这样就避免了利益冲突的威胁。
当然,上述方案也存在不能解决的利益冲突,例如,咨询师A开始时为工商银行做证券业务工作,过了一段时间又转为建设银行做证券业务工作。虽然此时他已不再为工商银行工作,但是他仍然知道关于工商银行的一些敏感信息,此时就产生了利益冲突。为了解决此类的利益冲突,CW模型规定了以下规则。
CW模型简单安全条件:主体 s 可以读取客体 o ,当且仅当以下两个条件中的任何一个条件被满足。
· 条件1:存在另一个客体 o ′,它是 s 曾经访问过的客体,并且客体 o 和 o ′属于同一个客体集合。
· 条件2:对于所有的客体 o ′,如果它是 s 可以访问的客体,那么 o 和 o ′不属于同一个利益冲突类。
假设一个主体最初是没有访问过任何客体的,而且最初的一次访问是被允许的。在这样的假设条件下,由于图2-10中工商银行和建设银行的利益冲突类是相同的,那么上述例子中咨询师访问过工商银行的客体集合,因此他就不能再访问建设银行中的客体了。
另外,为了防止出现一个主体访问同一个利益冲突类中不同客体集合,就要求主体的个数至少要等于同一个利益冲突类中客体集合的个数。例如,银行利益冲突类中有3家银行,因此至少要有3名不同的咨询师为它们服务,这样才会避免利益冲突。
在实际的应用中,公司中并不是所有的数据都是保密的,有些数据是可以公开的,CW模型就将公司的数据分为不可公开的和可以公开的两类。前一类的数据要严格执行上述安全条件,后一类的数据则不必满足该条件。因此,上述的安全条件可以修改为:主体 s 可以读取客体 o ,当且仅当以下三个条件中任何一个条件被满足。
· 条件1:存在另一个客体 o ′,它是 s 曾经访问过的客体,并且客体 o 和 o ′属于同一个客体集合。
· 条件2:对于所有的客体 o ′,如果它是 s 可以访问的客体,那么客体 o 和 o ′不属于同一个利益冲突类。
· 条件3: o 是可以公开的客体。
假设两个咨询师A和B,他们分别为工商银行和建设银行的投资业务工作,同时都可以访问手机厂商诺基亚公司的数据客体,那么咨询师A就可以读出工商银行的数据客体,并且把它写入诺基亚的客体集合中,此时咨询师B就可以获取工商银行的信息,从而导致利益冲突。因此CW模型的安全条件需要进一步的扩展。CW模型的*-属性:主体 s 可以写客体 o ,当且仅当以下两个条件同时被满足。
· 条件1:CW模型的安全条件允许 s 读 o 。
· 条件2:对于所有的不能公开的客体 o ′,如果 s 能读 o ′,那么客体 o 和 o ′属于同一个客体集合。
因此,当A访问了关于工商银行不可公开的客体后,那么A就不能向诺基亚公司中的客体集合写入信息了,否则就违反了CW模型的*-属性。
2.BLP模型与CW模型的比较
BLP模型和CW模型存在本质上的区别。首先,BLP模型中的主体有安全标签,而CW模型的主体没有相关的安全标签。
其次,在CW模型中引入“曾经访问”这个概念,并以此为核心来定义安全条件,而BLP模型中并无此概念。
再次,BLP模型有其局限性,前者并不能表达一段时间内的状态变化。例如,由于咨询师A的个人原因要暂停工作,他的工作需要B来接手,那么B是否可以安全地接受A的工作呢?CW模型就可以通过B过去的访问记录来判断B是否有这个权限,而BLP模型就无法判断。
最后,BLP模型在初始状态就限制了主体所能访问客体的集合,除非类似于超级用户这样的权威人士改变主体或者客体的类别,否则这个访问的客体集合是不会改变的。而CW模型中,主体最初始的访问是被允许的,而后对访问客体的限制是随着该主体曾经访问过的客体数量的增加而逐渐增多的。在这方面,两种模型的规则是截然不同的。明确了CW模型的自身特点,在应用中才能恰当地使用该模型。
医疗信息系统所管理的病人医疗记录是一种拥有法律效力的文件,它不仅在医疗纠纷案件中,而且在许多其他法律程序中均会发挥重要作用。随着人们越来越重视个人隐私,以及相关法律的强制要求,所有能够用以标识病人信息的数据都应当受到严格的保护。医疗信息系统记载着病人敏感数据和个人隐私的医疗记录,一旦敏感数据被篡改或者个人隐私被泄露,就会给个人造成的无法弥补的伤害。因此,医疗信息系统安全策略要求综合保密性与完整性,它与投资公司的策略不同,它的重点是保护病人资料的保密性和完整性,而不是解决利益冲突。
对于医疗数据的保护目标实际上是要保证医疗数据不被篡改、不丢失及不被破坏。针对这三个目标,系统必须要建立相应的机制以完成并达到这些目标。信息系统的安全分为系统级安全与应用级安全两部分。在系统级安全中,主要处理硬件设备的安全运行、系统防火墙、病毒防护以及客户机系统恢复。应用级安全分为数据的存储安全、数据库权限控制、病人信息的防泄密要求等部分。这些安全机制都需要由具体的安全策略模型来指导,这里就以Anderson提出的医疗信息系统安全策略为例来说明。
例2-9 Anderson提出了用来保护医疗信息的安全策略模型,在该模型中,他定义了以下三类实体。
· 病人或者可以代替病人确认治疗方案的监护人是系统中的主体。
· 个人的健康信息是关于该个体的健康和治疗的信息,代表医疗记录。
· 医生是医疗工作人员,他在工作时有权限去访问个人健康信息。
该模型中规定了创建原则、删除原则、限制原则、汇聚原则和实施原则各一条,以及4条访问原则。下面依次进行说明。
该模型中规定了可以阅读医疗记录的人员列表,以及一个可以添加医疗记录的人员列表。被病人认可的医生可以阅读和添加医疗记录。审计员只能复制医疗记录,不能更改原始记录。在创建医疗记录时,创建记录的医生有权限访问该记录,相应的病人也有权限访问该记录。病人转诊时也需要建立相应记录,转诊医生也会被包含在访问控制列表中。下面分别来介绍该模型中的9条原则。
· 创建原则:医生和病人必须在访问控制列表中,才能打开该医疗记录,同样,转诊医生也必须在访问控制列表中才可以打开该转诊记录。
· 删除原则:医疗信息只有超出了适当的保存期限,才可以被删除,并且,医疗信息只能复制给在访问控制表中的人,否则会导致医疗信息的泄露。
· 限制原则:当一个医疗信息的访问控制列表是另一个医疗信息的访问控制列表的子集的时候,才可以把前者添加到后者中。
· 汇聚原则:要防止病人数据汇聚,当某人可以访问大量的医疗信息,还要求加入某病人的访问控制列表时,需要特别注意,需要向病人通知,否则可能会导致大量的医疗信息泄露。
· 实施原则:处理医疗记录的计算机系统必须有一个子系统来实施模型中规定的原则。原则实施的情况必须由独立的审计员来评估。
· 访问原则1:每个医疗记录都列举了可以阅读或者添加该记录信息的个体,称为访问控制列表,该模型中的访问控制就是依照此表进行的。该模型中规定只有医生和病人才有权限访问该病人的医疗信息。
· 访问原则2:访问控制列表中的医生可以把其他医生添加到这个访问控制列表。对病人实施的医疗方案必须是经过病人或者其监护人同意的,病人对于自己的医疗记录的修改和访问也应该是知情的。
· 访问原则3:病人的医疗信息被打开后,该病人就需要被告知自己医疗信息访问控制列表中访问者的名字。错误的医疗信息需要被更正,不能被删除,以便于后续的医疗审计工作,因此,所有的访问时间以及访问者都要有详细的记录。
· 访问原则4:医疗记录被访问的日期、时间以及访问者等相关信息都必须被记录下来,并一直保存直到该医疗记录被删除。
在实际应用中可以根据具体情况对安全模型进行调整,但医疗信息安全策略指导下的安全目标是基本相同的。遵循以上的模型实施原则可以有效地保证医疗信息系统中信息的安全性,因此该模型在医疗系统中得到了广泛应用。
在一些特定环境下的需求是比较特殊的,比如,文件的创建者将文件散发出去以后仍然需要保留对该文件的访问控制权。Graubert提出了基于创建者的访问控制(Originator Controlled Access Control,ORCON)策略,在该策略下,一个主体必须得到客体创建者的允许,才能将该客体的访问权赋给其他主体。
在实际应用中,一些特殊的机构需要对这类发送出去的文件进行控制,将这类需要保持控制的客体标记上ORCON,这样,没有发起标记的机构的允许,就不能将被标记的客体泄露给其他机构中的主体,并且被标记的客体的所有副本也必须满足同样的限制条件。
由于在自主型访问控制中客体的拥有者可以设置访问权限,因此客体的创建者就不能保证客体的副本的控制权赋予情况,也就不能保持客体源端的控制权。强制性访问控制模型在这方面也存在很大的局限性。在强制访问策略中,根据“需要知道”原则决定是否用类别来赋予主体访问的权限,该策略需要类别的表示交换中心。而创建类别并实施ORCON,要求对类别实施本地控制而不是集中控制,并且需要一个规则来规定谁有权限访问哪些类别。ORCON是由客体的创建者来决定哪些主体能够访问客体,访问控制完全由创建者来控制,没有集中的访问控制规则,因此用强制性访问控制规则来实施ORCON并不合适。基于创建者的访问控制模型则综合了自主访问控制和强制性访问控制来解决这一问题。
例2-10 主体 s 1 创建了客体 o ,主体 s 2 是客体 o 的拥有者。在基于创建者的访问控制中, s 2 不能改变 o 的权限列表中与主体的访问控制关系;如果客体 o 被复制到 o ′,那么 o 的访问控制权限也被复制到了 o ′上; s 1 可以改变任何主体与客体 o 的访问控制条件。
可以看出,该规则是强制访问控制和自主访问控制的混合策略,前两条规则强调了强制访问控制的部分,由系统来控制所有的访问;第三条规则中描述了创建者可以决定哪个主体能访问客体,这是属于自主访问控制的部分。该策略的核心内容是将与客体相关联的访问控制都由创建者来决定,客体的拥有者只有在该客体创建者的允许下才能决定访问客体的主体。
基于角色的访问控制(Role-Based Access Control,RBAC)使用基于角色的访问控制方法来决定访问权限。20世纪90年代出现了有关基于角色的访问控制策略的研究,该类型的访问控制目前已经成为国际上流行的安全访问控制方法之一。基于角色的访问控制通过分配和撤销角色来完成用户访问权限的授予和取消,并且提供了角色分配的规则。安全管理人员根据需要来定义不同的角色,并且设置对应的访问权限,而用户根据其需要完成的任务被指派担任不同的角色,角色与用户的关联实现了用户与访问权限的逻辑分离。
基于角色的访问控制模型中的基本元素包括用户、角色和权限,其基本思想是用户通过角色来获得所需的操作权限。每一个角色直观上来说可以被看作一个职务,代表着与该职务相关的一系列责任、义务及由此确定的相应权限。权限是可被角色实施的一个或者多个操作和控制。在该类型的访问控制系统中,用户作为某种角色的成员,其访问权限在管理上与其角色相关,该模型不是分配给用户访问与信息系统相关的客体的具体权限,而是给用户分配一个或者一组角色。该模型的这些特点大大简化了用户授权的管理,为定义和实施系统安全策略提供了极大的弹性。用户可以根据权限和资格被赋予不同的角色,并且用户角色易于重新分配,无须改变基本访问结构。如果有其他应用程序或者操作加入,可以向角色中添加或者删除权限。目前该机制已被广泛应用于各种系统。
例2-11 Alice是学校计算机系人事部门的主管,管理着计算机系的人事档案资料。当被调到外语系人事部门时,Alice就不能再访问计算机系的人事档案资料了。学校委派Bob作为计算机系人事部门的主管,Bob就具备了访问计算机系人事档案资料的权限。
在这种情况下,就是要根据主体的工作性质来确定其访问信息的能力。对于这类系统中的数据进行访问时,就需要将访问与用户的特定工作联系起来。对于客体的访问权限与主体本身无关而与主体担任的工作性质有关。基于角色的访问控制策略中规定了在这种情况下主体访问客体的一些规则。
· 规则1:如果一个主体可以执行某一个事务,那么这个主体就有一个活动角色,将事务的执行与角色绑定,而不是与用户本身绑定。
这里需要澄清两个关于角色的定义。活动角色是指主体当前担任的角色,授权角色是指主体被授权承担的角色集合。基于角色的访问控制策略中,基于用户所承担的责任和义务,用户可能被指定多个角色。这些角色并不一定同时都起作用,而是根据此时用户在系统中的当前状态、所承担的责任和权限来决定该激活哪些角色。在一个时刻某用户被激活的角色就是上面提到的该用户的活动角色。在任何时刻,用户所拥有的权限是该用户的当前活动角色所允许的所有权限的一个子集。
· 规则2:主体所承担的活动角色必须是经过授权的,主体不能承担未经授权的角色。
· 规则3:一个主体不能执行当前角色没有授权的事务。
基于角色的访问控制是一种强制型访问控制策略。满足以上规则所述的事务才能够被执行,也可以利用自主访问控制机制对事务的执行做进一步的限制。一些角色可能包含其他角色,此时,如果需要赋予相同的操作给大量的角色,并不需要单独赋给每一个角色。例如,为角色M赋予了某项访问权限,那么这项访问权限也同时被赋予了所有包含角色M的角色。
该策略还可以为职责分离规则建模,可以引入互斥的概念。如果某个角色集合是某个主体的授权集合,即被授权的角色集合,那么与该角色集合互斥的角色集合就是该主体不能承担的角色集合。这样就明确了主体可以担任的角色集合以及不能担任的角色集合,也就明确了该主体的职责与其不能执行的职责。
基于角色的访问控制利用系统角色来建立系统功能和数据库用户访问权限之间的联系,系统用户通过系统角色授权,构成一种典型信息系统的访问控制管理策略,为大型系统中的用户授权提供了一种便捷有效的管理手段,是一种适应企业管理规则变化的访问控制管理方案。该模式实现了访问控制的动态管理,适应了访问控制管理需求的复杂性,提高了访问控制管理的可维护性。