然而,如果Lipner模型只是参照Bell-LaPadula模型建立的话,在实际应用中对于完整性一随需求是得不到很好满足的。因此,为了修正这个问题,Lipner模型同时结合了Biba模型的特点。
(2) Lipner模型
Lipner模型通过结合Biba模型加强了对完整性需求的满足。该模型对安全等级进行了扩充,增加了三个完整性安全等级,由高级别到低级别分别为:系统程序(ISP),表示系统程序的等级;操作级(IO),表示生产程序和开发软件的等级;系统低层(ISL),表示用户登录时的等级。并用两个完整性类别来区分生产数据及软件和开发数据及软件:开发(ID),表示开发实体;产品(IP),表示生产实体。同时还定义了另外3个类别,分别是:生产(SP),表示生产程序和生产数据;开发(SD),表示处于正在开发、测试的过程中但并未使用的生产程序;系统开发(SSD),表示处于正在开发的过程中但还未在生产中使用的系统程序。
Lipner按照不同类型的用户各自的工作需要赋予他们不同的安全许可及完整性许可,如表2-8所示;同时还分配给不同类别的客体不同的安全等级及完整性等级,如表2-9所示。
通过上述描述明确了Lipner模型对于商业模型所定义的需求,下面就通过例2-9来说明这些需求的实际应用。
例2-9 M是一家开发并生产IT产品的公司,公司中的员工拥有不同的安全级别,以便有效地保护公司中的数据。员工主要包括以下几类:公司中的普通员工用A来表示,开发人员用B来表示,系统程序人员用C来表示,系统管理人员和审计人员用D来表示,系统控制人员用E来表示。根据Lipner模型的需求,公司在安全开发生产中必须满足以下要求:
? 只有用户B具备对开发实体的写权限。
? 只有用户C具备对生产实体的写权限。
? 开发系统上的程序必须经过特殊处理过程才能安装在生产系统上。
? 只有用户E才能在必要时使用对程序的降级权限,并且用户E的所有操作需要记入日志。 ? 用户D可以访问系统状态和已生成的系统日志。
Lipner将Bell-LaPadula模型与Biba模型进行了综合,取得了较好的效果。虽然针对的目的不同,Bell-LaPadula模型仍然可以满足许多商业性的需求,但Bell-LaPadula模型的本质是限制信息的流向。 2.4.4 Clark-Wilson完整性模型
Clark-Wilson完整性模型是由Clark和Wilson研究出的一种防止未授权的数据修改、欺骗和错误的模型,它与先前的模型有明显的不同。Clark和Wilson总结了军事领域和商业领域对信息安全的不同要求,认为信息的完整性在商业应用中有更重要的意义,并且定义了一个适用于商业信息安全的形式化模型。这种模型采用事务作为规划的基础,以事务处理为基本操作,更适用于商业系统的完整性保护。
(1)模型描述
在这里,完整性包含了两个属性。首先,保证系统数据的完整性。这个属性是要求系统保证数据的一致性,即在每一次操作前后,都要保持一致性条件。一个良定义的事务处理就是这样的一系列操作,使系统从一个一致性状态转移到另一个一致性状态。其次,保证对这些数据操作的完整性。这个属性是建立在职责分离的定义之上。在商业领域中,一项商业事务通常是由多个工作人员经过多个步骤共同完成的,否则,就极容易发生由于单个人员的舞弊而造成巨大损失的情况。在至少两个工作人员共同完成的情况下,如果要进行数据破坏就需要至少两个不同的人员共同犯错,或者他们合谋进行破坏,这种多个人员分职责共同处理事务的形式大大降低了发生该类损失的可能性。责任分离规则就是要求事务的实现者和检验事务处理是否被正确实现的检验者是不同的人员。那么,在一次事务处理中,至少要有两个人参与才能改变数据。
例2-10 银行中的存款业务。存入金额为n的存款操作,必须保证操作后的金额总数等于操作前的金额数加上存入的金额数,即如果操作前账户上的存款金额为m,那么操作完成后账户上的金额数为m+n。这样就是保证了一致性条件。
Clark-Wilson模型将系统中的数据定义为两种类型:有约束数据项(CDI ),它们是系统完整性模型应用到的数据项,即可信数据;无约束数据项(UDI ),与CDI相反,它们是不属于完整性控制的数据。CDI集合和UDI集合可以用来划分模型系统中的所有数据集合。
Clark-Wilson模型还在系统中定义了两种过程:转换过程(TP)的作用是把UDI从一种合法状态转换到另一种合法状态,是良定义的事务处理;完整性验证过程(IVP)用来检验CDI是否符合完整性约束。如果符合,则称系统处于一个有效状态。Clark-Wilson模型经常把它应用在与审计相关的过程中。
Clark-Wilson模型中的数据不能由用户直接修改,必须由可信任的转换过程完成修改,可信的数据项需要通过TP来进行操作,并且数据状态的完整性还需要通过IVP来进行检验。
对应到例2-10中,银行中的存储业务,账户结算就是CDI,检查账户的结算就是IVP,存入、取出和转账都属于TP。银行的检查人员必须验证银行检验账户结算的过程是否是正确的过程,以保证账户的正确管理。
Clark-Wilson安全策略下系统的安全特性是通过认证和实施规则来控制的,这些规则说明了Clark-Wilson安全策略下各元素之间的交互关系。首先介绍5条认证规则。
? 认证规则1:任意IVP在运行时,它必须确保所有的CDI处于有效状态。
? 认证规则2:对于相关的CDI,TP必须保证这些有效的CDI转换后的状态也是有效的。
例如,某TP已经被证明可以进行银行的股票投资业务,但它可能没有考虑银行结算,如果该TP被允许执行可能会导致银行结算出错,也就是操作后的CDI出错,这样的TP就应该被阻止。
? 认证规则3:访问关系必须满足职责分离的要求。
例如,某用户是银行的合法用户,但当他要求银行提供服务时,必须证明自身对应系统中的身份是合法的。
? 认证规则4:所有的TP必须被认证,以保证数据转换为CDI之前被证明是正确的。
例如,当一名银行用户要存入一定金额的存款,他可能添存单时填写错误,将存入的1000元钱填写成存入10000元,此时银行柜员必须确认实际存款金额,向银行系统中输入正确的存款金额。
? 认证规则5:任何一个接受UDI作为输入参数的TP都必须经过认证,以保证UDI取任何可能
的值,系统都能做出有效的转换操作,操作可能将UDI转换为CDI,可能拒绝该UDI,也可能不进行任何转换。
为了保证Clark-Wilson模型的安全策略得到正确的实施,下面描述了4条实施规则。
? 实施规则1:系统必须保护CDI与TP的认证关系,且必须保证TP在具有操作权的情况下才可
以操作CDI。
? 实施规则2:系统将用户与每个TP及相关CDI关联起来,只有被明确授权时,TP才能代表用
户执行相关CDI。
? 实施规则3:系统必须认证每一个试图执行TP的用户。
? 实施规则4:只有通过TP认证的管理者才可以改变与此TP相关的实体列表。
Clark-Wilson模型用这9条规则定义了一个实行完整性策略的系统。这些规则说明了在商业数据处理系统中完整性是如何实施的。Clark-Wilson模型在信息安全领域中引起了人们很大的兴趣,也表明了商业上对信息安全有一些独特的要求。下面用例2-11来说明电子商务进程中对于Clark-Wilson安全性模型的应用,模型中需要保证数据的一致性和转换的完整性。
例2-11 在一个普通的电子商务进程中,用户首先会向应用程序服务器提交订单请求(订单属于UDI ),转换程序(TP)将订单转换为一个有约束数据项(CDI1) , CDI1更新客户的订单(CDI2)及账单(CDI3),完整性验证程序(IVP)需要检查客户的订单(CDI2)及账单(CDI3)是否满足Clark-Wilson安全模型,这样才能保证交易的完整性,具体过程如图2-10所示。
(2)与其他模型的比较
Clark-Wilson模型有很多新的特性,下面通过将该模型与Biba模型进行比较来突出这些特性在安全策略方面的贡献。
Biba模型中主体和客体分别有对应的完整性等级,从某种意义上说,Clark-Wilson模型也是如此。可以认为,每个主体有两个等级:认证的(TP)和未被认证的。客体也有两个等级:受约束(CDI)和不受约束(UDI)。通过这样的相似性,我们来分析这两种模型的差异。
这两种模型的区别在于认证规则。Biba模型没有认证规则,它断言有可信的主体存在,并以此保障系统的操作遵守模型的规则,但它却没有提供任何机制来验证被信任的实体以及它们的行为。Clark-Wilson模型则提供了实体及其行为必须符合的需求。因为更新实体的方法本身就是一个转移过程,它会被验证其安全性,这就为提出的假设建立了基础。
Biba模型与Clark-Wilson模型在处理完整性等级变化的问题上的表现也不同。对于一个可能接受来自不同信源的系统来说,由于Biba模型的读写关系严格按照安全等级进行划分,就很难找到一个可信实体能够将收到的所有不同安全等级的信息转发到更高安全等级的进程中。而Clark-Wilson模型中要求了一个可信实体向一个更高的完整性等级证明更新数据的方法,因此可信实体若要更新数据项,只需要证明更新数据的方法,并不需要证明每一个更新数据项,这种方法非常实用。 2.5 混合型模型与策略
绝大部分信息系统的安全目标都不会单一地局限于保密性或者完整性。由于具体应用对保密性与完整性都有一定的要求,因此应用中更多的需求是要求安全策略兼顾到保密性和完整性两个方面,这样的策略就称为混合策略。本节就将介绍混合型安全策略及几种典型的模型。
2.5.1 混合型策略的目标
混合型策略的应用十分广泛,在许多领域中对于信息安全的要求既包括信息保密性需求也包括信息完整性需求,这就需要建立混合型的安全策略。具体的策略目标由具体的应用来决定。例如,在投资活动中存在很多利益冲突,为了有效防止不公平行为引发这些利益冲突的发生,安全策略必须考虑到多方面因素。最为典型的混合型策略是Chinese Wall模型(CW模型)。另外,在医疗信息管理方面混合型策略也得到了广泛的应用。同时,在很多领域的信息管理中还会用到基于创建者的访问控制模型以及基于角色的访问控制模型。 2.5.2 Chinese Wall模型
Chinese Wall模型是兼顾了信息系统的保密性和完整性的模型,该模型是依据用户以前的动作和行为,动态地进行访问控制,主要用于避免因为用户的访问行为所造成的利益冲突。
(1)模型描述
Chinese Wall模型最初是为投资银行设计的,但也可应用在其他相似的场合。Chinese Wall安全策略的基础是客户可访问的信息不会与目前他们可支配的信息产生冲突。在投资银行中,一个银行会同时拥有多个互为竞争者的客户,一个交易员在为多个客户工作时,就有可能利用职务之便,使得竞争中的一些客户得到利益,而另一些客户受到损失。
Chinese Wall模型反映的是一种对信息存取保护的商业需求。这种需求涉及一些投资、法律、医学或者财务公司等领域的商业利益冲突。当一个公司机构或者个人获得了在同一市场中竞争公司或者个人之间的敏感信息后,就会产生此类的利益冲突。Brewer和Nash提出了Chinese Wall模型来模拟咨询公司的访问规则,分析师必须保证与不同客户的交易不会引起利益冲突。
例如,咨询公司会存储公司的咨询记录以及一些敏感信息,咨询师就利用这些记录来指导公司或者个人的投资计划。当一个咨询师同时为两家IT业的公司计划进行咨询时,就可能存在潜在的利益冲突,因为这两家公司的投资可能会发生利益冲突。因此,分析师不能同时为两家同行业中竞争的企业提供咨询。
下面对这个策略进行一些描述:客体(C),表示某家公司的相关信息条目;客体集合(CD),表示某家公司的所有客体的集合;利益冲突(COI ),若干互相竞争的公司的客体集合。
例2-12 Chinese Wall模型中规定,每个数据客体唯一对应一个客体集合,每个客体集合也唯一对应一个利益冲突类,但一个利益冲突类可以包含多个客体集合。例如,一家咨询公司可以接受多个领域中的若干公司作为客户,有银行客户工商银行、农业银行、建设银行,有手机厂商诺基亚、三星,有电脑制造商联想、宏基,需要将这些公司的数据分类存储。以上公司数据根据Chinese Wall模型可以分为7个客体集合,3个利益冲突类,分别为{工商银行,农业银行,建设银行},{诺基亚,三星},{联想,宏基},如图2-11所示。
在该模型中咨询师作为主体只能访问同一个利益冲突类中的一个客体集合。也就是说,如果咨询师A访问了工商银行的相关信息,那么他就不能再去访问农业银行或建设银行的信息了,对于其他两个利益冲突类中的客体集合也是如此,这样就避免了利益冲突的威胁。
当然,上述方案也存在不能解决的利益冲突,例如,咨询师A开始时为工商银行做证券业务工作,过了一段时间又转为建设银行做证券业务工作,虽然此时他已不再为工商银行工作,但是他仍然知道关于工商银行的一些敏感信息,此时就产生了利益冲突。为了解决此类的利益冲突,模型规定了以下规则。
Chinese Wall模型的简单安全条件:
主体s可以读取客体o,当且仅当以下两个条件中任何一个条件被满足: