一种基于枚举挖掘法与势约束的角色挖掘优化方法与流程

文档序号:15216900发布日期:2018-08-21 16:57阅读:384来源:国知局

本发明属于访问控制机制技术领域,涉及一种基于枚举挖掘法与用户指派势约束的角色挖掘优化方法。



背景技术:

基于角色的访问控制(rbac)能够简化系统的授权管理,降低工程的实施成本,保证信息的完整性与机密性,是当前主流的访问控制机制之一。随着大量非rbac案例向rbac系统的成功迁移和广泛应用,设计一个完整、有效的角色集,并构建好rbac系统对于成功实现用户与权限的逻辑分离至关重要。基于此,提出了角色工程技术以及自顶向下和自底向上两种基本方法。自顶向下方法从工程用例的需求分析出发,根据执行任务所需的不同权限设计角色系统。该方法具有较强的语义性,然而对于数量庞大的任务功能,完全由人工设置角色系统耗时费力,且未考虑底层的访问模式。自底向上方法从底层的用户-权限分配关系出发,利用数据挖掘技术提取满足已有访问模式的不同权限而形成角色系统,并称此方法为角色挖掘。与自顶向下的人工处理方式相比,角色挖掘能够自动、快速地构建或辅助构建rbac系统,现已成为角色工程技术的主要研究方向。

