首页 理论教育 安全数据视图模型:构建可靠的数据安全防护方案

安全数据视图模型:构建可靠的数据安全防护方案

时间:2023-06-09 理论教育 版权反馈
【摘要】:安全数据视图模型分为两个层次:下层是强制访问控制模型,上层是可信计算基模型。安全数据视图模型强制访问控制策略概括了BLP模型与Biba模型的规则,其形式化说明中最基本的概念是主体、客体和访问等级。安全数据视图模型的访问等级形成一个满足偏序关系的格。

安全数据视图模型:构建可靠的数据安全防护方案

安全数据视图(Secure Sea View)模型是Denning等人在1986年前后于斯坦福研究所开发的一个保护关系数据库系统的安全模型。模型采用强制访问控制策略和自主访问控制策略控制数据访问。

安全数据视图模型分为两个层次:下层是强制访问控制(MAC)模型,上层是可信计算基(TCB)模型。其中,MAC模型是实施了BLP模型的访问监控器。TCB则定义了多级关系概念,支持对于多级关系和视图的自主访问控制。由于TCB模型位于MAC模型的上层,其所有信息均存储在MAC访问监控器控制的客体中。

1.SeaView的MAC模型

MAC模型基于信息的安全等级构造,所有需要访问敏感信息的用户必须提供访问这些信息所要求的机密性、完整性授权。安全数据视图模型强制访问控制策略概括了BLP模型与Biba模型的规则,其形式化说明中最基本的概念是主体、客体和访问等级。

(1)访问等级

访问等级(Access Class)由一个保密等级部分和一个完整性等级部分组成,记为<XY>。其中保密等级对应于BLP模型中的安全等级,完整性等级对应于Biba模型中的完整性等级。

安全数据视图模型的访问等级形成一个满足偏序关系的格。此偏序关系称为支配关系。一个访问等级Cl支配另一个访问等级C2,当且仅当C1的保密等级支配C2的保密等级,C1的完整性等级受C2的完整性等级支配,此定义可形式化地表示为

给定两个访问等级C1=<X1Y1>,C2=<X2Y2>。

C1支配C2,即C1C2,当且仅当X1X2YlY2

如果上述两个不等式中任意一个是严格成立的(即>或<),则称Cl严格支配C2

如果C1C2C2C1均不成立,则称C1C2是不可比的。

(2)客体

在MAC模型中,客体定义为必须对其进行访问的信息容器,如文件。每个客体指派一个唯一的标识符和一个唯一的访问等级。此标识符和访问等级在客体的整个生命周期固定不变。由MAC模型保护的客体不是数据库的抽象结构,而是底层操作系统中的单级文件,数据库信息映射到这些文件中。允许模型用访问单级客体的方式说明并实现强制访问控制策略。

(3)主体

MAC模型中的主体是用户进程,用户进程的访问等级等价于用户的访问等级。系统为每个用户指定一个允许执行的保密等级和完整性等级范围:最小保密等级、最小完整性等级、最大保密等级和最大完整性等级,分别用minsecrecy、minintegrity、maxsecrecy和maxintegrity表示。偶对<minsecrecy,maxintegrity>称为主体的写等级,偶对<maxsecrecy,minintegrity>称为主体的读等级。显然,读等级必支配写等级。

如果一个主体的读等级严格支配其写等级,则此主体是可信的。如果对于保密等级不等式严格成立,则称此主体是关于机密性可信的;如果对于完整性等级不等式严格成立,则称此主体是关于完整性可信的。前者允许以低于读出数据的保密等级写数据,但必须证明主体没有向下传播信息。后者允许以低于写入数据的完整性等级读数据,但必须证明主体没有用低完整性等级的信息“污染”主体所写的信息。读等级等于写等级的主体称为不可信主体。

(4)访问方式

模型的强制访问控制策略限定了在数据库底层操作系统客体上可以执行的基本访问方式,主要如下。

●读:读存储在客体中的信息。

●写:向客体写信息。

●执行:执行一个客体。

(5)规则

MAC模型通过一组规则(Axioms)集控制访问方式的执行,这些规则如下。

1)读规则:仅当主体的读等级支配客体的访问等级时,主体能够读客体的信息。形式化的表示是,主体s能够读客体o,当且仅当read class(s)≥access class(o)。该规则相当于要求主体的maxsecrecy支配客体的保密等级,主体的minintegrity受客体的完整性等级支配。该规则是BLP模型中不上读保密规则和Biba模型中严格完整性策略的不下读完整性规则的综合。

