一种满足职责分离约束的角色挖掘优化方法与流程

文档序号:17952951发布日期:2019-06-19 00:11阅读:262来源:国知局
一种满足职责分离约束的角色挖掘优化方法与流程

本发明属于访问控制机制技术领域,涉及一种满足职责分离约束的角色挖掘优化方法。



背景技术:

访问控制策略是通过为用户提供合适的访问权限,以达到保护系统资源的目的。传统访问策略直接将权限指派给用户。随着用户和权限的增加,这种方法极大增加系统的管理负担。基于角色的访问控制(rbac)通过角色将权限分配给用户,能够简化授权管理,满足企业组织功能需求,优化企业生产工作流程,降低系统管理负担,其已被证明是一种灵活、方便的访问控制技术。rbac系统配置中一个关键步骤就是寻找合适的角色集,并为其指派用户集。研究者们将构建rbac系统的过程称为角色工程,相继提出了自顶向下、自底向上和混合挖掘等三种方法。与采用人工处理、耗时费力的自顶向下方法相比,自底向上方法又称角色挖掘,其利用数据挖掘技术从源系统配置中提取角色集,构建rbac系统。角色挖掘技术因具有快速、实用的优势,近年来在国内外受到广泛关注和研究。

已有研究提出多种方案用于构建满足功能需求的rbac系统。molloy等人针对挖掘角色缺乏语义性,利用形式化概念格表示角色的语义特征,设计属性挖掘算法表征用户的相关属性信息,优化角色挖掘以反映系统的功能需求,能够增强挖掘结果的可解释性。zhang等人通过图优化算法减少图中用户与角色、权限与角色顶点之间边的数目,优化rbac模型以减轻管理员进行角色分配的工作量,进而优化rbac系统,但该方法未对挖掘结果的冗余性作进一步研究。vaidya等人定义给出了基本角色挖掘问题,它将角色挖掘转化为矩阵分解问题,以挖掘覆盖用户-权限分配关系的最小角色集,但在实际应用中很难提取到可用的最优角色组合。ene等人将基本角色挖掘问题转化为最小二部图覆盖问题,能够降低挖掘结果的冗余度。除了能简化系统管理代价,rbac的一项重要特征是允许实施约束。如果一个构建好的rbac系统缺少必要的约束机制,那么系统的一系列安全需求将难以实现。以上研究方法均未体现rbac机制的约束思想。ma等人定义了一系列约束,并通过频繁项集挖掘算法生成权限组与权限组、角色组与角色组之间的互斥约束规则,优化角色挖掘以满足系统的安全性要求。为防止角色权力过大,kumar等人提出一种启发式角色挖掘算法,以限制挖掘角色拥有不超过系统约定的权限数,但角色权力过小,挖掘结果既存在冗余也不实用。



技术实现要素:

本发明的主要目的在于提供一种满足职责分离约束的角色挖掘优化方法,可以有效解决背景技术中的问题。

为实现上述目的,本发明采取的技术方案为:

一种满足职责分离约束的角色挖掘优化方法,包括以下步骤:

步骤1初始化阶段。使用未考虑约束且满足basicrmp要求的现有算法,挖掘极小化角色集。

输入:源数据配置upa

输出:初始挖掘结果ua,pa,候选角色集cr

过程:

{

使用布尔矩阵分解法,构造候选角色集cr并配置rbac,使得:

其中upa,ua,pa为矩阵.

}

步骤2构造2-2型smer约束。

(1)需要说明:每个2-2型smer约束可表示为c=<{ri,rj},2>,表明ri,rj为两互斥角色,即不允许用户同时拥有这两个角色。该约束严格受限,考虑将其作为实施任意rssod约束的有效手段。如果一个rssod约束ei满足下列条件之一,认为其不可实施:(1)ei的所有权限被指派给pa中的某一个角色(即pa中存在一个角色包含ei所有权限,即违反k-nrssod约束,k≥2);(2)ua存在违反2-2型smer约束。

(2)算法描述:将步骤1得到的ua,cr及rssod约束集e作为输入,创建2-2型约束集c。对于给定约束ei,为了创建2-2型smer约束,首先应寻找一个角色集s,使其中任一角色至少拥有ei的一个权限;其次,检查s中是否存在拥有ei全部权限的角色。如果存在,认为ei不可实施;否则,在s中创建有效的互斥角色对(如果两角色互斥,任意角色应至少包含一个不在另一角色中出现的权限,同时该角色的权限集不是另一角色的超集),且现有ua中不存在违反约束的指派关系。

(3)算法1:创建2-2型约束伪代码

