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

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

【技术实现步骤摘要】

针对非结构化数据管理系统的安全控制机制,设计一种基于XML技术的非结构化数据XML访问控制方法。
技术介绍
2001年,美国国家标准化和技术委员会(NIST)提出了标准的基于角色的访问控制 RBAC(Role-Based Access Control)参考模型 NIST RBAC0 该模型分成核心 RBAC、 等级RBAC和约束RBAC三个子模型。核心RBAC定义了参考模型的基本功能,它包括五个基本数据元素用户(Users)、角色(Roles)、会话集Cessions)、客体(Objects)、操作 (Operations),以及角色权限分配(PRA)、用户角色分配(URA)。其基本思想是通过角色建立用户和访问权限之间的多对多关系,用户由此获得访问权限。XML Schema定义了 XML文档的合法构建模块,它使用一系列合法的元素来定义文档的结构,类似DTD (Document Type Def inition,文档类型定义)。XML Schema本身是一个结构良好的XML文档,因此在XML Schema上进行访问授权,而XML文档中的元素继承相应 Schema元素的权限。针对XML文档的层次结构,以khema节点为客体,定义基于角色的XML访问控制模型,即X-RBAC模型。
技术实现思路
本专利技术解决的技术问题针对AUDR安全控制的需求,重点研究了在X-RBAC模型的基础上,利用XML技术实施数据访问控制,实现了系统的安全控制机制。本专利技术的技术方案是一种本源XML数据库中XML文档的访问控制方法,在 X-RBAC模型的基础上,定义了 XML访问控制系统的一种策略模型,给出了该模型的一种策略结构,并设计了策略模型的一种策略决策方法及其效率改进方案。其特征在于采用如下步骤(1)在基于角色的XML访问控制模型X-RBAC的基础上,建立XML访问控制系统的策略模型;(2)构建该模型的树形策略结构;(3)策略结构采用XML文档的形式描述,将这些访问控制策略封装成一棵策略子树,即把策略子树作为相应khema节点的子树从而加入khema文档中,作出基于khema 文档的策略组织结构;(4)当用户请求访问khema文档中的某个节点时,访问控制系统首先需要获取相关的访问控制策略,然后根据冲突解决机制进行策略决策,并生成该节点,即节点子树的安全视图,最后系统根据安全视图控制用户对节点的访问请求;(5)实施策略决策。所述的步骤(1)中所述策略模型中,访问控制规则表示为五元组rule (roles,schema—node,action, permission, propagation);(l.a)roleS表示角色,为系统中角色集的一个子集,是访问控制策略的主体;(l.b)schema_node表示schema节点,包括元素节点和属性节点,不含文本节点, 本文以元素节点为访问控制保护的对象,属性节点的权限继承于相应元素节点的权限,它是访问控制策略的客体,并采用XPath来描述;(1. c) action表示行为,为主体对客体实施的操作,包括“read”、“create”、 “Write”、“delete”,分别表示读、添加、更新及删除四种操作;(l.cOpermission表示权限,为主体对客体执行某种操作的许可,取“permit”、 “deny”两种值,从而实现肯定授权和否定授权两种授权方式,访问控制规则中,使用“ + ”、 “_”两种符号sign来分别表示肯定授权或否定授权;(1. e)propagation表示传播选项,为授权传播的深度,取值为“*”、“0”或具体正整数“n”,实现三种传播方式“*”传播,即瀑布式传播,授权规则作用范围为自身节点及所有子节点;“0”传播,即无传播,授权规则作用范围仅为自身节点,“η”传播,η取值为正整数,授权规则作用范围为自身节点及深度小于等于η的所有子节点。所述的步骤(4)进一步包括请求用户的当前角色为guest,执行操作为read,访问节点为〈node〉,所述〈node〉 为target, xsd中的节点,则针对该节点子树的策略决策流程如下(4. a)读取khema文档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)对标记树进行剪枝生成khema节点子树的安全视图;为了保持khema结构及访问控制策略定义的灵活性,采用的剪枝原则为剪去所有仅包含否定节点的子树;最后,XML文档中节点〈node〉及其子节点的访问权限由该khema节点子树的安全视图决定;如果安全视图中含有某个节点,则该节点允许访问,否则不允许访问。所述的步骤(5)实施策略决策,包括如下步骤(5. a)为系统中的每个角色分配一个唯一的素数ID ;(5. b)对于一个khema文档,把所有角色同一种操作的标记树合为一个新标记树,新标记树的每个节点仅记录一个整数,该整数为所有允许访问该节点的角色ID之积; 如果不存在允许访问的角色,则该整数为1 ;(5. c)显然khema节点记录的整数个数与操作个数相同,进一步把这些整数封装成一个〈number〉元素节点,该节点的子节点为四种操作组成的子节点,其值为相应的整数;(5. d)把〈number〉元素节点作为相应khema节点的子节点与其绑定后添加到 Schema文档中,从而实现新标记树的保存;(5. e)新标记树中,如果节点某一操作的取值能被角色ID整除,则该角色允许对该节点执行这个操作;否则不允许。本专利技术的优点在于用户每次请求访问XML文档中的节点时,访问控制系统都需要根据决策流程进行策略决策。而该决策流程中的查找策略、生成标记树、剪枝等操作都是非常耗时的过程,因此决策的时间较长。而且当访问请求频繁时,访问控制系统的效率就会急剧下降,因此效率问题成为访问控制系统的瓶颈问题。本专利技术提出一种保存标记树的方法,并对标记树进行压缩存储,使策略决策时不必考虑查找策略、验证策略的操作,既可以减少存储空间又提高了策略决策效率。附图说明图1为策略结构图;图2为基于khema的策略组织结构图;图3 (a)为角色admin的标记树图;图3 (b)为角色guest的标记树图;图4为记录角色的标记树图;图5为记录权限字的标记树图;图6为khema文档的权限树图;图7为策略模型实施流程图。具体实施例方式下面参考附图,对本专利技术的实施例进行详细的说明。首先对XML访问控制策略模型定义进行说明。在XML访问控制策本文档来自技高网...

【技术保护点】
1.一种本源XML数据库中XML文档的访问控制方法,其特征在于采用如下步骤:(1)在基于角色的XML访问控制模型X-RBAC的基础上,建立XML访问控制系统的策略模型;(2)构建该模型的树形策略结构;(3)策略结构采用XML文档的形式描述,将这些访问控制策略封装成一棵策略子树,即把策略子树作为相应Schema节点的子树从而加入Schema文档中,作出基于Schema文档的策略组织结构;(4)当用户请求访问Schema文档中的某个节点时,访问控制系统首先需要获取相关的访问控制策略,然后根据冲突解决机制进行策略决策,并生成该节点,即节点子树的安全视图,最后系统根据安全视图控制用户对节点的访问请求;(5)实施该策略决策。

【技术特征摘要】

【专利技术属性】
技术研发人员:郎波张然
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11

网友询问留言 已有1条评论
  • 来自[北京市联通] 2014年12月11日 20:41
    事物的根源起源
    0
1