2)写规则:仅当主体的写等级受客体的访问等级支配时,主体能够向客体写信息。形式化的表示是,主体s能够写客体o,当且仅当write class(s)≤access class(o)时。此规则相当于要求主体的minsecrecy受客体的保密等级支配,主体的maxintegrity支配客体的完整性等级。该规则是BLP模型中不下写保密规则和Biba模型中严格完整性策略的不上写完整性规则的综合。

3)执行规则:仅当主体的maxintegrity小于或等于客体的完整性等级,且主体的maxsecrecy大于或等于客体的保密等级时,主体能够执行客体。由于Biba模型的严格完整性策略模型对数据库系统来说限制过严,执行规则对于数据库系统是必要的。例如,在数据库系统中那些具有高完整性等级,管理数据库的可信主体可以读低完整性等级数据而不“污染”高完整性等级提供的数据。它们不执行那些可能损坏数据库的低完整性等级的程序客体。Biba模型不允许这种控制,而安全数据库视图模型通过区分执行访问与读访问克服了这个限制,允许可信主体读比自己的maxintegrity低的数据,但限制所有主体执行访问那些大于或等于其完整性等级的程序。

2.SeaView的TCB模型

TCB模型定义了多级关系,提供形式化的自主安全策略,同时支持数据的一致性(Consistency)、审计性(Accountability)、标识(Labelling)、聚合(Aggregation)、清洗(Sanitization)和等级重分(Reclassification)。下面介绍如何建立多级关系模型,以及如何使用自主访问控制策略对存储在数据库中的数据实施控制。

(1)多级关系

为了处理多级关系(Multilevel Relation),TCB模型扩充了关系的概念,即为关系增加了等级标识(Classification Labels)。等级可以赋予关系中的单个元素,即每一特定的属性值。

一个多级关系是由关系模式RA1ClA2C2,…,AnCnTC)表示的。一个多级关系的任一属性Ai及其相应的安全等级Ci是单级的,当且仅当Ci是定义在访问等级格中由一个单级表示的域上,否则,称其为多级的。如果所有的属性是单级且是同一访问等级,则一个多级关系是单级的。

一个多级关系中的元组可以表示为(al|c1,…,an|cnt)。其中每个ai|ci表示属性i的值和安全等级。元素t表示整个元组的安全等级,即元组中信息的访问等级。为简单起见,以下讨论多级关系时,仅考虑安全等级(UCSTS)。在一个多级关系中,对于不同的访问等级,会有不同的实例。在关系中,给定访问等级c的实例由安全等级c支配的所有元素组成,也就是关系中可由访问等级为c的用户访问的信息,而关系中不能由访问等级为c的用户访问的值被替换为空值。具有不同读等级的用户从多级关系中检索数据时,看到的数据可能是不同的。

多级关系的不同实例遵循如下原则:出现在给定访问等级的关系实例中的每个元组必须出现在具有更高访问等级的实例中,低等级实例中为空的元素在高等级实例中被替换为非空元素。多级关系的模式也被赋予一个访问等级。此访问等级用于关系名称,同样也用于关系模式所有属性的属性名称与类型的定义。

在安全数据视图模型中,客体的安全等级必须满足下列规则:

1)数据库访问等级完整性(Database Class Integrity)。关系模式的访问等级必须支配它所属的数据库名的访问等级。访问等级比数据库名低的用户不能使用访问等级比数据库名低的关系。单级主体不能向访问等级高的数据库中的访问等级低的关系写信息。该规则遵循与BLP模型的客体层次结构一致的约束。(www.xing528.com)

2)可见数据规则(Visible Data Property)。关系模式的访问等级必须受能够存储在此关系中的数据的最低访问等级支配。一个属性访问等级范围的最大下界必须支配关系模式的访问等级。单级主体不能将低访问等级数据写到高访问等级关系中,因为首先无法读高访问等级关系模式。该规则遵循外延的访问等级必须支配内涵的访问等级的规则。

3)视图访问级完整性(View Class Integrity)。视图定义的访问等级必须支配视图定义中出现的所有关系和视图的访问等级。否则,由于强制访问控制策略,视图将不能访问构成此视图的关系和视图。

安全数据视图模型还定义了一组多级关系访问等级必须满足的规则:

