CN102063466B - 基于策略的数据库强制访问控制方法及其系统 - Google Patents

基于策略的数据库强制访问控制方法及其系统 Download PDF

Info

Publication number
CN102063466B
CN102063466B CN 201010578774 CN201010578774A CN102063466B CN 102063466 B CN102063466 B CN 102063466B CN 201010578774 CN201010578774 CN 201010578774 CN 201010578774 A CN201010578774 A CN 201010578774A CN 102063466 B CN102063466 B CN 102063466B
Authority
CN
China
Prior art keywords
strategy
node
access control
database
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010578774
Other languages
English (en)
Other versions
CN102063466A (zh
Inventor
张妍
陈驰
冯登国
张敏
徐震
张明波
谢炯
陈荣国
周成虎
熊伟
景宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
National University of Defense Technology
Institute of Geographic Sciences and Natural Resources of CAS
Original Assignee
Institute of Software of CAS
National University of Defense Technology
Institute of Geographic Sciences and Natural Resources of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS, National University of Defense Technology, Institute of Geographic Sciences and Natural Resources of CAS filed Critical Institute of Software of CAS
Priority to CN 201010578774 priority Critical patent/CN102063466B/zh
Publication of CN102063466A publication Critical patent/CN102063466A/zh
Application granted granted Critical
Publication of CN102063466B publication Critical patent/CN102063466B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开一种基于策略的数据库强制访问控制方法及其系统,其方法包括下列步骤:1)为数据库中的数据表建立多维索引树;2)将强制访问控制安全标签设定策略逐层叠加存储到多维索引树的节点上;3)基于叠加了策略的多维索引树进行用户访问控制。其系统包括前端和后端,前端包括策略管理组件和索引树组件,后端包括访问控制组件和策略修改组件。使用本发明管理员只需对海量数据库中的少量强制访问控制安全标签设定策略进行管理,从而大量减少时间和人力的耗费。将策略叠加于索引树上,使得数据的安全标签计算以及基于安全标签的访问控制可以和数据的检索过程结合为一体,减少了额外的检索耗时。提高了执行效率和数据访问的响应速率。

Description