角色挖掘具有构建角色迅速、所需人工参与较少且有利于开发一套辅助构建工具等优势,因而成为当前角色工程技术中研究者主要关注方向。cm的思想是枚举用户权限之间的交集,然后在交集中求交集,直到枚举出了所有的交集,计算交集簇的复杂度是o(2initroles),fm简化了cm枚举所有初始角色交集的过程,它只枚举两两初始角色之间的交集,因此其计算复杂度下降为o(n2)。graphoptimization(go算法是d.zhang提出的,其算法思想为,将角色挖掘问题转换为图的优化问题。该算法首先将每个用户的权限集合是一个角色,然后根据优化目标函数重组角色,重组操作包括合并角色,定义角色继承关系,利用角色中权限的交集创造新角色这三种操作。go算法的优化目标是减少角色数目和用户-角色以及角色-权限的指派关系数。haibinglu等和h.lu等等将角色工程转为为矩阵分解问题,并利用矩阵论生成并优化角色。



技术实现要素:

本发明的目的在于,提出了一种基于枚举挖掘法与用户指派势约束的角色挖掘优化方法。

其技术方案如下:

一种基于枚举挖掘法与用户指派势约束的角色挖掘优化方法,包括以下步骤:

输入:原始矩阵m(upa),用户指派势约束值maxcount//矩阵单元用xit表示,且指派给任意用户的角色数都不允许超过maxcount,m(upa)表示原始用户-权限分配关系矩阵;

输出:角色优化指派m(ua’),m(ua’)表示优化后的用户-角色指派关系矩阵;

定义变量optimroles,rolescount;//分别表示当前指派给用户的优化角色集及角色数

定义函数ass_perms(optimroles),perms(ui)//分别表示rbac中的权限指派及非rbac中的直接权限指派

过程如下:

步骤1使用快速挖掘法(fastminer)构造初始角色集initroles。

步骤2结合fastminer挖掘结果,将角色挖掘问题(roleminingproblem,rmp)转化为优化布尔矩阵分解问题(optimalbooleanmatrixdecomposition,obmd),即挖掘候选角色集。矩阵单元分别用cij、rjt表示。

步骤3按角色包含权限数降序方式排列候选集中的q个角色,并构造角色优先级列表(rpl)。

步骤4对于组织中任意用户ui,在rpl中逐一、反复筛选满足约束条件的优化角色,直至ui的所有权限被完全覆盖,或指派给ui的当前角色数为maxcount-1。伪代码描述如下.

进一步,所述方法按角色的权限数降序方式对所有的候选角色进行排序。在候选角色集中通过选取权限集是用户所需权限集子集的角色,并将其指派给该用户,且候选角色不存在冗余,尽管可以使用任意的候选角色集,该方法采用obmd分解原始upa所产生的角色集。obmd只能消除未被用户使用的角色,而未检测角色指派过程的冗余性,易产生冗余角色。因此,该方法需要消除由obmd分解结果中的冗余角色。同时,obmd是基于快速挖掘法的,被选取的候选角色未必能够覆盖用户的所有权限。为了保证挖掘结果的完整性,可能还需构造其他独立的角色以覆盖用户的所有权限。基于角色包含的权限数对候选角色集进行优先级排序。如果在已挖掘出(maxcount-1)个角色的情况下用户仍有权限未被覆盖,未被覆盖的这些权限形成一独立角色。算法按照rp表中角色的排序逐一挑选角色,直到用户的所有权限被覆盖或用户的当前角色数rolecount=maxcount-1。

本发明的有益效果为:

1.本发明基于角色包含的权限数对候选角色集进行优先级排序。如果在已挖掘出(maxcount-1)个角色的情况下用户仍有权限未被覆盖,未被覆盖的这些权限形成一独立角色,并逐一挑选角色,直到用户的所有权限被覆盖或用户的当前角色数rolecount=maxcount-1。

2.本发明改进枚举角色挖掘结果,使用用户指派势约束挖掘满足约束要求的优化角色,并通过职责分离约束及权限覆盖分析法论证挖掘过程的合理性和完整性。

具体实施方式

下面结合具体实施方式对本发明的技术方案作进一步详细地说明。

1预备知识与问题描述

1.1基于枚举法的角色挖掘

现有技术通过枚举底层的不同权限子集挖掘角色,并允许角色重叠,提出完全挖掘和快速挖掘两种算法。前者虽能从用户-权限分配关系中穷举所有待选角色集,但时间复杂度为指数级,挖掘效率低;后者改进挖掘过程,统计关联角色的用户数,虽未能穷举所有角色,但挖掘效率优于前者。为了体现枚举挖掘的高效性与完整性,基于枚举法的角色挖掘基本思想:对于给定的访问控制矩阵(m(upaoriginal)),根据哈希映射规则将m(upaoriginal)转换为原始用户-权限关联(upaoriginal);将分配给用户的不同权限集作为整体视为角色,确立原始角色集(initroles),并计算关联不同角色的用户数;结合集合论的枚举法,通过二重循环将任意两原始角色做交集,产生新角色(newrole),确定候选角色集(candroles),进而构建uraoriginal和praoriginal。以下给出枚举挖掘法的算法(ebrmalgorithm)描述。

算法1ebrm

输入:m(upa)

输出:cand_roles,ura

过程如下:

步骤1根据哈希映射规则将m(upa)转换为upa

步骤2创建init_roles

步骤3创建new_role,cand_roles,并指派ura

1.2布尔矩阵分解法

定义1布尔矩阵分解法(booleanmatrixdecomposition,bmd)

给定n行m列布尔矩阵xn×m、n行k列布尔矩阵cn×k、k行m列布尔矩阵rk×m,其中xn×m∈{0,1}n×m,cn×k∈{0,1}n×k,rk×m∈{0,1}k×m。用符号表示布尔乘操作,如果存在那么称是xn×m的一个布尔分解,即xn×m可布尔分解成cn×k与rk×m。

若xit,cij,rjt分别为xn×m,cn×k,rk×m中的矩阵单元,则布尔矩阵乘运算应满足:其中xit∈{0,1},cij∈{0,1},rjt∈{0,1}。

作为角色工程技术的主要研究方法,角色挖掘是从非rbac系统的底层用户-权限直接指派关系upa出发,寻找一个合适、完整的角色集r,并构造满足企业组织需求的用户-角色指派关系ua以及角色-权限指派关系pa,以辅助构建rbac系统。upa,ua,pa可表示成布尔矩阵,以下给出各矩阵单元值的表示:

xn×m,cn×k,rk×m分别对应upa,ua,pa的矩阵形式。

1.3用户指派势约束

rbac系统的一项重要特征是能够实施多种约束。约束能帮助表现组织的安全策略,从而达到系统安全的目标。rbac中势约束包含如下四种情况:一个角色的权限数有限、一个角色的用户数有限、一个用户能够被指派到角色数有限和一个权限能够被指派到的角色数也是有限的,形式化分别可表示如下:

1.表示在角色-权限关联中指派给任意角色的权限数都不允许超过k3个;

2.表示在用户-角色关联中与任意角色关联的用户数都不允许超过k2个;

3表示在用户-角色关联中指派给任意用户的角色数都不允许超过k1个;

4.表示在角色-权限关联中与任意权限关联的角色数都不允许超过k4个。

以下只考虑限制用户允许拥有的最大角色数。

定义2用户指派势约束问题(role-usagecardinalityconstraintproblem,rcc)

给定原始权限矩阵xn×m,寻求一个合适的分解结果c,r,使得且在满足约束

的情况下,挖掘尽可能小的角色集。其中,maxcount表示允许指派给任意用户的最大角色数。

2基于快速挖掘法与用户指派势约束的角色优化

该方法的基本思想:首先依据角色所包含权限数对角色进行优先级的排序,然后使用该优先级限制指派给用户的角色数。以下给出角色优先级挖掘法(rolepriority-basedapproach,rpba)的算法描述。

算法2rpba

输入:原始矩阵m(upa),用户指派势约束值maxcount//矩阵单元用xit表示,且指派给任意用户的角色数都不允许超过maxcount.

输出:角色优化指派m(ua’).

定义变量optimroles,rolescount;//分别表示当前指派给用户的优化角色集及角色数

定义函数ass_perms(optimroles),perms(ui)//分别表示rbac中的权限指派及非rbac中的直接权限指派

过程如下:

步骤1使用快速挖掘法(fastminer)构造初始角色集initroles。

步骤2结合fastminer挖掘结果,将角色挖掘问题(roleminingproblem,rmp)转化为优化布尔矩阵分解问题(optimalbooleanmatrixdecomposition,obmd),即挖掘候选角色集。矩阵单元分别用cij、rjt表示。

步骤3按角色包含权限数降序方式排列候选集中的q个角色,并构造角色优先级列表(rpl)。

步骤4对于组织中任意用户ui,在rpl中逐一、反复筛选满足约束条件的优化角色,直至ui的所有权限被完全覆盖,或指派给ui的当前角色数为maxcount-1。伪代码描述如下.

该方法按角色的权限数降序方式对所有的候选角色进行排序。在候选角色集中通过选取权限集是用户所需权限集子集的角色,并将其指派给该用户,且候选角色不存在冗余(即待选取角色不包含在已优先选取角色的权限集中)。尽管可以使用任意的候选角色集,该方法采用obmd分解原始upa所产生的角色集。obmd只能消除未被用户使用的角色,而未检测角色指派过程的冗余性,易产生冗余角色。因此,该方法需要消除由obmd分解结果中的冗余角色。同时,obmd是基于快速挖掘法的,被选取的候选角色未必能够覆盖用户的所有权限。为了保证挖掘结果的完整性,可能还需构造其他独立的角色以覆盖用户的所有权限。基于角色包含的权限数对候选角色集进行优先级排序。如果在已挖掘出(maxcount-1)个角色的情况下用户仍有权限未被覆盖,未被覆盖的这些权限形成一独立角色。算法按照rp表中角色的排序逐一挑选角色,直到用户的所有权限被覆盖或用户的当前角色数rolecount=maxcount-1。

以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1