1)多级实体完整性(Multilevel Entity Integrity)。设AK是构成关系R的主码的属性集合,所有属性AiAK的安全等级Ci在关系R的任何元组中均具有相同的值,并且此安全等级是受每个不属于AK的属性Aj的安全等级Cj支配的。

2)多级参照完整性(Multilevel Referential Integrity)。关系中没有一个元组具有非空次码,除非在其参照关系中存在具有相应主码值的元组。在一个元组中,构成次码的每个属性的访问等级必须相同,并且必须支配参照元组中主码属性的访问等级。

在标准关系模式中,元组由其码属性值唯一标识。当考虑安全等级时,需要考虑出现码值相同但访问等级不同的多个元组的情况。如果较低访问等级的用户试图向关系中插入新的数据,则此数据在关系中已经存在并具有较高的访问等级,这时,如果拒绝插入,则有关主体可以推断相同码数据已经存在并具有高访问等级。因此,必须允许新的数据插入。为了维护完整性,老的数据也必须同时存在。同理,当较高访问等级的用户试图插入一个已经在关系中存在并具有较低访问等级的数据时,也会遇到类似的情况。如果用新插入的数据替换原来的数据,则会引入推理通道。所以,不同访问等级的数据必须同时存在。

(2)访问多级关系

在安全数据视图模型中,多级关系的访问包括读、写(即插入和删除)操作。对于读操作,主体可以读多级关系中具有与自己相同或更低访问等级的实例。对于写操作,由于允许对一个属性在不同访问等级上赋予不同值,模型根据主体与己存在的数据客体的访问等级分为两种情况:

1)主体访问等级受数据访问等级支配。为了不让主体得知同名数据己存在,这一插入应被接受。为了维护完整性,原有数据也不应删除,由此引入多实例。

2)主体访问等级支配数据访问等级,或者延迟操作,通知主体出现冲突;或者执行操作,但主体不能删除或覆盖较低访问等级的数据,由此引入多实例。

在安全数据视图模型中,写操作可能产生的多元组的数目为关系非码属性数目的指数量级。Jajodia等人证明,这类元组多数不符合逻辑。为了克服这一缺点,Lunt和Hsieh改进了多实例完整性规则,发展了多级关系的写操作语义。新的多实例完整性定义由两个规则组成:一个是状态规则,具有与安全数据视图模型同样的函数依赖部分;另一个视为变换规则,是一个新的动态多值依赖部分。如果一个更新操作涉及多级关系的某些非码属性,则对关系实施特定的动态多值依赖。

(3)自主安全策略

自主安全策略允许说明用户和用户组对特定客体能够执行的操作,也允许说明用户和用户组对特定客体禁止执行的操作。模型通常采用空值表示否定授权,如果主体在某个客体上授权为空,则该主体不允许在客体上执行任何操作。

主体是系统用户和用户组。一个用户可以属于多个用户组,每个用户组的成员必须是用户。客体是数据库、数据库关系(视图、快照)和MAC客体。不同类型的客体具有不同的访问方式,其中,mrelation为多级关系。

(4)访问控制

访问控制根据授权确定应该接受还是拒绝用户的访问请求。模型允许对用户组授权。如果肯定授权和否定授权发生冲突,模型按照最高说明规则解决冲突:

1)如果一个用户显式地说明某个客体的否定授权,则此否定授权高于对此用户和所属用户组的其他任何授权。

2)如果一个用户确实没有说明某个客体的否定授权,但显式地说明对客体授予某些访问方式,则此用户只拥有对客体的这些访问方式,不拥有所属用户组对此客体的访问方式。

3)如果一个用户没有说明对某个客体的任何授权,并且其所属用户组也没有说明对此客体的任何否定授权,则此用户持有所属用户组对此客体拥有的访问授权。

按照上述优先规则,仅当用户没有显式说明任何授权,并且其所在用户组也没有说明否定授权时,用户才能使用其所属用户组的授权。例如,如果一个用户对某个数据库客体持有Insert和Delete访问方式,且对此客体没有否定的访问方式,则该用户可以对此客体执行Insert和Delete访问,但不能执行其所属用户组的其他访问方式。

如果一个用户同时属于两个用户组,一个用户组对某客体持有某种访问方式,而另一个用户组对同一客体持有否定的访问方式,则此用户可以对此客体执行第一个用户组持有的访问方式。例如,用户U1同时属于用户组G1和G2。G1对客体O1持有Select访问方式,G2对客体O1的访问方式为否定方式,则U1可以对O1执行Select访问方式。

