2.3.3 BLP模型的拓展
Lattice模型将BLP模型的每一个安全密级加入了相应的安全类别,从而使BLP模型得到了拓展。每一个类别包含了描述同一类信息的一组客体,一个客体可以属于多个类别。Lattice模型中主体与客体之间访问的安全等级关系与BLP模型相同,但考虑的因素不仅仅局限于主体与客体的安全级别,而是从安全级别与类别两方面进行考虑。例2-2就介绍了Lattice模型关于客体类别的例子。如果主体对客体有访问权限,那么主体能够访问的类别中一定包含该客体,否则就不能合法访问了。
例2-2 系统中可访问的客体类别共有四个,分别是Asia、Europe、America和Africa。那么某个主体可访问的类别集合就是下列集合之一:空集,{Asia},{Europe},{America},{Africa},{Asia,Europe},{Asia,America},{Asia,Africa},{Europe,America},{Eu-rope,Africa},{America,Africa},{Asia,Europe,America},{Asia,Europe,Africa},{Asia,America,Africa},{Europe,America,Africa},{Asia,Europe,America,Africa}。这些类别集合在操作(子集关系)下形成一个格(如图2-4所示),其中,图中的连线表示符号“⊆”的关系。
图2-4 类别关系
针对信息系统对信息的控制要求,可以利用主体的密级和客体的类别二元组来描述这种多级安全的需求。每个安全密级和类别可以形成一个安全等级,用二元组可以表示为(密级,{类别})。其中,密级与之前提到的四个敏感密级对应,类别则是针对系统中的信息分类而言,表示信息的范围。例如,如果某公司中的文件类别是人事文件、项目文件、一般文件,那么某人可以访问的类别集合就是以下集合之一:空集、{人事文件}、{项目文件}、{一般文件}、{人事文件、项目文件}、{人事文件、一般文件}、{项目文件、一般文件}、{人事文件、项目文件、一般文件}。公司人员Alice可能属于等级(秘密,{项目文件}),Bob属于等级(机密,{项目文件、人事文件}),显然,Bob比Alice的密级高,并且他们所能访问的文件类别也不同。
安全等级改变了访问的方式。在定义安全条件时,不能直接比较主体和客体的安全密级,还要根据“需要知道”原则,考虑主体访问的客体类别集合。因此,需要引入“支配”的概念。
安全等级(L,C)支配安全等级(L′,C′),当且仅当L′≤L且C′⊆C。
用C(s)表示主体s的类别集合,用C(o)表示客体o的类别集合。Bell-LaPadula模型的简单安全条件及*-属性可以改进为:主体s读客体o,当且仅当s支配o,且s对o具有自主读的权限;主体s写客体o,当且仅当o支配s,且s对o具有自主写的权限。
BLP模型形式化地描述了系统状态和状态间转换的规则,定义了安全的保密性的概念,并制定了一组安全特性,以此对系统状态和状态间转换规则进行限制和约束,使得对于一个系统,如果它的初始状态是安全的,并且所经过的一系列的转换规则也是安全的,那么可以判定该系统是安全的。
BLP模型中的自主安全特性是指系统状态的每一次存取操作都是由访问控制矩阵限定的。也就是说,如果系统中的主体对客体的当前访问模式包含在访问控制矩阵中,则授权此次访问。
根据以上介绍的BLP模型的几条属性可以归纳出如下的基本安全定理。
定理2.1 假设一个系统的初始状态θ0是安全的,经过一系列的状态转换,如果状态转换集合中的每个元素都遵守以上的安全条件及*-属性,那么对于转换后的系统,每个状态θi都是安全的(i≥0)。
这个安全定理在检验信息系统的安全性时起到了很大的作用。例如,已知一个系统的初始状态是安全的,只要能证明后续的转换状态都是安全的,那么这个系统一定一直保持着安全性。
当然,在实际应用中,可能较高等级的主体会有与较低等级的主体进行直接通信的需求。例如,一个处在较高等级的主体需要写信息到一个较低等级的客体中去,以便将该信息传达给较低等级的主体。这一操作违反了上面介绍的关于BLP模型的*-属性。BLP模型中有以下两种方法可以满足这一类型的通信需求。
• 临时降低主体的安全等级。一个主体可以拥有一个最高安全等级和一个当前安全等级,最高安全等级必须支配当前安全等级。一个主体的安全等级可以从最高安全等级降低下来,以满足与较低安全等级的主体进行通信的需求。
• 确定一些可信的主体,暂时违反*-属性。系统中不可信的主体必须严格遵守安全策略,一些可以确认为值得信赖的主体可以在确保不破坏系统安全性的情况下,暂时违反*-属性。
例2-3 用BLP策略模型中的强制访问控制关系和自主访问控制关系来判断主体与客体之间的关系,只有同时满足这两类访问控制关系的访问权限才是合法的。利用表2-1中实体安全等级的状态,假设一个信息系统中有三个访问主体,分别是高级人事主管、项目经理和宣传人员,有两个文件,分别是文件1和文件2,安全密级分别是:高级人事主管-顶级机密级、项目经理-机密级、宣传人员-秘密级、文件1-机密级、文件2-秘密级(强制访问控制关系如图2-5所示)。现在系统赋予这些主体一些访问权限(自主访问控制关系如表2-2所示)。根据BLP策略模型依次判断下列访问权限是否合法:高级人事主管对文件1的读权限;高级人事主管对文件2的写权限;项目经理对文件2的读权限;项目经理对文件2的写权限;宣传人员对文件1的读权限。
图2-5 强制访问控制关系
表2-2 自主访问控制关系
下面根据BLP模型来对这五个权限依次进行判断。
• 判断高级人事主管对文件1的读权限:根据已知条件,高级人事主管的密级高于文件1的密级,且高级人事主管对文件1具有读的权限,因此该权限是合法的,应该被允许。
• 判断高级人事主管对文件2的写权限:由于不满足高级人事主管的密级小于等于文件2的密级这一安全条件,因此该权限非法,应该被禁止。
• 判断项目经理对文件2的读权限:虽然满足项目经理的密级大于等于文件2的密级,但是访问矩阵中没有此权限,因此权限是非法的,应该被禁止。
• 判断项目经理对文件2的写权限:由于不满足项目经理的密级小于等于文件2的密级,因此该权限是非法的,应该被禁止。
• 判断宣传人员对文件1的读权限:由于不满足宣传人员的密级大于等于文件1的密级,因此权限是非法的,应该被禁止。
这个例子充分表现了BLP安全模型中强制型控制访问和自主型控制访问的区别与作用。整个信息系统的访问控制是综合了这两种访问控制类型的结果,从而能够对权限的合法性做出相应的判断。
这里需要引入一个重要的概念——静态原则(The Tranquility Principle)。静态原则是指主体和客体的安全等级在初始化之后就不会改变了。客体安全等级的变化会给信息的保密性带来影响。假设较低安全等级的客体提高了安全等级,那么原来可以访问该客体的主体就失去了访问该客体的权限,同样,较高安全等级的客体降低了安全等级,那么原来不能访问该客体的主体也可以访问该客体。因此,静态原则是保证信息保密性的一个必要措施。静态原则有以下两种形式。
• 强静态原则,是指安全等级在系统的整个生命周期中不改变。强静态原则的优点是没有安全等级的变化,这样就不会产生违反安全条件的可能性,缺点是不够灵活,在实际应用中,这样的原则太过严格。
• 弱静态原则,是指安全等级在不违反已给定的安全策略的情况下是可以改变的。弱静态原则对于安全等级的变动要求更加灵活,如果用户要求这种状态转换,那么在不违反安全策略的情况下,应当允许这种状态转换。
由于静态原则突出了模型中的信任假设,因此在BLP模型中有着十分重要的作用,在应用过程中应该受到特别的关注。