首页> 中国专利> 一种本源XML数据库中XML文档的访问控制方法

一种本源XML数据库中XML文档的访问控制方法

摘要

一种本源XML数据库中XML文档的访问控制方法:(1)在X-RBAC模型的基础上,定义了XML访问控制系统的一种策略模型;(2)给出了该模型的一种树形策略结构;(3)策略结构可以采用XML文档的形式描述,将这些访问控制策略封装成一棵策略子树;(4)在此基础上提出了一种有效策略决策算法,根据访问控制策略为特定的用户或角色生成Schema文档中某个节点子树的安全视图;(5)对策略决策实施效率提出改进方案,设计了一种压缩保存标记树的方法,既可以减少存储空间又提高了策略决策效率。

著录项

  • 公开/公告号CN102262667A

    专利类型发明专利

  • 公开/公告日2011-11-30

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201110212834.5

  • 发明设计人 郎波;张然;

    申请日2011-07-27

  • 分类号G06F17/30;G06F21/22;

  • 代理机构北京科迪生专利代理有限责任公司;

  • 代理人李新华

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 03:47:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-09-17

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20121212 终止日期:20130727 申请日:20110727

    专利权的终止

  • 2012-12-12

    授权

    授权

  • 2012-04-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20110727

    实质审查的生效

  • 2011-11-30

    公开

    公开

说明书

技术领域

针对非结构化数据管理系统的安全控制机制,设计一种基于XML技术的非 结构化数据XML访问控制方法。

背景技术

2001年,美国国家标准化和技术委员会(NIST)提出了标准的基于角色的 访问控制RBAC(Role-Based Access Control)参考模型NIST RBAC。该模型分 成核心RBAC、等级RBAC和约束RBAC三个子模型。核心RBAC定义了参考模型 的基本功能,它包括五个基本数据元素:用户(Users)、角色(Roles)、会话集 (Sessions)、客体(Objects)、操作(Operations),以及角色权限分配(PRA)、 用户角色分配(URA)。其基本思想是通过角色建立用户和访问权限之间的多对 多关系,用户由此获得访问权限。

XML Schema定义了XML文档的合法构建模块,它使用一系列合法的元素来 定义文档的结构,类似DTD(Document Type Definition,文档类型定义)。XML  Schema本身是一个结构良好的XML文档,因此在XML Schema上进行访问授权, 而XML文档中的元素继承相应Schema元素的权限。

针对XML文档的层次结构,以Schema节点为客体,定义基于角色的XML 访问控制模型,即X-RBAC模型。

发明内容

本发明解决的技术问题:针对AUDR安全控制的需求,重点研究了在X-RBAC 模型的基础上,利用XML技术实施数据访问控制,实现了系统的安全控制机制。

本发明的技术方案是:一种本源XML数据库中XML文档的访问控制方法, 在X-RBAC模型的基础上,定义了XML访问控制系统的一种策略模型,给出了该 模型的一种策略结构,并设计了策略模型的一种策略决策方法及其效率改进方 案。其特征在于采用如下步骤:

(1)在基于角色的XML访问控制模型X-RBAC的基础上,建立XML访问控 制系统的策略模型;

(2)构建该模型的树形策略结构;

(3)策略结构采用XML文档的形式描述,将这些访问控制策略封装成一棵 策略子树,即把策略子树作为相应Schema节点的子树从而加入Schema文档中, 作出基于Schema文档的策略组织结构;

(4)当用户请求访问Schema文档中的某个节点时,访问控制系统首先需 要获取相关的访问控制策略,然后根据冲突解决机制进行策略决策,并生成该 节点,即节点子树的安全视图,最后系统根据安全视图控制用户对节点的访问 请求;

(5)实施策略决策。

所述的步骤(1)中所述策略模型中,访问控制规则表示为五元组 rule(roles,schema_node,action,permission,propagation);

(1.a)roles表示角色,为系统中角色集的一个子集,是访问控制策略的 主体;

(1.b)schema_node表示schema节点,包括元素节点和属性节点,不含 文本节点,本文以元素节点为访问控制保护的对象,属性节点的权限继承于相 应元素节点的权限,它是访问控制策略的客体,并采用XPath来描述;

(1.c)action表示行为,为主体对客体实施的操作,包括“read”、 “create”、“write”、“delete”,分别表示读、添加、更新及删除四种操 作;

(1.d)permission表示权限,为主体对客体执行某种操作的许可,取 “permit”、“deny”两种值,从而实现肯定授权和否定授权两种授权方式,访 问控制规则中,使用“+”、“-”两种符号sign来分别表示肯定授权或否定授权;

(1.e)propagation表示传播选项,为授权传播的深度,取值为“*”、“0” 或具体正整数“n”,实现三种传播方式:

“*”传播,即瀑布式传播,授权规则作用范围为自身节点及所有子节点;

“0”传播,即无传播,授权规则作用范围仅为自身节点,