基于策略的数据库强制访问控制方法及其系统
技术领域
本发明涉及数据库访问方法及其系统,尤其涉及一种基于策略的数据库强制访问控制方法及系统,属于数据处理技术领域。
背景技术
随着信息技术的飞速发展,信息数据正以爆炸式的方式发展,2009年,全球信息量仍达到80万PB,比上一年度增长62%。国际数据公司预计2010年这一数字将达到1.2ZB,约为2007年的8倍。随着数据量的飞速发展,存储海量数据的数据库安全已成为了一项严峻的挑战。
自主访问控制和强制访问控制是两种重要的数据库安全技术。自主访问控制技术允许用户自主定义数据的访问权限,即,有访问许可的主体能够直接或间接地向其他主体授予或收回访问权;强制访问控制则基于主客体的敏感程度强制限制主体对客体的访问。相比强制访问控制,自主访问控制更为高效,因其权限的管理完全自主,而强制访问控制却需要对海量的主客体实施严格的敏感标签管理。但是另一方面,自主访问控制难以保证权限不被无意或恶意地传播,因此强制访问控制更能保证访问控制的严格实施。
多级安全模型是最为常用的强制访问控制实施模型。在多级安全模型里,每一个主体和每一个客体都分配了一个安全标签,每个安全标签是一个二元组<ca,cl>,其中ca为一个无序集合,表示主客体所属的范畴,c1表示主客体所属的密级高低。所有的安全标签值组成了一个偏序集合,任意两个标签值L1和L2,L1>=L2当且仅当L1的密级高于L2的密级,且L1的范畴包含了L2的范畴。在多级安全模型里,安全模型关注的是严格的保密性,即上级不能向下级泄露机密,但下级可以向上级汇报信息,因此密级低的用户可以进行添加和写一些密级高的文件给上级看,但是上级不允许写任何密级低的文件给下级看,否则无法防止上级通过这一方式进行泄密。多级安全模型主要采用如下两种机制进行数据访问控制:(1)简单安全特性:一个主体只能读取访问标签值低于或等于他的标签值的客体;(2)星特性:一个主体只能写访问标签值高于或等于他的标签值的客体。现有的多级安全模型通过安全标签进行管理,保证了访问的严格安全性,但数据访问的响应速度较慢,访问的效率较低。
发明内容
针对上述现有数据访问控制技术的缺陷,本发明的目的是要将强制访问控制的严格安全性和自主访问控制的管理高效性相结合,既保障数据库的高级别安全性,又保证数据访问的响应速度以及前台应用的用户体验。本发明的基于策略的数据库强制访问控制方法,建立在多极安全模型上,其设定的强制访问控制安全标签设定策略能大幅减少反映数据库主客体敏感级的安全标签的管理耗费,并通过将安全标签设定策略叠加于多维索引树上的方法来提高访问控制的执行效率,在充分利用了强制访问控制方法高级别安全性的同时,将访问控制的管理效率提高到了自主访问控制的水平,并保证了高效的访问控制执行效率。
为了实现上述目的,本发明采用如下技术方案:一种基于策略的数据库强制访问控制方法,包括如下步骤:
1)为数据库中的数据表建立多维索引树;
2)将强制访问控制安全标签设定策略逐层叠加存储到多维索引树的节点上;
3)基于叠加了策略的多维索引树进行用户访问控制。
所述强制访问控制安全标签设定策略为<filter,label>,其中filter为条件约束表达式,label为安全标签,由密级和范畴集合组成;符合filter约束条件的所有数据记录,其安全标签值不低于label。策略也可以加上编号,成为三元组<num,filter,label>,其中num为策略编号。
所述将策略逐层叠加存储到索引树的节点的方法为:
从根节点开始遍历索引树,递归地将符合条件的策略叠加存储到节点上,所述符合条件的策略为:对于根节点和中间节点,该策略的filter约束条件被该节点所在子树中的数据记录全部满足,且该策略并未被存储在该节点的祖先节点中;
对于叶节点,该策略的filter约束条件被该节点所在子树中的数据记录全部或部分满足,且该策略并未被存储在该节点的祖先节点中。
具体来说,所述策略是指该策略的filter约束条件中的索引字段部分条件被叠加的节点所在子树中的数据记录满足或部分满足。是指节点子树中存储的所有数据记录都必定满足叠加到节点上的安全标签设定策略的filter约束条件中关于索引字段那一部分条件。
如,在某张员工信息表的“age”字段上建立索引,其可能存在一个叶结点存储了所有age值在10至15之间的员工数据记录,策略集合中有两条策略,策略1的filter中有一个age>15的条件,显然该叶结点中不会存在任何数据记录满足这一条件,因此策略1将不会被存储在该叶结点中;而策略2的filter中有一个age>12的条件,可以通过比较判定该叶结点中当前或者未来都有可能存在部分记录满足这一条件,因此该策略2将被存储于此叶结点中。
所述基于索引树进行用户访问控制的方法为:
A、接收用户访问请求,确定用户安全标签;用户安全标签可以使用多种现有技术实现,如证书、军用操作系统用户标签标定等。
B、从索引树根节点开始遍历索引树,检索符合用户访问请求的数据记录,检索的过程为:
(1)提取节点上存储的策略,选择与用户访问请求相关的策略;
(2)计算节点所有子树中与策略相关的数据记录的安全标签值;
(3)将数据记录的安全标签值与用户安全标签值对比,判定用户是否可以继续向下检索或访问数据记录。
所述计算数据记录的安全标签值方法,根据索引树查找与数据记录匹配的所有策略,计算这些策略安全标签值,若安全标签值可以比较大小,选取最高值为数据记录的安全标签值。
数据记录与策略匹配是指数据记录符合策略的filter约束条件中关于索引字段那一部分的条件。
基于预先由数据库管理员设定的强制访问控制安全标签设定策略,访问控制实施引擎自动根据索引树为每条数据记录查找可以与之匹配的所有策略,计算这些策略所对应标签值中的最高值,将其设定为该条数据记录所具有的安全标签值,无需由安全管理员手动为每一条数据记录设置安全标签,从而简化了安全标签管理和配置工作。
举例来说,某数据库中有一张数据表employee,若为其设置一条策略(1,filter1,label1),那么employee表中所有满足filter1所述条件的数据记录与该策略匹配,经过访问控制实施引擎的自动计算,可判定它们的标签值为label1,而其他不匹配这条策略的记录将被分配一个缺省的最低级别的标签值。若为其增加一条强制访问控制安全标签设定策略(2,filter2,label2),其中label2值高于label1,那么如果表中某一数据记录同时满足条件filter1和filter2,最终计算得出该记录的安全标签值为label2。
如果label2与label1无法比较大小,则取他们范畴的并集和他们密级中较大者作为最终标签。多条策略依次类推。
label2与label1无法比较大小有两种情况,一是两个安全标签值的范畴不能相互包含,比如label1的范畴为{d1,d2,d3},label2范畴为{d4,d5},两者不能相互包含;二是两个标签中label1标签的密级低于label2标签,label1标签的范畴包含label2标签的范畴。这两种情况label1和label2标签无法比较。
所述访问请求为约束表达式exp,包括当前访问的数据所应满足的条件和访问动作,访问动作包括插入、删除、查询或修改。其中增加为写操作,查询为读操作,删除和修改为读写操作。
遵循简单安全特性和星特性,用户访问应当满足如下条件(1)只能查询标签值小于或等于用户标签的数据记录(2)只能增加标签值大于或等于用户标签的数据记录(3)只能删除和修改标签值等于用户标签的数据记录。
所述判定用户是否可以继续检索的过程为:当访问动作为查询时,节点上的策略预示所有子树中的数据记录的安全标签值高于用户标签值或无法与用户标签值比对,则子树上的满足访问条件的数据记录将被全部拒绝访问,既不允许继续检索该节点子树。
当访问动作为修改或删除时,节点上的策略预示的所有子树中的数据记录的安全标签高于或低于用户标签值或无法与用户标签值比对,则子树上的满足访问条件的数据记录将被全部拒绝访问,不允许继续检索该节点子树。删除和修改操作有一个特性在于,需要用户同时具有读和写的权限,知道这个文件的存在,才能删除和修改(即写操作),因此,让用户和客体拥有相同的标签值,才能又读又写。
当访问动作为插入时,节点上的策略预示的所有子树中的数据记录的安全标签值都高于或等于用户标签值,则被增加的数据记录的安全标签值根据策略计算必定高于或等于用户标签值,不必检索子树中的策略,可以直接进行数据记录的插入。
所述节点上的策略预示子树中数据记录的安全标签值高于用户标签值的含义,指的是当遍历到中间节点A时,A存储的策略中所有filter与访问请求exp指定的条件完全匹配的那些策略组成了策略集合S,若S中存在一条策略的安全标签值高于用户标签值,则说明该节点子树中满足exp指定条件的所有记录其标签值一定高于该策略的安全标签值,自然也高于用户标签,此时若访问动作为查询/修改/删除,不应该继续检索该节点子树,否则将违背简单安全特性。
所述策略filter与访问请求exp指定的条件完全匹配指的是任意一条数据记录如果满足exp中的条件,就必定满足filter中所有条件,无论是关于索引字段的还是非索引字段的条件。如策略filter中有两个条件“年龄>10,工资>10000”,exp中有三个条件“年龄>20,工资>15000,性别=女”,显然,满足exp的纪录一定会满足filter,因此该策略与访问请求exp匹配。
策略fi lter与访问请求exp指定的条件部分匹配指的是任意一条数据记录如果满足exp中的条件,有可能满足filter中所有条件;策略filter与访问请求exp指定的条件不匹配指的是任意一条数据记录如果满足exp中的条件,就一定不满足filter中所有条件;
当访问动作为查询,修改和删除时,节点上的策略预示的所有子树中的数据记录的安全标签值高于用户标签值或与用户标签值不能比较,则子树上的满足访问条件的数据记录将被全部拒绝访问,即不允许继续检索该节点子树。
当访问动作为插入时,节点上的策略预示的所有子树中的数据记录的安全标签值都高于或等于用户标签值,可以不用查询子树中的策略,直接向子树添加数据。
若无法得出子树数据全部拒绝查询/修改/删除或可以直接将数据添加到子树叶结点中这样的判定结论,那么将选出的策略存储到一个策略集合A中。若该节点是中间节点,那么将策略集合A向下传递给子树节点,递归遍历其子树节点;若该节点是叶子节点,且当前的访问是查询,修改或者删除,则检索出所有叶子节点中存储的符合本次用户请求exp条件的数据记录,使用策略集合A中的策略计算其安全标签值,并与用户标签比对,判定是否可以对该数据记录执行操作,若当前的访问操作是插入数据,则使用策略集合A中的策略计算插入数据的安全标签值,并与用户标签比对,判定是否可以对该数据记录执行插入操作。
用户安全标签值高于数据记录安全标签值是指当且仅当用户安全标签的的密级高于数据记录安全标签的密级,且用户安全标签的范畴包含了数据记录安全标签的范畴。当用户安全标签的密级等于数据记录安全标签的密级,且用户安全标签的范畴等于数据记录安全标签的范畴时,用户安全标签值等于数据记录的安全标签值。当用户安全标签的密级低于数据记录安全标签的密级,且用户安全标签的范畴被包含于数据记录安全标签的范畴时,用户安全标签值低于数据记录的安全标签值。
所述索引树为R索引树,R+索引树或四叉树索引。
本发明方法也同样适用于支持空间矢量数据类型的空间数据库的空间查询访问控制。将空间数据库中的空间数据表生成R+索引树即可,R+索引树是一种空间索引树,空间数据库中的空间数据表一般拥有一个空间矢量数据类型的字段,表示每条数据记录对应的实体的空间分布,本发明方法可对一定空间分布范围内空间数据记录的查询进行细粒度的访问控制,细粒度体现于同一条数据记录的空间分布的不同片段可能具有不同的安全标签值,使用本方法可以阻止用户访问空间数据记录的空间分布形状中其标签值不允许他查询的任意片段信息。运用于空间数据库之上时,强制访问控制安全标签设定策略的设置方式同其他类型的关系数据库相同,而在利用叠加策略的索引树执行访问控制这一方面,只需对前述方法进行部分扩展,即可利用索引树对一定空间范围内空间数据表的查询进行细粒度的访问控制。使用空间裁剪手段对空间矢量数据的分布形状进行裁剪,裁去用户不可访问的分布区域,就达成了细粒度访问控制的目的。
本发明的另一目的是提供一种上述基于策略的数据库强制访问控制系统,包括前端和后端,前端包括策略管理组件和访问请求组件,后端包括访问控制组件和策略修改组件。其中策略管理组件向管理员提供了添加、删除、查询或修改强制访问控制安全标签设定策略的接口或图形界面;访问请求组件处理用户的请求并接受后端返回的结果;策略修改组件将强制访问控制安全标签设定策略叠加到索引树上,或从索引树上删除策略;访问控制组件收到前端发起的请求后,检索叠加了策略的索引树,获取用户授权可以访问的数据记录,最后将结果返回给前端。
通常在海量数据库中,数据表中的数据记录数往往具有百万,千万甚至更高的数量级,管理员手动为每一条数据记录评估,设定和维护安全标签将耗费大量时间和人力。本专利的方法让数据库管理系统遵照管理员的安全考虑自动为海量数据库中的数据设置强制访问控制安全标签,并在处理用户数据访问请求的同时高效地执行强制访问控制的方法。本发明可以大幅减轻管理员的工作量,对敏感数据,特别是涉及国家安全、科技协作交流和知识产权保护等方面的数据实施严格的,不可绕过的分级保护的同时,保证数据访问的响应速度以及前台应用的用户体验。
因此,和现有技术相比,本发明具有如下优点
(1)更加实用,可大幅降低管理成本
使用本发明管理员只需对海量数据库中的少量强制访问控制安全标签设定策略进行管理,而无须管理与日俱增的千万甚至亿万级别的数据安全标签本身,从而大量减少时间和人力的耗费
(2)更高的执行效率
将策略叠加于索引树上,使得数据的安全标签计算以及基于安全标签的访问控制可以和数据的检索过程结合为一体,同步进行,从而减少了额外的检索耗时。此外,叠加于中间节点的策略可以提前中止对不包含任何可授权访问数据的子树的搜寻,减少了不必要的检索消耗,当用户可被授权访问的数据量相对较少时,剪枝的几率大幅上升,其数据访问的响应速率甚至很有可能高于未实施访问控制保护的数据库。
附图说明
图1为本发明方法中策略逐层叠加存储到索引树的过程流程图;
图2为本发明方法中基于叠加了策略的索引树进行用户访问控制的过程流程图;
图3为本发明的控制系统结构示意图;
图4为实施例1中员工信息表索引树分割效果示意图;
图5为实施例1中叠加了策略的员工信息表索引树示意图;;
图6为实施例2中进行访问控制的空间数据库的空间展示示意图;
图7为实施例2中为石油表所建立的索引树分割效果示意图;
图8为实施例2中叠加了策略的索引树
图9为实施例2中对空间数据库进行访问请求后获得的查询结果图。
具体实施方式
下面通过实施例结合附图对本发明作进一步描述。
基于策略的数据库强制访问控制系统,包括前端和后端,前端包括策略管理组件和访问请求组件,后端包括访问控制组件和策略修改组件。其中策略管理组件向管理员提供了添加、删除、查询或修改强制访问控制安全标签设定策略的接口或图形界面;访问请求组件处理用户的请求并接受后端返回的结果;策略修改组件将强制访问控制安全标签设定策略叠加到索引树上,或从索引树上删除策略;访问控制组件收到前端发起的请求后,检索叠加了策略的索引树,获取用户授权可以访问的数据记录,最后将结果返回给前端。参见图3
基于策略的数据库强制访问控制方法用下述两个实施例来进一步说明。
实施例1
本实例对一个普通数据库的员工信息表实施强制访问控制。该员工信息表包括5个字段,编号,姓名,工资,部门,该数据表存储的信息如下:
利用本方法对该数据库中各数据表进行空间查询访问控制的过程如下:
1)为数据库中的空间数据表建立索引树,该索引树为R+索引树,索引字段为{工资,年龄},该树包括根节点在内共有三层节点,其节点空间分割效果如图4所示。
2)将强制访问控制安全标签设定策略逐层叠加存储到索引树的节点上;
a.首先设定一个安全标签集合L,其中的每一个元素由两个分量组成,第一个是范畴category,取值为{Dep1,Dep2}的任一子集,第二个为密级class,可以取值topsecret、secret或public.其中topsecret>secret>public.对于L中的任意两个标签值a,b,如果a的范畴值是b的范畴的子集,且a的密级小于等于b的密级,那么a的标签值低于b的标签值。
b.为该表设定7条强制访问控制安全标签设定策略:
Num=1,filter:空,label=<{},public>,
Num=2,filter:salary>10000,label=<{},topsecret>
Num=3,filter:age>40,salary<3500,部门=Dep1,label=<{Dep1},secret>
Num=4,filter:age>40,salary<3500,部门=Dep2,label=<{Dep2},secret>
Num=5,filter:age<40,部门=Dep1,abel=<{Dep1},topsecret>
Num=6,filter:age<40,salary>8000,部门=Dep1,label=<{Dep1},topsecret>
Num=7,filter:age<40,salary>8000,部门=Dep2,label=<{Dep2},secret>
其中第一条策略为缺省策略,为所有表中的所有记录设定最低级别的标签;
c.扩展索引树,在每个节点初始化出一个策略存储空间;
d.从根节点开始遍历索引树,递归地将符合条件的策略叠加存储到每个节点的策略存储空间,对根节点,叠加上的策略的filter约束条件关于索引字段{工资,年龄}的部分应该被节点子树中存储的数据记录满足,且该策略并未已经存储于该节点的祖先节点中;
对于叶节点,叠加上的策略的filter约束条件关于索引字段{工资,年龄}的部分应该被节点子树中存储的数据记录全部或部分满足,且该策略并未已经存储于该叶节点的祖先节点中。
具体对员工信息表来说,策略1满足在第一层节点中存储的符合条件的数据记录,由于策略1的filter条件为空,那么根节点的子树中存储的所有数据记录都必定满足这一条件,因此策略1满足特性1,被叠加到根节点上,其他策略均不具有这一特性,因此无法叠加。由于第二层节点R1为中间节点,叠加于其上的策略是满足特性1的策略,其中只有策略5满足这一特性,因为所有R1中的子树的数据记录的年龄(age)字段的值都小于40,所以都可以与策略5的filter中的age<40条件匹配。R2为叶子节点,叠加于其上的策略是满足特性2的策略2,3,4。第三层节点R11,R12均为叶子节点,叠加于其上的策略分别为策略6,7和策略2,6,7。叠加了策略的索引树见图5。
3)基于叠加了策略的索引树进行用户访问控制。
A、接收用户访问请求,确定用户安全标签;
收到用户张三对该数据库发起的插入一条数据{李军,35,18000,Dep1}的请求,并已知张三用户标签设定为<{Dep1},secret>.因此请求的exp可以写为姓名=李军,年龄=35,工资=18000,部门=Dep1
B、从索引树根节点开始遍历索引树,过程为:
检索根节点中策略1,发现其filter与请求的数据部分匹配,将策略选入临时集合S。
由于该记录age=35<40选择节点R1进行遍历,发现R1中策略5其filter与请求的数据exp完全匹配,且标签值并高于用户标签,说明将添加的数据记录标签值一定高于用户标签数据,可以不用继续在子节点上执行访问控制判定,直接遍历子树,将数据插入R12叶节点。
实施例2:
本实例对一个空间数据库的4张空间数据表查询操作实施强制访问控制,由于非空间数据库的强制访问控制安全标签设定策略的指定过程和叠加过程与空间数据库完全一样,而空间数据基于叠加了策略的索引树进行访问控制判定的过程只是比非空间数据库多了一道授权裁剪的过程,因此在实际应用中,可以容易的参照本实例将本发明方法应用于非空间数据库的访问控制。
本实例涉及的空间数据库包括4张要素表:admin、coal、soil、gas,分别记录了某省境内的行政市区、煤矿、稀土矿、油田的相关信息。4张表的信息如下。
表1行政区要素表
  ID   名称   面积   空间分布
  1   A市   1200   Geo11
  2   B市   1300   Geo12
  3   C市   790   Geo13
  4   D市   2200   Geo14
