APP下载

结合属性和RBAC的访问控制模型及算法研究

2022-07-06王静宇

小型微型计算机系统 2022年7期
关键词:访问控制复杂度扰动

王静宇,张 伟

(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)

1 引 言

目前,基于角色的访问控制已经进行了大量的研究[1-3].针对角色中的过多权限的问题[4],通过对权限分配给角色的数量做限制,对访问控制矩阵进行行和列排列,分别利用字频统计和频繁项进行挖掘.为了防止过少的用户拥有过多的权限[5],引起系统管理混乱的问题,对用户拥有的权限进行职责分离、静态互斥角色约束[6].以上角色挖掘算法存在用户权限分配不能满足系统变化的要求[7];另外,基于角色的访问控制系统不能很好地支持细粒度授权.

基于属性的访问控制(Attribute-Based Access Control,ABAC)[8],是将主体和客体的属性作为授权规则与访问控制的依据,能够有效的解决RBAC系统无法动态授权和细粒度授权的问题.然而,随着用户属性的增多,ABAC就会存在属性难以管理、授权判决效率低等问题.

为了解决以上问题,本文提出了基于属性和RBAC的混合扩展访问控制模型,该模型考虑的是在用户权限分配完成后,根据属性授权规则对系统中新产生的角色进行权限动态和细粒度地分配,并对产生的角色集合进行最小扰动的评估,使加入到系统中的角色与原系统中的角色集合尽量保持一致.

2 相关定义

定义1.相似度定义.

a)用户i和用户j之间的相似度[9]定义:

Sim(ui,uj)=|UserPerms(ui)∩UserPerms(uj)|/
|UserPerms(ui)∪UserPerms(uj)|

(1)

b)权限i和权限j之间的相似度定义:

Sim(pi,pj)=|PermUsers(pi)∩PermUsers(pj)|/
|PermUsers(pi)∪PermUsers(pj)|

(2)

c)角色Ri和角色rj之间的相似度定义:

Sim(Ri,rj)=|RolePerms(Ri)∩RolePerms(rj)|/
|RolePerms(Ri)∪RolePerms(rj)|

(3)

d)不相似度定义:

Dissim=(Ri,rj)=1-Sim(Ri,rj)

(4)

定义2.加权结构复杂度(Weighted Structure Complexity)[10].对于RBAC系统的角色状态RS下的角色集ROLES,给出权重因子W=,角色状态Rc=,其加权结构复杂度为:

wsc(Rc,W)=wr×|R|+wu×|UA|+
wp×|PA|+wh×|RH|

(5)

定义3.最小扰动[11,12].给定用户集合U、权限集合P、用户权限指派UPA以及已部署角色集合DROLES,找出一个角色集合ROLES,并据此得到用户角色指派UA,权限角色指派PA以及角色继承RH,得到新角色状态Rs=,并且满足角色集合之间相似度最大且角色状态的WSC最小.其中,衡量扰动性的目标函数

OF=(Wsc,Dissim)=(1-w)*Wsc+
w*wsc*Dissim

(6)

3 基于属性和RBAC的访问控制模型

3.1 基于属性和RBAC的访问控制模型

基于角色的访问控制系统中,系统不再是将权限直接分配给用户而是通过角色间接分配给用户,这在系统创建完成时,角色工程有着便于管理的优势,但随着系统的不断扩大,产生的角色越来越多;在基于角色的访问控制系统中角色是静态指派的,无法动态地进行角色权限分配;并且,系统将分配给角色的权限同等看待,无法根据每个权限对角色的不同意义进行细粒度地授权.因此,将用户、资源和环境等属性和基于角色的访问控制系统相结合,能有效的解决RBAC不支持细粒度授权和动态性授权的问题.基于属性和RBAC的访问控制模型如图1所示.

图1 基于属性和RBAC的访问控制模型Fig.1 Attribute and RBAC based access control model

基于属性和RBAC的模型以角色为中心,在基于角色的访问控制模型上增加了用户属性UATT、环境属性EATT和资源属性RATT.属性规则是基于属性和RBAC访问控制模型进行属性授权的判断依据,其中,用户属性是对执行操作权限的用户的特征描述,包括姓名、年龄、所属组织等;资源属性是对操作的承担者的特征描述,包括资源的标志、资源类型等;环境属性是对操作执行时会话的描述,包括时间、位置等.

3.2 属性授权规则

基于属性和RBAC的访问控制模型中设计了3种属性授权规则:规则a作用在角色权限(Role Permisssions Allocation,PA)分配阶段,在对角色进行权限分配的过程中,要考虑每个权限的属性以此完成角色权限的细粒度分配,规则b作用在角色继承阶段,考虑角色是否存在权限衍生关系,规则c作用在用户角色分配阶段,根据用户属性以及用户与角色之后会话的环境属性完成动态的用户角色分配.属性授权详细规则如下:

a)基于属性的角色权限细粒度授权.通过计算角色集合之间的相似性以此考虑角色之间的功能差异不能反映出权限对角色的不同作用,通过属性与权限相结合,可以细粒度地完成角色权限的细粒度授权.

b)基于属性的动态权限继承.通过属性对RBAC中的权限继承过程进行限制,使得权限继承和权限衍生是受环境属性约束的,提高授权管理的安全性和动态性.

c)基于属性的动态用户角色分配.对于新加入系统的用户,系统会根据用户的基本属性信息为用户分配一个初始的基本权限,之后通过计算找到用户感兴趣的权限,如果权限之间的支持度与置信度满足系统设定的阈值大小,那么结合提升度度量关联规则是否有效,最后系统根据用户拥有的权限动态地分配给用户相应的角色.

3.3 基于属性和RBAC的访问控制模型的角色挖掘算法设计

1)通过角色挖掘算法挖掘出新的角色集合记为NewRoles.

2)对系统已部署的角色集合DRoles进行最小扰动,将NewRoles角色集合中满足系统要求的角色加入到DRoles中,此时生成的新角色集合为候选角色集合Candidate Roles.

3)设计最小扰动角色挖掘算法,通过目标函数OF对候选角色集合进行扰动性评估,生成最终的角色集合Roles.

4)基于最小扰动的角色挖掘算法包括两个部分:

一是角色权限细粒度分配算法.候选角色集合中的角色都是由系统静态指派的权限组成,没有考虑权限对角色的不同作用.在基于属性和RBAC的访问控制模型中,可以根据权限的属性对角色进行细粒度授权,不仅考虑角色之间的相似度,还要考虑相似度高的两个角色的不同权限的属性,如时间属性,位置属性等,通过角色权限细粒度授权,可以提高产生角色的准确性.

二是用户角色动态分配算法.在基于属性和RBAC的访问控制模型中,为了将新的用户加入到系统中而又不打乱系统的正常运行,在完成角色集合的最小扰动后,设计用户角色分配算法,根据用户的属性分配初始权限从而动态分配角色,最后对产生的角色进行最小扰动评估,所产生的角色集合符合系统的要求.

4 算法描述

基于最小扰动的角色挖掘算法包括两部分,第1部分是角色权限细粒度地分配算法,该算法是基于改进的用户协同过滤推荐算法,使系统在配置完角色集合后使新加入的角色尽可能与之前角色一致,并计算系统角色的加权结构复杂度大小对角色集合进行评估;第2部分是用户角色动态分配算法.首先,系统根据用户的属性给用户分配一个初始的权限,然后,根据角色权限分配规则进行动态权限分配,最后对产生的角色集合进行最小扰动的评估.

4.1 角色权限细粒度分配算法

算法1描述的是角色权限的细粒度分配算法,首先计算新角色NewRoles和已经部署的角色集合DRoles之间的相似度大小,如果相似度大于初始相似度,则NewRoles为候选角色集;否则,移出角色集合.根据最小扰动的思想,应使产生的角色集合尽可能与之前的角色集合保持一致,因此考虑相似度高的两个角色,不考虑共有的权限,将DRoles中不具有的权限推荐给DRoles,如果符合用户权限分配规则,则此时的扰动性最小.

在基于角色的访问控制系统中考虑角色之间的相似度来衡量产生角色的准确性,因此为使产生的角色集合准确性高,要考虑每个权限对用户的重要程度,即每个权限的重要性是不一样的,在这,考虑角色权限地细粒度分配,可以将产生角色的准确性提高.算法的基本思想是,应用基于用户的协同推荐算法的思想,结合属性授权规则对权限进行细粒度授权,以此提高产生角色集合的准确性,最后对产生的角色集合进行加权结构复杂度地计算,使产生的角色集合与之前的角色集合尽可能地一致.

算法1.角色权限细粒度地分配

输入:用户User、权限Perms、已部署的角色集合DRoles、新角色集合NewRoles、角色继承RH 、初始相似度Sim、初始加权结构复杂度Wsc

输出:角色集ROLES

Begin:

1.{Enumerate all intersecting roles between pairs of users}

2.for each role i∈InitRoles do

3.InitRoles←InitRoles-i

4.for each role j∈InitRoles do

5.NewRoles←i∩j

6.Compute DRoles of WSC

7.for(i=1;i<|R1|;i++)do

8.for(j=1;j<|R2|;j++)do

9.sim←sim(ri,rj)

10.if sim>Sim then

11.Sim←sim

12.if sim(Ri,rj)>0.5 then

13.if the rj accord with rule a

14.Ri recommend pi to rj then

15.check 角色r 的权限

16.if 角色 r 拥有全部权限p

17.then not recommend and compute Wsc

18.if rj accord with rule a