“n”传播,n取值为正整数,授权规则作用范围为自身节点及深度小于等 于n的所有子节点。

所述的步骤(4)进一步包括:

请求用户的当前角色为guest,执行操作为read,访问节点为<node>,所 述<node>为target.xsd中的节点,则针对该节点子树的策略决策流程如下:

(4.a)读取Schema文档target.xsd中以节点<node>为根的整个子树,并 将其解析为Document Object Model树,即DOM树;

(4.b)获取当前子树的根节点root,并读取该节点及其祖先节点上定义 的所有策略;

(4.c)从步骤(4.b)获得的所有策略中,获得与当前角色guest和操作 read相关的策略policy;

(4.d)如果获得的策略policy为空,则根据系统定义的默认策略,为root 节点添加否定标记“-”;否则,根据策略传播及冲突解决机制,对节点应用该 获得的策略;如果结果为“permit”,为节点添加肯定标记“+”,否则添加否定 标记“-”;

(4.e)如果root节点有子节点,以每个子节点为一颗子树返回(4.b)遍 历;否则结束遍历,并生成带“+”、“-”标记的标记树Label Tree;

(4.f)对标记树进行剪枝生成Schema节点子树的安全视图;为了保持 Schema结构及访问控制策略定义的灵活性,采用的剪枝原则为:剪去所有仅包 含否定节点的子树;

最后,XML文档中节点<node>及其子节点的访问权限由该Schema节点子 树的安全视图决定;如果安全视图中含有某个节点,则该节点允许访问,否则 不允许访问。

所述的步骤(5)实施策略决策,包括如下步骤:

(5.a)为系统中的每个角色分配一个唯一的素数ID;

(5.b)对于一个Schema文档,把所有角色同一种操作的标记树合为一个 新标记树,新标记树的每个节点仅记录一个整数,该整数为所有允许访问该节 点的角色ID之积;如果不存在允许访问的角色,则该整数为1;

(5.c)显然Schema节点记录的整数个数与操作个数相同,进一步把这些 整数封装成一个<number>元素节点,该节点的子节点为四种操作组成的子节点, 其值为相应的整数;

(5.d)把<number>元素节点作为相应Schema节点的子节点与其绑定后添 加到Schema文档中,从而实现新标记树的保存;

(5.e)新标记树中,如果节点某一操作的取值能被角色ID整除,则该角 色允许对该节点执行这个操作;否则不允许。

本发明的优点在于:用户每次请求访问XML文档中的节点时,访问控制系 统都需要根据决策流程进行策略决策。而该决策流程中的查找策略、生成标记 树、剪枝等操作都是非常耗时的过程,因此决策的时间较长。而且当访问请求 频繁时,访问控制系统的效率就会急剧下降,因此效率问题成为访问控制系统 的瓶颈问题。本发明提出一种保存标记树的方法,并对标记树进行压缩存储, 使策略决策时不必考虑查找策略、验证策略的操作,既可以减少存储空间又提 高了策略决策效率。

附图说明

图1为策略结构图;

图2为基于Schema的策略组织结构图;

图3(a)为角色admin的标记树图;图3(b)为角色guest的标记树图;

图4为记录角色的标记树图;

图5为记录权限字的标记树图;

图6为Schema文档的权限树图;

图7为策略模型实施流程图。

具体实施方式

下面参考附图,对本发明的实施例进行详细的说明。

首先对XML访问控制策略模型定义进行说明。在XML访问控制策略模型中, 访问控制规则表示为五元组rule(roles,schema_node,action,permission, propagation)。具体定义如下:

(1)roles表示角色,为系统中角色集的一个子集,是访问控制策略的主 体。

(2)schema_node表示schema节点,包括元素节点和属性节点,不含文 本节点。本文以元素节点为访问控制保护的对象,属性节点的权限继承于相应 元素节点的权限。它是访问控制策略的客体,并采用XPath来描述。

(3)action表示行为,为主体对客体实施的某种操作,包括“read”、 “create”、“write”、“delete”等,分别表示读、添加、更新及删除四种 操作。

(4)permission表示权限,为主体对客体执行某种操作的许可,取 “permit”、“deny”两种值,实现肯定授权和否定授权两种授权方式,并使用 “+”、“-”两种符号(sign)来表示。

(5)propagation表示传播选项,为授权传播的深度,取值为“*”、“0” 或具体正整数“n”,实现三种传播方式:

“*”传播,即瀑布式传播,授权规则作用范围为自身节点及所有子节点。

“0”传播,即无传播,授权规则作用范围仅为自身节点。

“n”传播,n取值为正整数,授权规则作用范围为自身节点及深度小于等 于n的所有子节点。

根据策略模型给出了一种策略结构,如图1所示(*表示0个或多个子节点, 表示属性节点)。

从图1可以看出,策略结构是一种层次结构,可以采用XML文档的形式描 述,有利于策略管理和决策。