表2石油要素表
  ID   名称   年产量   空间分布
  1   SA01   524   Geo41
  2   SA02   653   Geo42
  …   …   …   …
表3煤矿要素表
  ID   名称   年产量   空间分布
  1   R01   3.56   Geo21
  2   R02   7.24   Geo22
  …   …   …   …
  6   R06   6.98   Geo26
表4稀土要素表
  ID   名称   年产量   空间分布
  1   CA01   5000   Geo31
  2   CA02   7800   Geo32
  …   …   …   …
每张数据表都有一个空间分布字段表示每条数据记录在地图上的矢量分布,空间数据库的信息在地图上现实的效果是所有空间数据表对应的空间矢量数据叠加的结果,每张数据表表示为地图上的一个图层,图6展示了本实例中4张数据表在空间地图上叠加显示的效果。
利用本方法对该数据库中各数据表进行空间查询访问控制的过程如下:
1)为数据库中的空间数据表建立索引树,该索引树为R+索引树;
在本实施例中为四张空间数据表建立索引树,以石油要素表为例,图8显示了石油要素的R+索引树。该索引树共有两层节点。第一层根节点对应全平面的空间范围,第二层有两个叶节点,每个节点分别对应空间分布范围M1和M2,相应地,分别存储了空间范围M1和M2内的石油矿数据记录。
2)将强制访问控制安全标签设定策略逐层叠加存储到索引树的节点上;
根据空间数据库的数据表设定一个安全标签集合L,其中的每一个元素由两个分量组成,第一个是范畴category,取值为{A,B,C,D}的任一子集,第二个为密级class,可以取值topsecret、secret或public.其中topsecret>secret>public。
为该空间数据库设定8条强制访问控制安全标签设定策略。策略简要表示如下,其中为了方便描述,所有策略的filter值我们采用自然语言进行描述,在实际应用中,可以使用各种形式化手段对其建模:
Num=1,filter:空,label=<{},public>,
Num=2,filter:军事区内的石油矿,稀土矿或煤矿,label=<{},topsecret>
Num=3,filter:A市市区内的石油矿,label=<{A},secret>,
Num=4,filter:B市市区内的石油矿,label=<{B},secret>,
Num=5,filter:C市市区内的石油矿,label=<{C},secret>,
Num=6,filter:D市市区内的石油矿,label=<{D},secret>,
Num=7,filter:A市市区内年产量大于2.5亿吨的稀土矿,label=<{A},secret>
Num=8,filter:B市市区内年产量大于0.8亿吨的稀土矿,label=<{B},secret>,
Num=9,filter:C市市区内年产量大于1.75亿吨的稀土矿,label=<{C},secret>
Num=10,filter:D市市区内年产量大于2.31亿吨的稀土矿,label=<{D},secret>
其中第一条策略为缺省策略,为所有的空间数据表中的所有记录设定最低级别的标签;策略2将图6中军事区范围内的所有矿产资源的标签密级设定为topsecret;3-6条策略将A-D四市境内的所有石油资源的范畴设定为其所在市对应的范畴,密级设定为secret;7-10条策略将四市境内所有储量大于某一限定值的稀土矿的范畴设定为其所在市对应的范畴,密级设定为secret.
首先扩展索引树,在每个节点初始化出一个策略存储空间;
然后从根节点开始遍历索引树,递归地将符合条件的策略叠加存储到每个节点的策略存储空间,对根节点,叠加上的策略的filter约束条件应该被节点子树中存储的数据记录都满足;
对于叶节点,叠加上的策略的filter约束条件应该被节点子树中存储的数据记录全部或部分满足。
具体对石油要素表来说,策略1满足在第一层节点中存储的符合条件的数据记录,由于策略1的filter条件为空,那么根节点的子树中存储的所有数据记录都必定满足这一条件,因此策略1满足特性1,被叠加到根节点上,其他策略均不具有这一特性,因此无法叠加。由于第二层节点m1,和m2均为叶子节点,叠加于其上的策略是满足特性1或者特性2的策略,因此最终叠加于m1的策略为2和3,m2上存储的策略为2,4,5,6。叠加了策略的索引树见图8。
3)基于叠加了策略的索引树进行用户访问控制。
A、接收用户访问请求,确定用户安全标签;
收到用户张三对该数据库发起的对A,B,C三市范围内的所有空间数据查询的请求,并已知张三为B市市长,其用户标签设定为<{B},secret>.
B、从索引树根节点开始遍历索引树,检索符合用户访问请求的空间数据表的数据记录,检索的过程为:
提取节点上存储的策略,选择与用户访问请求相关的策略;
计算该节点所有子树中与策略相关的数据记录的安全标签值;
将数据记录的安全标签值与用户安全标签值对比,当用户安全标签值高于数据记录的安全标签值时,判定用户可以访问该数据记录。
具体以石油要素表为例进行具体说明,对石油要素表的索引树的遍历从根节点开始,根据根节点中存储的策略1与用户张三所请求的A,B,C三市范围内的所有石油矿数据相关,该策略的安全标签值<{},public>低于张三的安全标签值<{B},secret>,则允许继续检索该节点子树。策略不会阻止对子树的遍历。
由于A,B,C三市的空间范围与M1,M2均有交叠,因此遍历过程需要分别检索叶节点M1和M2。在检索M1时,提取节点上存储的策略,选择与用户访问请求相关的策略2、3;取出该节点中存储的所有数据记录,根据m1中存储的策略2、3以及根节点处传下来的策略1计算它们的安全标签值,R1的数据记录与策略1和3符合,选取策略1和3中安全标签值高的标签值,计算的结果为石油矿R1的标签值为<{A},secret>,R2的一部分片段的标签值是<{A},topsecret>,另一部分片段的标签值是<{A},secret>,而石油矿R4在A市范围内的片段标签值也为{A},secret>。由于用户的标签值并没有高于或等于该值,所以用户不允许查看这些空间数据表的数据记录所对应的空间矢量数据。
在访问M2时,同样地,取出该节点中存储的所有位于A,B,C三市内的数据记录,根据M2中存储的策略以及根节点处传下来的策略1计算它们的安全标签值,计算出石油矿R3,R4在B市范围内的片段标签值为{B},secret>,恰好等于用户的标签值,因此张三可以访问这两座石油矿在B市范围内的空间数据表的数据记录。
C、根据上述的数据记录,使用空间裁剪手段对数据记录对应的空间矢量数据的分布形状进行裁剪,获得用户最终可访问的空间矢量数据。即将用户不能访问的数据剪裁掉,只保留允许用户查询的数据。
对于其他的几张空间数据表,可以使用相同的方法对其进行细粒度的访问控制和数据检索,最终返回给用户张三的访问结果见图9。
综上所述,本发明提出一种基于策略的数据库强制访问控制方法和系统。该方法为数据库尤其是海量数据库设置强制访问控制安全标签设定策略,并将策略叠加到索引树上,使得数据库中所有数据记录的安全标签值可由数据库管理系统自动计算,减轻了安全管理员管理大规模安全标签的工作量;由于在数据的安全标签计算,以及基于安全标签的访问控制均在使用索引树检索数据的过程中同时进行,大大提高了强制访问控制的执行效率,在对海量敏感数据提供严格的不可绕过的分级保护的同时,保证数据访问的响应速度以及前台应用的用户体验。此外,本发明也可应用于大规模空间数据库之上,对一定空间范围内的空间数据查询实施细粒度的强制访问控制。

