一种模糊级别的多级安全关系数据模型研究一种模糊级别的多级安全关系数据模型研究
基于多实例的思想提出了一种新的模糊级别的多级安全模型,将多个仅密级不同的元组合并表示,并用安全模
式来表示元组所适用的密级,只要主体的许可级别匹配此安全模式,便可存取此元组。这种模型解决了现有多
级安全数据模型中存在的数据冗余度大及隐通道等问题。
摘摘 要:要: 基于
关键词:关键词: 多级安全;多实例;数据模型;合并;安全模式
现有的多级安全数据模型都遵循BLP模型[1]中提出的“向下读,向上写”的多级关系的强制访问控制规则,从而确保信息的向
上单向流动。然而,在大多数应用中,主体(用户或程序)和客体的敏感度很难严格地划分等级,只存在一些模糊级别。许可级
别高的用户未必一定允许查看密级(表示该客体所包含信息的敏感度)低的信息,例如:一个许可级别较高的用户不允许查看另
一部门的较低密级的信息。
另外,在一般的多级安全关系数据库中,为了对低许可级的主体隐藏高密级的敏感信息,引入了多实例(Polyinstantiation)和
伪元组(Cover Story)的概念,使得真实世界的单个实体在一个多级关系表中会产生多个元组,每个元组对应着不同密级的实
例,并为每个字段设置相应的密级附加字段,以记录各数据项的密级信息。当不同实例间的数据差异很大时,这样的设计是合
理的。然而,研究表明实际应用时,数据库中敏感数据(即需要对低许可级主体隐藏的数据)所占的比例通常仅仅只有约5%
[2],这意味着多实例间的数据差异通常非常小,高密级的元组除个别字段外,绝大部分数据(90%以上)与低密级元组相同[3],
造成数据的大量冗余,而且数据定义与操纵规则相当复杂。
为了解决上述问题,本文提出了一种新的模糊级别的多级安全关系数据库模型,采用类似于“同级读,同级写”的原则,既可
以防止“高”许可级用户查看或修改“低”密级的信息,造成信息泄漏;又可以防止“低”许可级主体修改“高”密级的数据,形成隐通
道,还可以通过多密级共享元组来减少数据冗余。
1 对基于多实例的多级关系的改进对基于多实例的多级关系的改进
当不同的元组具有相同的主键,却具有不同的密级时,称为多实例。在给定的格中,对每一个许可级都有一个关系实例,
代表该许可级的用户眼中的数据版本。例如,对关系模式R而言,实例RC就是许可级为C的用户所看到的元组的集合。多实例
是一个应用多级安全的系统所固有的属性[4-5]。
在SeaView[6]和Jajodia、Sandhu[4-5,7]等人对多级安全数据模型的研究中,对每一个属性定义其相应的密级,并引入了
多实例,但由于采用“向下读,向上写”的规则,因此,存在隐匿通道问题。参考文献[8]中引入了主从表,通过在从表中读写伪
元组来消除隐通道问题,但按照这些规则进行读写操作后,大部分元组的各属性的密级最终都会与元组的密级相同。因此,本
模型直接将各属性的密级属性去掉,只留下元组的密级属性;参考文献[9]直接去掉了属性的密级属性,只留下元组的密级属
性TC,但要求为实体的每一种许可级定义一个实例。然而根据前面的分析,实际应用中不同密级实例的大部分属性值可能是
相同的,甚至可能只是元组密级属性TC值不同而已,造成大量的冗余数据,而且,当许可级较多时,数据的冗余量将会成倍
增长。因此,为了进一步减少冗余,本模型再将所有属性值均相同的多个不同密级的元组合并成一个元组,用一种类似于通配
符的数据,即安全模式(Security Pattern)来表示这些密级。强制访问控制就是通过对比主体的许可级别和客体的安全模式是否
匹配来确定主体是否能够存取客体。
安全模式定义及其运算规则。
因此,一个改进后的多级关系可以定义为:
定义2:设有R(A1,A2,…,An,SP),其中,Ai是定义在域Di上的数据属性,SP表示元组的密级属性,SP的值为安全模
式,为所有有权访问该元组的主体所支配。称R为多级关系模式。
可见本模型不仅形式简单,而且由于它保持了标准关系数据库的特点,因此易于在目前常见的DBMS上实现。又由于本模型
不同于其他学者提出的模式,不再用属性TC来表示某一个密级别,而是一种称为安全模式的数据来表示多个密级别,只有许
可级别与此安全模式匹配的主体才可以访问此元组,类似于“同级读,同级写”的访问控制规则,显然不可能泄漏敏感数据,也