强制访问控制为系统中的每个主体和客体标出不同的安全等级,这些安全等级由系统控制并且不能随意更改。如果系统认为具有某一等级安全属性的主体不能访问具有一定安全等级属性的客体,那么任何人都无法使该主体访问到客体。代表用户的应用程序不能改变自身或任意客体的安全属性,包括不能改变属于用户的客体的安全属性,而且应用程序也不能通过把文件访问权授予其他用户来简单分配文件。这样,强制访问控制可以防止一个进程生成共享文件,从而防止一个进程通过共享文件把信息从一个进程传送给另一个进程。这种给不同的客体标以不同的安全等级的思想在军用系统中表现得更为突出。通常,强制访问控制模型中的访问控制策略基于以下两个原则。
●下读:主体只能读取那些安全等级小于该主体安全等级的客体。
●上写:主体只能写入那些安全等级大于该主体安全等级的客体。
这些策略防止具有高安全等级的信息通过读或写操作流向低安全等级的客体中。但在实际工作中,严格遵循以上策略会增加数据库管理系统的复杂性,影响数据库系统的效率。因此,在很多实际的安全数据库系统中,只允许同级写,即主体只能写入那些安全等级等于该主体安全等级的客体。
1.Bell-Lapadula模型
Bell-Lapadula模型(BLP模型)是由Bell和Lapadula于1973年提出的著名的安全模型,已经成为计算机系统安全标准之一,广泛应用于安全数据库管理系统和安全操作系统。该模型的最初目的是在操作系统环境下提供对信息的安全保护。
BLP模型依赖于系统元素密级。密级用安全等级来表示。每个安全等级是一个二元组<密级(Classification),范围(Categories)>,记为L=<C,S>。通常可将密级划分为公开(Unclassified)、秘密(Confidential)、机密(Secret)、绝密(Topsecret)4个等级。这些等级构成一种全序关系,即Topsecret>Secret>Confidential>Unclassified。
根据主体和客体所涉及的信息类别将主体和客体分为一系列不同的属类。这种属类称为范围,范围的集合是系统中非分层元素集合的一个子集,这个集合的元素依赖于所考虑的环境和应用领域。属类之间是彼此独立且无序的。一个安全属类仅包含一个安全等级,而它包含的类别可以任意多。
在BLP模型中,所有的主体和客体都被打上了标签,这个标签的主要功能就是记载安全等级和实体所属的类别。模型规定当信息能从一个实体流向另一个实体时,必须满足后者的安全等级和实体所属类别都支配前者。对这种支配的定义如下:
给定两个安全等级L1=<C1,S1>,L2=<C2,S2>,称
1)L1支配L2成立,当且仅当C1≥C2,且S1⊇S2,记为L1≥L2。
2)L1严格支配L2成立,当且仅当C1>C2,且S1⊃S2,记为L1≥L2。
对于给定的两个安全等级L1和L2,如果L1≥L2和L2≥L1均不成立,则称L1和L2是不可比的。
BLP模型提供了8种操作,见表5-3。
表5-3 BLP模型的8种操作
BLP模型主要用来控制主体和客体之间的信息流动。例如,读操作就是客体的信息向主体流动,而写操作就是主体的信息向客体流动。BLP模型设计了一种信息流动的策略来保证信息安全性。信息流动可以用一个格(Lattice)<L,→>表示,→决定了不同实体之间信息是否可以流动,如x→y,即x的信息可以流向y。BLP模型信息流动的一般原则有简单安全性、星(*)特性和稳定性。(www.xing528.com)
在BLP模型中,支配关系≤的传递性使用户容易验证信息流向的安全性。假设信息先从A流向B,然后从B流向C。如果(Aa,Ca)≤(Ab,Cb)且(Ab,Cb)≤(Ac,Cc),则有(Aa,Ca)≤(Ac,Cc)。这说明信息从A流向B和从B流向C都是安全的,则信息从A流向C也是安全的。由于BLP模型可以描述信息流的安全性,因此也称其为信息流模型。
2.Biba模型
Biba模型是为保护信息的完整性而设计的。Biba模型同样基于主体、客体和安全等级这些概念。其中,主体和客体的概念与BLP模型一致。系统中每个主体和客体都打上了标签,这个标签的主要功能是记载完整性等级和实体所属的类别。Biba模型的完整性等级由两部分组成,即一个安全等级和一个范围集合。其中,安全等级主要的类型是极重要(Crucial,C)、非常重要(Very Important,VI)和重要(Important,I),三者之间是全序关系,即C>VI>I。
Biba模型的基本思想是低完整性的信息不能向高完整性实体流动,反之则可以。即如果信息能从一个实体流向另一个实体,那么必须满足前者的完整性等级和实体所属类别都支配后者。这种支配关系的定义如下:
给定两个安全等级I1=<C1,S1>,I2=<C2,S2>,称
1)I1支配I2成立,当且仅当C1≥C2,且S1⊇S2,记为I1≥I2。
2)I1严格支配I2成立,当且仅当C1>C2,且S1⊃S2,记为I1>I2。
对于给定的两个安全等级I1和I2,如果I1≥I2和I2≥I1均不成立,则称I1和I2是不可比的。
在Biba模型中,主体的完整性是指主体插入、删除、修改信息的置信度,而客体的完整性指存储在该客体中的信息的置信度和由于非授权修改对存储在客体中信息可能造成的潜在损失。
Biba模型定义了以下4种访问模型。
1)Modify:向客体写入信息。类似BLP模型中的“写”方式。
2)Invoke:该操作只能应用于主体,若两个主体之间有Invoke权限,则允许这两个主体相互通信。
3)Observe:从客体中读信息。类似BLP模型中的“读”方式。
4)Execute:执行一个客体(程序)。
与BLP模型不同,Biba模型没有提供对授权状态的“授权”和“撤销”。要改变授权状态仅能通过直接修改与客体相关联的ACL来完成,而安全策略规则控制状态的改变。同时,Biba模型提出的并不是一个唯一的安全策略,而是一个安全策略系列。每种安全策略采用不同的条件保证信息的完整性。一种广泛使用的非自主安全策略是严格完整性策略(Strict Integrity Policy),其原则包括完整性星规则、援引规则和简单完整性条件。可以看出,严格完整性策略是BLP模型的安全策略在完整性上的版本。前两个规则类似于BLP模型的安全规则和星规则,只是完整性等级间的关系是相反的。Biba模型没有考虑“Append”访问方式,使得主体的完整性等级是唯一的。因此,完整性星规则比BLP模型的星规则简化。
Biba模型控制信息流向的策略可以与BLP模型中的强制访问控制策略结合起来控制系统中信息的流动。两者相互独立,不会产生干扰。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。