Claims (10)

1.一种基于策略的数据库强制访问控制方法,包括如下步骤:
1)为数据库中的数据表建立多维索引树;
2)将由<filter,label>二元组构成的强制访问控制安全标签设定策略逐层叠加存储到多维索引树的节点上;其中flter为条件约束表达式,label为安全标签,由一个密级和一个范畴集合组成;所述叠加的方法为:
从根节点开始遍历索引树,递归地将符合条件的策略叠加存储到节点上,所述符合条件的策略为:对于根节点和中间节点,该策略的filter约束条件被该节点所在子树中的数据记录全部满足,且该策略并未被存储在该节点的祖先节点中;对于叶节点,该策略的filter约束条件被该节点所在子树中的数据记录全部或部分满足,且该策略并未被存储在该节点的祖先节点中;
3)基于叠加了策略的多维索引树进行用户访问控制。
2.如权利要求1所述的基于策略的数据库强制访问控制方法,其特征在于所述第3)步骤的方法为:
A、接收用户访问请求,确定用户安全标签;所述访问请求包括访问的数据应满足的条件和访问动作;访问动作包括插入、删除、修改或查询;
B、从索引树根节点开始遍历索引树,检索符合用户访问请求的数据记录,检索的过程为:
(1)提取节点上存储的策略,选择与用户访问请求相关的策略;
(2)计算节点所有子树中与策略相关的数据记录的安全标签值;
(3)将数据记录的安全标签值与用户安全标签值对比,判定用户是否可以继续向下检索或访问数据记录。
3.如权利要求2所述的基于策略的数据库强制访问控制方法,其特征在于所述计算数据记录的安全标签值方法为:
a)根据索引树查找与数据记录匹配的所有策略,计算各策略的安全标签值;
b)比较各策略的安全标签值大小:
若安全标签值可以比较大小,选取最高值为数据记录的安全标签值;
若安全标签值无法比较大小,取所有安全标签值的范畴的并集和密级中最高者作为最终标签值。
4.如权利要求3所述的基于策略的数据库强制访问控制方法,其特征在于当访问动作为查询时,节点上的策略预示的所有子树中的数据记录的安全标签值高于用户标签值或无法与用户标签值比对,不允许继续检索该节点子树。
5.如权利要求3所述的基于策略的数据库强制访问控制方法,其特征在于当访问动作为修改或删除时,节点上的策略预示的所有子树中的数据记录的安全标签高于或低于用户标签值或无法与用户标签值比对,不允许继续检索该节点子树。
6.如权利要求3所述的基于策略的数据库强制访问控制方法,其特征在于当访问动作为插入时,节点上的策略预示的所有子树中的数据记录的安全标签值都高于或等于用户标签值,则被增加的数据记录的安全标签值根据策略计算高于或等于用户标签值,直接进行数据记录的插入。
7.如权利要求1-6中任一权利要求所述的基于策略的数据库强制访问控制方法,其特征在于多维索引树为R索引树,R+索引树或四叉树索引。
8.如权利要求7所述的基于策略的数据库强制访问控制方法,其特征在于数据库为空间数据库。
9.如权利要求8所述的基于策略的数据库强制访问控制方法,其特征在于对空间数据库的索引树进行检索的方法为在第(3)步骤后增加一步骤:
根据允许访问的数据记录,使用空间裁剪方法对数据记录对应的空间数据的分布形状进行裁剪,获得用户可访问的空间矢量数据。
10.一种基于策略的数据库强制访问控制系统,其特征在于,包括:
为数据库中的数据表建立多维索引树的模块;
将由<filter,label>二元组构成的强制访问控制安全标签设定策略逐层叠加存储到多维索引树的节点上的模块;其中filter为条件约束表达式,label为安全标签,由一个密级和一个范畴集合组成;所述叠加的方法为:从根节点开始遍历索引树,递归地将符合条件的策略叠加存储到节点上,所述符合条件的策略为:对于根节点和中间节点,该策略的filter约束条件被该节点所在子树中的数据记录全部满足,且该策略并未被存储在该节点的祖先节点中;对于叶节点,该策略的filter约束条件被该节点所在子树中的数据记录全部或部分满足,且该策略并未被存储在该节点的祖先节点中;
基于叠加了策略的多维索引树进行用户访问控制的模块。
CN 201010578774 2010-12-03 2010-12-03 基于策略的数据库强制访问控制方法及其系统 Expired - Fee Related CN102063466B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010578774 CN102063466B (zh) 2010-12-03 2010-12-03 基于策略的数据库强制访问控制方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010578774 CN102063466B (zh) 2010-12-03 2010-12-03 基于策略的数据库强制访问控制方法及其系统