访问控制规则的一个主要目的就是用来定义对客体的某种操作权限,而策 略模型中的客体是Schema节点,为此将定义在同一Schema节点上访问控制规 则组成一组访问控制策略,定义在不同Schema节点上的访问控制规则位于不同 的访问控制策略中。同时,将这些访问控制策略封装成一棵策略子树,融入 Schema文档中,即把策略子树作为相应Schema节点的子树从而加入Schema文 档中。

如图2所示,显示了基于Schema文档的策略组织结构。其中,节点 <basicfeature>的子节点<policy>详细的给出了策略子树的结构,其他 <policy>节点的结构与其相同。为简单起见,图2中的使用<policy>元素代替 策略子树。

当用户请求访问Schema文档中的某个节点时,访问控制系统首先需要获取 相关的访问控制策略,然后根据冲突解决机制进行策略决策,并生成该节点(即 节点子树)的安全视图,最后系统根据安全视图控制用户对节点的访问请求。 假设请求用户的当前角色为guest,执行操作为read,访问节点为<node> (target.xsd中的节点),则针对该节点子树的一般策略决策流程如下:

(a)读取Schema文档target.xsd中以节点<node>为根的整个子树,并将 其解析为Document Object Model树,即DOM树;

(b)获取当前子树的根节点root,并读取该节点及其祖先节点上定义的 所有策略;

(c)从步骤(b)获得的所有策略中,获得与当前角色guest和操作read 相关的策略policy;

(d)如果获得的策略policy为空,则根据系统定义的默认策略,为root 节点添加否定标记“-”;否则,根据策略传播及冲突解决机制,对节点应用该 获得的策略;如果结果为“permit”,为节点添加肯定标记“+”,否则添加否定 标记“-”;

(e)如果root节点有子节点,以每个子节点为一颗子树返回(b)遍历; 否则结束遍历,并生成带“+”、“-”标记的标记树Label Tree;

(f)对标记树进行剪枝生成Schema节点子树的安全视图;为了保持Schema 结构及访问控制策略定义的灵活性,采用的剪枝原则为:剪去所有仅包含否定 节点的子树;

最后,XML文档中节点<node>及其子节点的访问权限由该Schema节点子 树的安全视图决定;如果安全视图中含有某个节点,则该节点允许访问,否则 不允许访问。

显然,用户每次请求访问XML文档中的节点时,访问控制系统都需要根据 上述决策流程进行策略决策。而该决策流程中的查找策略、生成标记树、剪枝 等操作都是非常耗时的过程,因此决策的时间较长。而且当访问请求频繁时, 访问控制系统的效率就会急剧下降,因此效率问题成为访问控制系统的瓶颈问 题。

一种解决思想是以空间效率换取时间效率。然而保存Schema文档树的安全 视图方法是不可行的,因为Schema文档对不同角色的不同操作的安全视图不 同,因此安全视图数量庞大不易存储。而且策略更新及角色变化时,安全视图 的更新工作量也较大,不易于策略管理。此外不同的应用系统中的剪枝原则不 一定相同,因此保存安全视图的方法也不利于策略模型的推广应用。

本发明设计了一种压缩保存标记树的方法,既可以减少存储空间又提高了 策略决策效率。下面以一个具体实例说明该方法。首先假设系统中只有admin 和guest两个角色,根据系统中定义的访问控制策略,针对read操作和Schema 文档树执行上述策略决策流程,得到两个标记树如图3所示。

进一步考虑合并角色admin和guest的标记树,采用每个节点仅保存允许 访问角色的方法,则标记树可以合并为如图4所示的标记树,对于两个角色都 不允许访问的节点,标记为空。

最后,为系统中的每个角色分配一个唯一的素数I D(例如admin的ID为2、 guest的ID为3),则节点可以仅保存允许访问角色ID的乘积,如果节点不允 许任何角色访问,该节点取默认值1,如图5所示。从而每个节点都记录了一 个正整数,称为该节点的权限字,如果节点上的权限字能被角色的ID整除,则 表示允许角色访问该节点,否则不允许访问该节点。

显然,Schema节点记录的权限字个数与操作个数相同,进一步把这些权限 字封装成一个<number>元素节点。该节点的子节点为四种操作组成的子节点, 其值为相应的权限字(如:<read>6</read>)。然后,把<number>元素节点作为 相应Schema节点的子节点与其绑定后添加到Schema文档中,形成Schema文档 的权限树,如图6所示。其中,详细给出了节点<basicfeature>的<number>子 树结构,其他节点的<number>子树结构与其相同。

保存标记树的优点可以归结为如下三点:

(1)存储空间小:只需在Schema节点添加<number>子节点即可,而且实 现了Schema文档、策略和标记树的一起存储。

(2)更新简单:当策略更新时,只需读取相关节点子树及涉及到的角色和 操作,更新<number>元素即可。

(3)改善了决策效率:当用户请求访问系统资源时,访问控制系统只需读 取相应Schema节点的标记树,然后根据权限值判定及剪枝原则,进行剪枝生成 安全视图即可。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号