输入:ua,cr,k-nrssod约束集e.

输出:2-2型约束集c.

过程:

(4)时间复杂性:为rssod约束创建2-2型smer约束可在多项式时间内执行完成。如果s中角色数为m,检查约束是否可实施可在o(m)时间内完成,创建互斥角色可在o(m2)时间内完成。因此,总时间复杂度为o(m2)。

步骤3当t>2时,构造t-t型smer约束。

(1)算法描述与说明:与2-2型约束相比,t-t型更加松弛。因此,对于给定的rssod约束,有必要寻找极大的t-t型约束。正如创建2-2型约束,首先从cr中寻找满足条件的角色集s;其次判断sod约束是否可实施;最后将对权限的限制转化为角色限制(即rssod约束),从中创建t-t型约束。

(2)算法2:创建t-t型约束伪代码

输入:ua,cr,k-nrssod约束集e.

输出:t-t型约束集c.

过程:

(3)时间复杂性:如果s中角色数为m,检查约束是否可实施可在o(m)时间内完成。创建t-t型约束取决于双层for循环,第一个for循环共执行次,第二个for循环对于每次确定的t,要从m个角色中任取t个角色的组合,双层循环的时间复杂度为o(2m)。因此,算法2的总时间复杂度为:o(m)+o(2m)=o(2m)。

步骤4当2<t<m时,构造t-m型smer约束。

算法描述与说明:与t-t型约束相比,扩展的t-m型更加松弛,并在创建约束阶段生成s集。尽管t-m型约束性更弱,适用范围更加广泛,形式更加灵活。区别于t-t型约束的伪代码部分如下:

{

……

/*创建t-m型约束*/

{m=(k-1)×(t-1)+1;

for(cr中任意m个角色r1’,r2’,…rm’)

if(uasatisfysmer<{r1’,r2’,…rm’},t>)then

c={smer<{r1’,r2’,…rm’},t>}∪c;

else

eiisnotenforceablewitht-msmerconstraints;

}

……

}

命题1给定m-m型rssod约束e1,t-m型smer约束c1可实施e1,当且仅当t=2。

证明:

充分性若c1=smer<{r1,r2,…,rm},2>成立,即表明至少需要m个用户才能覆盖{r1,r2,…,rm}的所有角色,任意(m-1)个用户都不能覆盖{r1,r2,…,rm},即由定义3可知,当t=2时c1可实施e1。

必要性使用反证法,假设存在(m-1)个用户可覆盖{r1,r2,…,rm},即也就是说存在某一用户拥有{r1,r2,…,rm}中两个角色,即这与c1=smer<{r1,r2,…,rm},2>相矛盾,假设不成立。

命题2给定2-m型rssod约束e2,t-m型smer约束c2可实施e2,当且仅当t=m。

证明:

充分性若c2=smer<{r1,r2,…,rm},m>成立,即表明任一用户都不能同时拥有{r1,r2,…,rm}的所有角色,也就是说至少需要2个用户才能覆盖{r1,r2,…,rm}。由定义5可知,当t=m时c2可实施e2。

必要性使用反证法,假设存在某个用户拥有{r1,r2,…,rm}中的所有角色,即这与c2=smer<{r1,r2,…,rm},m>相矛盾,假设不成立。

定理对于给定的角色职责分离约束k-nrssod(k>2)以及未考虑约束的候选挖掘角色集cr,约束值t在不超过的情况下,构造t-msmer可实施k-nrssod。

证明:

由定义5可知,任意用户至多拥有(t-1)个不同的角色,于是任意(k-1)个用户至多拥有(k-1)×(t-1)个角色。使用反证法,假设t值取时约束仍满足,那么(k-1)个用户至多拥有的角色数为:违反k-nrssod。假设不成立,定理得证。

实例:对于k(1<k≤5)取不同值,结合以上步骤,表1给出了能够实施rssod<{r1,r2,r3,r4,r5},k>的互斥约束集c。

1研究基础与问题描述

给出角色工程元素及其矩阵表示,角色职责分离约束(rssod)与互斥角色约束(smer),以及基本角色挖掘(basicrmp)的基本概念。

1.1角色工程元素及其矩阵表示

定义1角色工程元素。u、p分别表示用户集和权限集,upa表示源资源配置中用户-权限指派关系;ua表示用户-角色指派关系,pa表示角色-权限指派关系,rh表示角色层次关系。roles(u)表示指派给用户u的角色集,permissions(r)表示分配给角色的权限集,perms(u)表示直接指派给用户的权限集,形式化描述为:

perms(u)={p∈p|(u,p)∈upa}.

定义2布尔矩阵分解法(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}。

角色挖掘从源资源配置用户-权限指派关系upa出发,寻找角色集r,并构造满足企业组织需求的用户-角色指派关系ua以及角色-权限指派关系pa,以辅助构建rbac系统。upa,ua,pa可表示成布尔矩阵,以下给出各矩阵的单元表示:

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

1.2职责分离约束与互斥角色约束

职责分离策略是保证系统安全的一项基本策略。角色职责分离约束表示执行任务所需全部角色的最小用户数。

定义3角色职责分离约束(k-nrssod)。完成一项任务需要n个不同角色r1,r2,…,rn,至少需要k个用户相互协作共同拥有这n个角色,任意(k-1)个用户都不能同时拥有这n个角色。用rssod<{r1,r2,…,rn},k>表示,其中ri表示角色,n,k均为整数,且2≤k≤n。形式化描述为:

互斥约束是实施职责分离策略的一种有效机制。互斥角色约束表示执行任务时允许用户拥有的最大角色数。

定义4弱互斥角色约束(t-msmer)。对于给定的m个角色r1,r2,…,rm,任意用户不能同时拥有其中t个或更多的角色。用smer<{r1,r2,…,rm},t>表示,其中ri表示角色,m,t均为整数,且2≤t≤m,也称为用户指派势约束,形式化描述为:

已有文献使用smer-gen方法证明t-msmer可表示成t-tsmer集合表示的形式。

定义5强互斥角色约束(t-tsmer)。对于给定的t个角色r1,r2,…,rt,任意用户不能同时拥有这t个角色。用smer<{r1,r2,…,rt},t>表示,其中ri表示角色,t为整数且t≥2,简称为互斥角色约束,形式化描述为:

定义6强约束关系>。对于任意两动态约束dc1、dc2及系统策略,如果dc1和dc2都可实施该策略,那么说dc1的约束性不弱于dc2,表示为dc1≥dc2。如果dc1≥dc2,且不存在dc2≥dc1,那么称dc1比dc2具有更强的约束性,约束范围更大,表示为dc1>dc2。

1.3基本角色挖掘问题

定义7基本角色挖掘问题(basicrmp)。给定用户集u、权限集p及用户-权限分配关系矩阵upa,寻找角色集r,用户-角色指派关系矩阵ua及角色-权限指派关系矩阵pa,使得指派给任意用户的角色集恰好覆盖该用户的所有权限,同时挖掘角色应尽可能少。可表示为:

basicrmp已被证明是np完全问题。现有研究给出了一些有效解决方案,然而并未考虑rssod约束问题。

2满足职责分离约束的角色挖掘优化

定义8满足rssod约束的角色挖掘问题。给定用户集u、权限集p、用户-权限分配关系矩阵upa,以及rssod约束集e={e1,e2,…},寻找角色集r、用户-角色指派关系矩阵ua、角色-权限指派关系矩阵pa,以及smer约束集c={c1,c2,…},使得ua、pa与upa在挖掘前后相一致,c可实施e,且挖掘的角色尽可能少。可表示为:

与现有技术相比,本发明具有如下有益效果:分别给出2-2型、t-t型、t-m型约束描述及其构造算法,以正确实施职责分离约束;改进基本角色挖掘问题,在满足职责分离约束的同时,使挖掘角色数极小化;.探索能够实施角色职责分离约束的最大互斥约束值t。

附图说明

图1为本发明一种满足职责分离约束的角色挖掘优化方法的职责分离约束与互斥约束对应关系图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。

如图1所示,一种满足职责分离约束的角色挖掘优化方法,包括以下步骤:

步骤1初始化阶段。使用未考虑约束且满足basicrmp要求的现有算法,挖掘极小化角色集。

输入:源数据配置upa

输出:初始挖掘结果ua,pa,候选角色集cr

过程:

{

使用布尔矩阵分解法,构造候选角色集cr并配置rbac,使得:

其中upa,ua,pa为矩阵.

}

步骤2构造2-2型smer约束。

(1)需要说明:每个2-2型smer约束可表示为c=<{ri,rj},2>,表明ri,rj为两互斥角色,即不允许用户同时拥有这两个角色。该约束严格受限,考虑将其作为实施任意rssod约束的有效手段。如果一个rssod约束ei满足下列条件之一,认为其不可实施:(1)ei的所有权限被指派给pa中的某一个角色(即pa中存在一个角色包含ei所有权限,即违反k-nrssod约束,k≥2);(2)ua存在违反2-2型smer约束。