Publications (2)

Publication Number Publication Date
CN102063466A CN102063466A (zh) 2011-05-18
CN102063466B true CN102063466B (zh) 2012-12-26

Family

ID=43998742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010578774 Expired - Fee Related CN102063466B (zh) 2010-12-03 2010-12-03 基于策略的数据库强制访问控制方法及其系统

Country Status (1)

Country Link
CN (1) CN102063466B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2696303B1 (en) * 2012-08-03 2017-05-10 Alcatel Lucent Mandatory access control (MAC) in virtual machines
CN104391931A (zh) * 2014-11-21 2015-03-04 浪潮电子信息产业股份有限公司 一种云计算中海量数据高效索引方法
CN104394175B (zh) * 2014-12-17 2017-11-21 中国人民解放军国防科学技术大学 一种基于网络标记的报文访问控制方法
CN105550241B (zh) * 2015-12-07 2019-06-25 珠海多玩信息技术有限公司 多维数据库查询方法及装置
CN108628879B (zh) * 2017-03-19 2023-04-07 上海格尔安全科技有限公司 一种带优先级策略的访问控制构造的检索方法
CN107133528A (zh) * 2017-05-02 2017-09-05 山东浪潮通软信息科技有限公司 一种数据库存储的密级保护实现方法及装置
CN108270782B (zh) * 2018-01-15 2020-05-26 中国科学院信息工程研究所 一种基于安全标签的访问控制方法及系统
CN117290893A (zh) * 2023-09-25 2023-12-26 北京万里开源软件有限公司 一种基于数据标签的数据库访问方法及系统