19.then consider 权限rj有无时效性并且是否存在权限衍生

20.if satisfied then delete rj

21.else add rj

22.if rj accord with rule b

23.if Ri⊇rj

24.then delete rj

25.else if Ri1∪Ri2=rj

26.rj replace Ri

27.compute WSC

END

算法1第1行到第6行计算系统角色集合的加权结构复杂度并以此作为系统的初始加权结构复杂度值;算法第7行到第11行计算新产生角色与系统已部署角色集之间的相似度,并与系统初始的相似度做对比,算法第12行到第14行当角色之间相似度大于初始相似度时,此时考虑权限细粒度授权,即不考虑相同的权限,如果将权限p推荐给角色r从而使角色r拥有全部权限,此时系统不安全,不能将权限p推荐给角色r而将新产生的角色加入到角色集合中;第15到21行是不考虑角色中相同的权限进行权限推荐时,查看权限P的相关属性,考虑有无时效性,如果在完成某项任务时,权限将被收回,则此角色不能加入到系统的角色集合中;第22行到第26行是根据的属性授权规则考虑是否存在权限继承关系,如果存在DRoles是NRoles的权限衍生,则移出DRoles;如果存在NRoles是DRoles的权限衍生,则移出NRoles;算法第27行在已部署的角色集合进行最小扰动完成后,计算新角色集合的加权结构复杂度,使得新角色集合与系统原有的角色集合尽可能保持一致.

4.2 用户角色动态分配算法

基于最小扰动的用户角色动态分配算法是当新用户加入系统时根据用户属性进行动态角色权限分配并对角色集合进行最小扰动评估的过程.通过关联规则的性质对已经完最小扰动的角色集合进行剪枝处理,之后根据用户的基本属性分配给用户完成基本业务的基础权限,并依据这个基本权限将用户分配到与之相符的用户组中,然后结合用户的地理位置属性、是否有时效性等属性进行相关权限的推荐,用提升度度量两个权限的关联规则是否有效,最后将完成用户角色分配的角色加入到系统的集合中并计算加权结构复杂度,如果角色Wsc小于系统初始的Wsc则说明用户角色分配规则有效,否则,将重新分配角色.

其中,基于关联规则的推荐算法[13],通过对用户拥有的权限进行记录,发现不同用户之间共同拥有的权限,从而实现兴趣建模和权限推荐[14].其相关的计算工具如下:

支持度[13]是指两种权限A和B在总权限数(N)中同时出现的概率,即:

(7)

置信度[13]是拥有权限A还拥有权限B的条件概率.

(8)

提升度用于度量关联规则是否有效,即是否有提升效果.

(9)

性质1.频繁项集的子集也是频繁项集.

性质2.非频繁项集的超集一定是非频繁的.

算法2.用户角色动态分配算法

输入:用户集合Users、角色集合ROLES

输出:用户角色分配

BEGIN:

1.C1←init-pass(T);

2.F1←{f|f∈C1,f.count/n≥minsup};

3.for(k=2;Fk-1≠φ;k++)do

4.Ck←φ;

5.for all f1,f2∈Fk-1;

6.with f1={i1,…,ik-2,ik-1}

7.and f2={i1,…,ik-2,Ik-1}

8.and ik-1

9.c←{i1,…,ik-1,Ik-1}

10.Ck←Ck∪{c};

11.for each(k-1)-subset s of c do

12.if(s∉Fk-1)then

13.delete c from Ck;

14.根据用户位置属性、资源属性授予用户的基本初始权限

15.for each transaction t∈T do

16.for eachc∈Ck do

17.if c is contained in t then

18.c.count++;

19.end for

20.end for

24.根据提升度度量更适合用户的权限,完成用户角色分配

25.compute Wsc

26.输出用户角色分配和角色集

End

算法2的第1行到13行是对角色集合的权限项进行合并,然后找出不满足最小支持度和最小置信度的项,根据关联规则的性质2可知非频繁项集的超集一定是非频繁的以此对不符合的角色进行剪枝处理;第14到20行是根据用户的属性找到用户组中与之类似的用户并分配给用户相应的基本权限,之后采用逐级搜索的算法找到与用户初始权限相关联的权限;第21到第24行是根据用户的属性分配给用户的初始权限与用户可能拥有的权限进行提升度度量,如果两个权限的提升度大于1说明规则有效,可以将权限分配给用户,用户所在的角色组决定用户可能拥有的角色,此时将角色加入到新的角色集合中并计算角色状态的加权结构复杂度的大小,如果此时的加权结构复杂度小于上一角色状态的加权结构复杂度,则可以动态地进行用户角色分配;如果不是,则重新分配其他权限,并计算Wsc,保证产生的角色集合尽量与之前的角色状态基本一致.

5 实验及分析