(2)算法描述:将步骤1得到的ua,cr及rssod约束集e作为输入,创建2-2型约束集c。对于给定约束ei,为了创建2-2型smer约束,首先应寻找一个角色集s,使其中任一角色至少拥有ei的一个权限;其次,检查s中是否存在拥有ei全部权限的角色。如果存在,认为ei不可实施;否则,在s中创建有效的互斥角色对(如果两角色互斥,任意角色应至少包含一个不在另一角色中出现的权限,同时该角色的权限集不是另一角色的超集),且现有ua中不存在违反约束的指派关系。

(3)算法1:创建2-2型约束伪代码

输入:ua,cr,k-nrssod约束集e.

输出:2-2型约束集c.

过程:

(4)时间复杂性:为rssod约束创建2-2型smer约束可在多项式时间内执行完成。如果s中角色数为m,检查约束是否可实施可在o(m)时间内完成,创建互斥角色可在o(m2)时间内完成。因此,总时间复杂度为o(m2)。

步骤3当t>2时,构造t-t型smer约束。

(1)算法描述与说明:与2-2型约束相比,t-t型更加松弛。因此,对于给定的rssod约束,有必要寻找极大的t-t型约束。正如创建2-2型约束,首先从cr中寻找满足条件的角色集s;其次判断sod约束是否可实施;最后将对权限的限制转化为角色限制(即rssod约束),从中创建t-t型约束。

(2)算法2:创建t-t型约束伪代码

输入:ua,cr,k-nrssod约束集e.

输出:t-t型约束集c.

过程:

(3)时间复杂性:如果s中角色数为m,检查约束是否可实施可在o(m)时间内完成。创建t-t型约束取决于双层for循环,第一个for循环共执行次,第二个for循环对于每次确定的t,要从m个角色中任取t个角色的组合,双层循环的时间复杂度为o(2m)。因此,算法2的总时间复杂度为:o(m)+o(2m)=o(2m)。

步骤4当2<t<m时,构造t-m型smer约束。

算法描述与说明:与t-t型约束相比,扩展的t-m型更加松弛,并在创建约束阶段生成s集。尽管t-m型约束性更弱,适用范围更加广泛,形式更加灵活。区别于t-t型约束的伪代码部分如下:

{

……

/*创建t-m型约束*/

{m=(k-1)×(t-1)+1;

for(cr中任意m个角色r1’,r2’,…rm’)

if(uasatisfysmer<{r1’,r2’,…rm’},t>)then

c={smer<{r1’,r2’,…rm’},t>}∪c;

else

eiisnotenforceablewitht-msmerconstraints;

}

……

}

命题1给定m-m型rssod约束e1,t-m型smer约束c1可实施e1,当且仅当t=2。

证明:

充分性若c1=smer<{r1,r2,…,rm},2>成立,即表明至少需要m个用户才能覆盖{r1,r2,…,rm}的所有角色,任意(m-1)个用户都不能覆盖{r1,r2,…,rm},即由定义3可知,当t=2时c1可实施e1。

必要性使用反证法,假设存在(m-1)个用户可覆盖{r1,r2,…,rm},即也就是说存在某一用户拥有{r1,r2,…,rm}中两个角色,即这与c1=smer<{r1,r2,…,rm},2>相矛盾,假设不成立。

命题2给定2-m型rssod约束e2,t-m型smer约束c2可实施e2,当且仅当t=m。

证明:

充分性若c2=smer<{r1,r2,…,rm},m>成立,即表明任一用户都不能同时拥有{r1,r2,…,rm}的所有角色,也就是说至少需要2个用户才能覆盖{r1,r2,…,rm}。由定义5可知,当t=m时c2可实施e2。

必要性使用反证法,假设存在某个用户拥有{r1,r2,…,rm}中的所有角色,即这与c2=smer<{r1,r2,…,rm},m>相矛盾,假设不成立。

定理对于给定的角色职责分离约束k-nrssod(k>2)以及未考虑约束的候选挖掘角色集cr,约束值t在不超过的情况下,构造t-msmer可实施k-nrssod。

证明:

由定义5可知,任意用户至多拥有(t-1)个不同的角色,于是任意(k-1)个用户至多拥有(k-1)×(t-1)个角色。使用反证法,假设t值取时约束仍满足,那么(k-1)个用户至多拥有的角色数为:违反k-nrssod。假设不成立,定理得证。

实例:对于k(1<k≤5)取不同值,结合以上步骤,表1给出了能够实施rssod<{r1,r2,r3,r4,r5},k>的互斥约束集c。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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