Also Published As

Publication number Publication date
CN102063466A (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
CN102063466B (zh) 基于策略的数据库强制访问控制方法及其系统
US7548935B2 (en) Method of recursive objects for representing hierarchies in relational database systems
US7080081B2 (en) Multidimensional data clustering scheme for query processing and maintenance in relational databases
Jindal et al. Relax and let the database do the partitioning online
Theodoridis et al. Specifications for efficient indexing in spatiotemporal databases
US7890497B2 (en) Using estimated cost to schedule an order for refreshing a set of materialized views (MVS)
Botea et al. PIST: An efficient and practical indexing technique for historical spatio-temporal point data
US7765211B2 (en) System and method for space management of multidimensionally clustered tables
US8478742B2 (en) Using estimated cost to refresh a set of materialized views (MVS)
US7734602B2 (en) Choosing whether to use a delayed index maintenance depending on the portion of the materialized view (MV) changed
CN102968501B (zh) 一种通用的全文搜索方法
US7069264B2 (en) Stratified sampling of data in a database system
US20060047622A1 (en) Using join dependencies for refresh
CN103262074A (zh) 并行再分区索引扫描
EP1425682A2 (en) Database processor for on-line analytical processing of multidimensional data
EP3365812A1 (en) Create table for exchange
CN102867065B (zh) 基于关系型数据库的数据汇总装置和方法
CN111209296A (zh) 数据库访问方法、装置、电子设备及存储介质
Min et al. A system framework for map air update navigation service
Kollios et al. Indexing mobile objects using dual transformations
Jensen et al. Temporal Specialization.
Feng et al. Mining inter-transaction associations with templates
Boulos et al. Cost estimation of user-defined methods in object-relational database systems
Kim et al. Selective scan for filter operator of scidb
Hwang et al. Efficient Algorithms for Attribute-Oriented Induction.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121226

Termination date: 20171203

CF01 Termination of patent right due to non-payment of annual fee