为了验证算法的准确性与有效性,采用数据挖掘公认的常用数据集[12]对算法进行试验分析,这些数据集可以在HP Laps在线获得,实验所用数据集如表1所示.产生的角色准确率采用相似度来表示,相似性越高产生的角色越准确;系统的有效性大小通过加权结构复杂度来表示,加权结构复杂度越小,算法的运行时间越短,算法的效率越高.

表1 数据集Table 1 Data sets

首先,对系统的目标函数OF进行参数赋值,W=<0.25,0.25,0.25,0.25>,w=0.5,此时可以计算出系统的扰动性大小的值并以此作为系统扰动性评估的标准,当产生新的角色集合时,目标函数的值应小于等于初始值.在用户角色动态分配过程中,角色中的权限数量取决于关联规则中支持度与置信度的大小,因此实验选取Apj、America_large、Customer、America_small这4个数据集进行实验分析.

基于最小扰动的角色挖掘算法的评估依靠相似度和加权结构复杂度的大小,而形成角色最终的角色集合取决于支持度和置信度大小.因此考虑支持度与置信度的阈值相等,通过角色挖掘算法挖掘出的角色要满足大于或等于阈值的条件,图2 和图3分别在4个数据集下进行不同阈值情况下的实验

验证.图2在阈值小于0.5时,随着阈值的增大,权限之间具有关联性,则角色之间的相似度也随之增大,阈值在0.5到0.6之间,产生的角色准确性高;而随着阈值继续增大,角色之间的相似度降低,因而产生的角色准确性较差.

图2 不同数据集在不同阈值下的相似度比较Fig.2 Comparison of similarity of different data sets at different thresholds

图3是在不同阈值下4个数据集的加权结构复杂度的变化,在阈值为0时使初始角色集合状态的加权结构复杂度大小,这也是系统的初始加权结构复杂度,在进行角色评估时角色状态的加权结构复杂度应小于或等于初始加权结构复杂度.随着阈值的增大,系统根据属性进行用户角色动态分配的权限数量减少,因此导致用户分配的角色数量变少,阈值在0.3到0.7的范围内产生的角色集合能够满足系统最小扰动的要求,随着阈值的增大,角色状态的加权结构复杂度变大.

图3 不同数据集在不同阈值下加权结构复杂度大小的比较Fig.3 Comparison of weighted structure complexity of different data sets at different thresholds

在图2中结果显示在不同的数据集中,算法在Ametica_small数据集中相似度比较低说明算法的准确性小,因此选用此数据集与文献[12]中算法进行比较,在图4中可以看出本文算法比文献[12]算法相似度大,因而准确性表现好.

图4 在America_small数据集下不同文献相似度大小的比较Fig.4 Comparison of similarity size of different literature under America_small data set

在图3中结果显示在不同的数据集中,算法在Apj数据集中加权结构复杂度相当较高说明算法扰动性大、有效性低,因此选用此数据集与文献[12]中算法进行比较,在图5中可以看出本文算法比文献[12]加权结构复杂度低,算法对系统扰动性低,因而有效性表现好.

图5 在Apj数据集下不同文献加权结构复杂度大小的比较Fig.5 Comparison of weighted structure complexity of different literature under Apj data set

图6、图7是在不同的数据集下角色的数量与用户和权限数量的关系,它们的共同特征是随着权限、用户数量的增多,角色的数量呈递减变化,这是因为用户的共同属性也在逐渐增多,因此可分配的角色便逐渐减少.

图6 不同数据集下权限与角色的关系Fig.6 Relationship between permissions and roles under different data sets

图7 不同数据集下用户与角色的关系Fig.7 Relationship between users and roles under different data sets

以上的实验说明基于属性规则的角色权限细粒度分配与用户角色动态分配是可行的,所产生的角色集合是准确并且对系统的扰动性是最小的.

6 结 语

本文提出了基于属性和RBAC的访问控制模型,通过属性授权规则完成基于最小扰动的角色权限细粒度分配算法;对新增的用户根据属性进行用户角色的动态分配过程,并对系统中的角色集合进行最小扰动的评估,确保生成的角色集合与系统的角色集尽可能保持一致,经过实验验证算法具有较高的准确性和有效性.

本文的下一步的研究方向是属性与RBAC的混合扩展访问控制模型在保证效率的前提下完成细粒度、动态授权.

猜你喜欢

访问控制复杂度扰动
全球大地震破裂空间复杂度特征研究
一类五次哈密顿系统在四次扰动下的极限环分支(英文)
采煤扰动下潜水位及包气带水分变化特征
基于扰动观察法的光通信接收端优化策略
数字经济对中国出口技术复杂度的影响研究
Kerr-AdS黑洞的复杂度
非线性电动力学黑洞的复杂度
云的访问控制研究
云计算访问控制技术研究综述
带电的标量场扰动下ReissnerNordstrm Antide Sitter黑洞的不稳定性