(5)授权管理

用户可以授权其他用户访问数据库客体,也可以撤销用户的所授权限。同样方式适用于用户组。授权的传播通过Grant和Give-grant控制。

如果一个用户对一个数据库客体具有Grant访问方式,则此用户能够向其他用户和用户组授予对此客体的除Grant和Give-grant外的任何访问方式,也能从它们处撤销所授权限。用户还可以通过授予Null访问方式的方法,拒绝其他用户和用户组对此客体的任何访问方式。如果一个用户对一个客体持有Give-grant访问方式,则此用户可以向其用户和用户组授予和撤销对此客体的任何访问方式。此用户同样也可以通过授予Null访问方式的方法拒绝其他用户对此客体的任何访问方式。

一个用户已被授予对一个客体的Grant或Give-grant访问方式,则能撤销对此客体的任何访问方式,包括从未授予的访问方式。从一个用户处撤销授权,并不影响对此用户可能已经复制的数据副本的授权,也不影响此用户已授予他人的权限,即撤销不是递归的。

当用户建立一个视图时,只能获得用户所持有的视图定义中直接涉及的每个表的访问方式,即对一个新建视图的授权集合是用户所持有的视图定义直接涉及的所有关系的授权的交的子集。仅当用户对导出视图中某个属性的每个基本关系属性持有更新访问方式时,此用户才能被授予对视图中这一属性的更新访问方式。在关系模型中,某些视图和视图的属性是不能更新的。模型没有对此加以区分,而是允许用户获得对所有视图和视图中属性的更新方式,但并不保证用户得到对它们的更新能力。例如,假定用户s在关系R1R2上建立了一个视图v,并且持有对关系R1的Insert和Select访问方式,对关系R2的Select访问方式,用户s还持有对R1.AR1.BR2.A的Update访问方式。视图中属性v.A是由R1.AR2.A导出的,v.B是由R1.BR2.B导出的,则用户可得到对此视图的Select授权和对v.A的Update授权,但不能获得对视图的Insert授权,也不能获得对v.B的Update授权。

在视图建立时,可以授予用户在视图上建立新视图的权限。如果一个用户获得对某些基本关系的授权,那么此用户并不同时获得对定义在这些关系上的视图的授权。

如果一个用户对视图持有Grant和Give-grant访问方式,那么该用户可以向其他用户和用户组授予和撤销对视图的访问方式。这些用户和用户组不必对视图定义中涉及的基本表持有同样的访问方式。然而,为了对视图执行各种访问方式,用户必须被授权对视图直接和间接涉及的所有多级关系持有Reference访问方式。

为了读取数据库中关系、视图和约束的定义,并对数据库中客体进行操作,需要持有对数据库的访问权限。若要拒绝一个用户或用户组对数据库中所有关系的访问,只需拒绝授予其对数据库的访问权限即可。一个用户若要建立关系、视图或约束,需要被授予在数据库中建立关系的权限,即Create-mrelation访问方式。持有对数据库的授予与撤销访问方式的权限和删除数据库的权限,并不意味着持有对数据库中的关系、视图和约束的相应权限。而对数据库中关系、视图和约束的删除的访问权限的授予和撤销也不需要具有其他权限。

3.多级关系的表示

安全数据视图模型安全策略要求是实施自主安全策略和所有支持策略的系统安全机制要由实施强制安全策略的安全内核约束。无论运行在TCB模型中,还是运行在TCB模型外的主体,都不能违反强制安全策略。

为了满足这一要求,TCB模型使用的所有信息都必须存储在MAC模型的客体中,并且对它的访问都经由强制策略控制。特别是每个多级关系,均必须存储在多级关系的客体中。由于MAC模型客体是单级的,所以每个多级关系必须分解,按照它们的访问等级分别存放在不同的客体中。

安全数据视图模型提供了将多级关系分解为关系模型中标准的单级关系的方法。在分解中,具有同一访问等级的属性作为一个单元处理。一个多级关系可以看做是定义在分解得到的若干单级关系上的一个视图。每个多级关系会映射到一个或多个由一个实施强制安全策略的访问监控器保护的单级存储客体上。因此,一个主体将不能访问基本关系中的任何数据,除非主体的读等级支配存储数据的客体的访问等级。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