翻译:中国科学技术大学信息安全专业老师 与操作系统中的MLS比较,你现在必须同时解决机密性问题和完整性问题。当数据库的完整特性得以维护时,应避 免有其他通过隐秘通道的方法变相访问。如果你采取隐藏髙层数据来防止这种情况,那么你就不得不求助于多实例 化来保持关系数据库中最基本的完整性特性。如果你无需隐藏高层数据,那么保持完整性就会更简单,但那样的话, 你就必须找到一种方法,把高层数据插入数据库的同时不会产生隐秘通道。 目标: 在数据库系统环境中应用多级安全。 关于机密性和完整性之间潜在的冲突分析 比较两种处理这种冲突的方法 比较两种实现多级数据库安全的方法 151基本原理 想象在某种情况下,数据库中的元素被认为是如此敏感以至于只有用最行之有效的安全方法才可以保护。一种 想法认为在多层安全数据库中,强制访问控制方式将是这个挑战的解决方法。于是大量的精力花在了使强制访问控 制方式与关系数据库系统相适应的研究上。 Seaview( Secure data view)项目[40]发布了一种多级安全关系数据 库管理系统的原型(MLS- RDBMS 一种更严格的观点认为,从操作系统安全中引出的概念被用在了错误的抽象层,并指出了一些实例,其中的机 密性规则让我们无法阻止完整性被破坏。你在本章结束部分和第16章中会看到这种问题,以及在安全性和一致性之 间达成实用的协议( trade-off)的一些例子。 主要数据库销售商们都有他们自己对多级数据库安全支持的版本,而且都通过了桔皮书的B1子类认证。尽管如 此,他们还是会告诉你,并没有很多用户使用DBMS的MAC特性,同时还告诫你在决定这样做之前要看到其长远性和 艰苦性。 152关系数据库中的MAc 我们来对4.2节中的 Bell lapadula模型的强制访问控制的策略做一个简短的回顾。简单起见,我们对一个主体 的默认许可证和当前许可证不做区分。在BLP模型中的实体是: 个主体的集合S,即数据库系统的用户 个对象的集合0,即各种数据库、基本关系、导出关系、元组、域; 个安全表的偏序排列(L,≤),习惯上叫做访问级别(访问类别, access classes) 函数∫:S→L表示对每个主体的一个访问级别,函数:0→L表示对每个对象的一个访问级别。两条强制访 问控制策略说明,考虑到访问级别,信息只允许向上流动 简单规则(没有读出(不向上读, no read-up):主体s可以查询对象o,当且仅当s的访问级高于o,即J(o)≤ 星规则(没有写入(不向下写, no wri te-down):主体s可以修改对象o,当且仅当s的访问级低于o,即f(s) f后 这些政策应用在DBMS的数据处理操作中,得到直接的信息流。信息也可以从隐蔽通道流出。如果用户事先不知道访 问要求是不合法的而且注定失败的话,拒绝该要求就会建立一个隐秘通道 15.2.1对象标识(标记/标签,1 belling) 按照 Seaview,我们将描述在最细粒度级上的多级数据库安全。在数据库中的每一项都有自己的标识,它可以 是一个数据元素、一个元组、一个关系或是一个数据库。这是一个非常灵活的策略,即使在一个元组中也包含了不 创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 11 页 共 31 页 创建日期:2003-11 与操作系统中的MLS比较,你现在必须同时解决机密性问题和完整性问题。当数据库的完整特性得以维护时,应避 免有其他通过隐秘通道的方法变相访问。如果你采取隐藏高层数据来防止这种情况,那么你就不得不求助于多实例 化来保持关系数据库中最基本的完整性特性。如果你无需隐藏高层数据,那么保持完整性就会更简单,但那样的话, 你就必须找到一种方法,把高层数据插入数据库的同时不会产生隐秘通道。 目标: ⚫ 在数据库系统环境中应用多级安全。 ⚫ 关于机密性和完整性之间潜在的冲突分析。 ⚫ 比较两种处理这种冲突的方法。 ⚫ 比较两种实现多级数据库安全的方法。 15.1 基本原理 想象在某种情况下,数据库中的元素被认为是如此敏感以至于只有用最行之有效的安全方法才可以保护。一种 想法认为在多层安全数据库中,强制访问控制方式将是这个挑战的解决方法。于是大量的精力花在了使强制访问控 制方式与关系数据库系统相适应的研究上。SeaView(Secure data VIEW)项目[40]发布了一种多级安全关系数据 库管理系统的原型(MLS-RDBMS)。 一种更严格的观点认为,从操作系统安全中引出的概念被用在了错误的抽象层,并指出了一些实例,其中的机 密性规则让我们无法阻止完整性被破坏。你在本章结束部分和第16章中会看到这种问题,以及在安全性和一致性之 间达成实用的协议(trade-off)的一些例子。 主要数据库销售商们都有他们自己对多级数据库安全支持的版本,而且都通过了桔皮书的B1子类认证。尽管如 此,他们还是会告诉你,并没有很多用户使用DBMS的MAC特性,同时还告诫你在决定这样做之前要看到其长远性和 艰苦性。 15.2 关系数据库中的 MAC 我们来对4.2节中的Bell_LaPadula模型的强制访问控制的策略做一个简短的回顾。简单起见,我们对一个主体 的默认许可证和当前许可证不做区分。在BLP模型中的实体是: ⚫ 一个主体的集合S,即数据库系统的用户; ⚫ 一个对象的集合O,即各种数据库、基本关系、导出关系、元组、域; ⚫ 一个安全表的偏序排列(L,≤),习惯上叫做访问级别(访问类别,access classes)。 函数 fs : S → L 表示对每个主体的一个访问级别,函数 fo : O → L 表示对每个对象的一个访问级别。两条强制访 问控制策略说明,考虑到访问级别,信息只允许向上流动。 简单规则(没有读出(不向上读,no read-up)):主体s 可以查询对象o ,当且仅当s 的访问级高于o ,即 fo (o) ≤ fs (s)。 星规则(没有写入(不向下写,no write-down)): 主体s 可以修改对象o ,当且仅当s 的访问级低于o ,即 fs (s) ≤ fo (o)。 这些政策应用在DBMS的数据处理操作中,得到直接的信息流。信息也可以从隐蔽通道流出。如果用户事先不知道访 问要求是不合法的而且注定失败的话,拒绝该要求就会建立一个隐秘通道。 15.2.1 对象标识(标记/标签,labelling) 按照 SeaView,我们将描述在最细粒度级上的多级数据库安全。在数据库中的每一项都有自己的标识,它可以 是一个数据元素、一个元组、一个关系或是一个数据库。这是一个非常灵活的策略,即使在一个元组中也包含了不
翻译:中国科学技术大学信息安全专业老师 同安全标识的元素。设R是一个有n维属性的多级关系( multi- level relation)。现在,在形式为 (Ⅵ,c1,v2,c2,…,vn,cm,tc)的R元组中,c;是第i个域的标识,tc是元组的标识。用户并不知道安全标识的存在 它们是DBMS的内部信息,在其相关的(引用, reference)监视器之后用来管理访问要求 数据库标识:用于决定是否允许用户在数据库中寻址访问关系。 关系标识:用于决定是否允许用户在数据库中寻址访问元组 元组标识:用于决定是否允许用户访问元组中的所有元素。 元素标识:用于决定是否允许用户访问元素。 在前面的章节里,我们要求一个安全策略是: 完全的:数据库中所有的域均被保护,而且 致的:没有冲突的数据项访问管理规则 如果数据库中的所有项都有它们自己的安全标识,则安全标识的设定就是完全的。因此检查完全性是一项如此简单 的工作。 15.2.2一致的寻址 显然,我们必须考虑如何给数据库中不同的项分配安全标识,否则,很容易导致标识的不一致。要弄清楚你定 义第一个一致性规则集合的理由,必须记住在寻址一个数据项时,要说明以下各项: 个数据库D 数据库D中的一个关系R 关系R中的元组r的主关键字 ●属性i,在元组r中识别元素r 要得到元素r,必须满足下列条件: 后(D)≤f(R)≤⑥(r) 否则,你将不能访问你被授权可见的元素。在我们的习惯中,可以访问元组r的用户也有权访问该元组的所有元 素。因此,我们要求所有的属性i ⑥(r)≤f(r) 元素标识要求我们重新描述关系数据库模型中的内部完整性规则(14.2.2节)。寻址需要主关键字,因此我们有如 下规则: 多层实体完整性规则:基本关系中的主关键字中任何成分或子集都不能为空。其所有的组合都有相同的访问级别。 在基本关系中,元组中所有其他数据值的访问级别决定了该元组的主关键字的访问级别。 外关键字把本表和另一个表联系起来。如果一个用户知道这个联系,那么该用户就应该遵守下面的规则 多级相关(引用, reference)完整性规则:外关键字引用的元组必须存在。外关键字的访问级别决定了相应的主 关键字的访问级别。 15.2.3可见数据 下面的规则集合解释了一个数据库对有着不同安全标识的用户看起来是怎样的。 对用户s来说,它可以在关系R中寻址元组,我们要求(s)≥(R)。如果(s<后(R),那么整个关系R对 用户s来说就是不可见的 如果数据元素n对用户s是可见的,我们必须有后(s)≥o(r)。如果f(s)<J(r)并且n是元组r的主关 键字的一部分,那么整个元组就是不可见的。如果后(s)<J(r)对任何其他数据项都成立,那么这个属性 是不可见的,而且会出现空值。 如果基本关系R的元组r对用户s是可见的,那么满足后(S′)≥/(s)的用户s′将看到元组r,它的每 个属性和元组r一样,而且元组r中没有空值。 我们将通过图15.1来展示这些规则。这里有两个访问级别: classified(U和 Confidential(C)。这里只为引 用给出数据元素的安全标识。如前所述,它们对用户是不可见的。有访问标识C的主体可以看到整个表(即使没有 第12页共31页创建日期:2003-11
翻译:中国科学技术大学信息安全专业老师 第 12 页 共 31 页 创建日期:2003-11 同安全标识的元素。设 R 是 一个有 n 维属性的多级 关系(multi-level relation)。现在 ,在形式 为 (v1,c1,v2,c2,...,v n,cn,tc)的 R 元组中,ci 是第 i 个域的标识,tc 是元组的标识。用户并不知道安全标识的存在。 它们是 DBMS 的内部信息,在其相关的(引用,reference)监视器之后用来管理访问要求: ⚫ 数据库标识:用于决定是否允许用户在数据库中寻址访问关系。 ⚫ 关系标识:用于决定是否允许用户在数据库中寻址访问元组。 ⚫ 元组标识:用于决定是否允许用户访问元组中的所有元素。 ⚫ 元素标识:用于决定是否允许用户访问元素。 在前面的章节里,我们要求一个安全策略是: ⚫ 完全的:数据库中所有的域均被保护,而且 ⚫ 一致的:没有冲突的数据项访问管理规则。 如果数据库中的所有项都有它们自己的安全标识,则安全标识的设定就是完全的。因此检查完全性是一项如此简单 的工作。 15.2.2 一致的寻址 显然,我们必须考虑如何给数据库中不同的项分配安全标识,否则,很容易导致标识的不一致。要弄清楚你定 义第一个一致性规则集合的理由,必须记住在寻址一个数据项时,要说明以下各项: ⚫ 一个数据库 D ; ⚫ 数据库 D 中的一个关系 R ; ⚫ 关系 R 中的元组 r 的主关键字; ⚫ 属性 i,在元组 r 中识别元素 ri。 要得到元素 ri,必须满足下列条件: fo (D) ≤ fo (R) ≤ fo (ri) 否则,你将不能访问你被授权可见的元素。在我们的习惯中,可以访问元组 r 的用户也有权访问该元组的所有元 素。因此,我们要求所有的属性 i: fo (ri) ≤ fo (r) 元素标识要求我们重新描述关系数据库模型中的内部完整性规则(14.2.2节)。寻址需要主关键字,因此我们有如 下规则: 多层实体完整性规则:基本关系中的主关键字中任何成分或子集都不能为空。其所有的组合都有相同的访问级别。 在基本关系中,元组中所有其他数据值的访问级别决定了该元组的主关键字的访问级别。 外关键字把本表和另一个表联系起来。如果一个用户知道这个联系,那么该用户就应该遵守下面的规则。 多级相关(引用,reference)完整性规则:外关键字引用的元组必须存在。外关键字的访问级别决定了相应的主 关键字的访问级别。 15.2.3 可见数据 下面的规则集合解释了一个数据库对有着不同安全标识的用户看起来是怎样的。 ⚫ 对用户s 来说,它可以在关系R 中寻址元组,我们要求fs (s)≥fo (R)。如果fs (s)<fo (R),那么整个关系R 对 用户s 来说就是不可见的。 ⚫ 如果数据元素ri 对用户s 是可见的,我们必须有 fs (s)≥fo (ri)。如果 fs (s)<fo (ri) 并且ri 是元组r 的主关 键字的一部分,那么整个元组就是不可见的。如果 fs (s)<fo (ri) 对任何其他数据项都成立,那么这个属性 是不可见的,而且会出现空值。 ⚫ 如果基本关系R 的元组r 对用户s 是可见的,那么满足 fs (s′) ≥fs (s) 的用户s′将看到元组r′,它的每 个属性和元组r 一样,而且元组r 中没有空值。 我们将通过图15.1来展示这些规则。这里有两个访问级别:Unclassified(U)和Confidential(C)。这里只为引 用给出数据元素的安全标识。如前所述,它们对用户是不可见的。有访问标识C 的主体可以看到整个表(即使没有