基于动态策略的RDRBAC权限访问控制模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于动态策略的RDRBAC权限访问控制模型
张柱;张博锋;郑建兴
【摘要】在基于角色的访问控制模型RBAC的基础上,提出一种多维动态权限控制模型RDRBAC。
角色对象、权限仲裁机制的引入实现了多用户系统中,基于任务流程的权限动态分配策略,解决了RBAC中权限动态定制、管理员负担过重以及角色权限冗余等不足,并在实际应用中得到了验证。
%In this paper, a multi-dimensional dynamic access control model RDRBAC based on the role-based access control model RBAC is introduced. It achieves task-based process dynamic allocation strategy in a multi-user system by the intro-duction of role object and permission arbitration mechanism to solve the defect of dynamic custom, too heavy administrator burden and the role permissions redundancy insufficient in RBAC. It has been verified in the practical application system.
【期刊名称】《计算机工程与应用》
【年(卷),期】2015(000)009
【总页数】5页(P103-106,151)
【关键词】多维动态权限控制模型(RDRBAC);动态决策机制;授权;策略库;任务阶段【作者】张柱;张博锋;郑建兴
【作者单位】安徽理工大学计算机科学与工程学院,安徽淮南 232001; 上海大学计算机工程与科学学院,上海 200072;上海大学计算机工程与科学学院,上海200072;上海大学计算机工程与科学学院,上海 200072
【正文语种】中文
【中图分类】TP393
1 概述
随着计算机网络通信技术的发展,复杂的多用户协同应用系统得到了广泛运用,访问控制成为辅助多用户完成协同工作的基础。
目前基于角色的访问控制机制RBAC 由于其细粒度、用户与权限隔离等优点而得到广泛的应用。
同济大学的常彦德和西安电子科技大学的李凤华等人从理论研究和应用研究两个方面分析和总结RBAC
国内外现有研究成果[1-2]。
吴新松、安晓飞等人分别将RBAC模型应用到了疫情
报告系统和招生系统中[3-4]。
传统RBAC简化了系统授权管理的过程,通过引入角色将用户主体和对客体的访
问权限隔离开来,并实现了权限最小化原则,但仍存在如下不足。
首先,权限划分仅局限于角色。
通常多用户应用系统中,用户之间通过协作完成具体的工作任务,工作任务是权限划分的最小单位。
传统RBAC模型中,权限与角色相关联,并只
能依赖于角色。
当拥有多个职务的用户使用系统时,系统会依据职务分别分配不同的角色,因此用户需要在多个角色之间进行切换,广东工业大学CIMS重点实验
室的刘强等从RBAC的核心理论角色分析了存在的问题[5];中山大学的朱君等人
提出了基于角色和任务的访问控制模型RTBAC[6],赵静等人提出基于数据对象的分配用户权限的方法[7],试图通过任务状态或用户获得的数据对象的不同对权限
进行管理。
其次,授权管理过于集中。
在RBAC中用户授权管理集中在系统管理员,但在多
用户协同系统中,由于参与协作的用户数量大,势必会加重管理员的负担。
武汉工程大学的李晶等人提出采用逐级授权的RBAC访问控制[8],细化权限控制的粒度,
试图减轻管理员的负担。
邢汉发等人针对用户数量巨大,在RBAC模型的基础上
引入了用户组的方法,缓解管理员负担过大的问题[9]。
再次,RBAC在动态定制上的不足。
传统RBAC是基于主-客体访问思想的静态授
权的安全模型,而多用户协同系统的分布式及层次化处理信息的机制,要求授权机制也是动态的。
重庆大学的周庆、巫茜引入目标案例、用户管理和目标三个关系元素,提出基于工作流的动态访问控制机制[10],但目标案例之间的依赖关系复杂。
Elisa Bertino等人提出一种采用临时角色的访问控制系统来处理动态权限控制[11]。
安徽理工大学的李卿提出了利用动态权限列表试图解决传统RBAC在权限动态分
配上的不足[12]。
林庆国等人提出了采用基于忠诚度的信任计算方法[13],杨晶、赵再军等人提出将用户授权与权限期等结合的方法[14-15],这些方法在一定程度
上缓解了RBAC在动态定制上的不足。
但上述方案都未能解决动态权限的分配策
略以及角色权限分配冗余等问题。
为更好地解决上述不足,本文提出一种基于角色对象和动态权限列表的角色访问控制机制RDRBAC,利用实时生成的角色对象解
决权限划分的局限性,利用决策机构和策略库提供动态的权限管理,解决由于权限管理过于集中而导致的管理员负担过大以及角色权限分配冗余问题。
2 模型的改进
2.1 在RBAC中引入角色对象
角色对象不仅是角色的实体,也是动态授权的对象,在多用户系统中,代表着用户权限的集合。
多用户系统中用户数量众多,一个用户通常需要承担多项不同的工作任务,一项工作也可能由多个用户协同完成。
如果系统中角色划分过细,将造成系统中存在过多的角色,如果划分太粗,则带来权限分配出现冗余,从而导致系统资源的不当访问。
如图1所示。
现有任务A和B,完成任务 A 需要权限 p1,p3和
p5,记为任务 A{p1,p3,p5},完成任务 B 需要权限 p1,p3和 p6,记为任务
B{p1,p3,p6}。
管理员从权限集中给角色分配的权限为角色r1拥有权限 p1、
p2和 p3,角色 r2拥有权限 p3、p4和 p5,角色 r3拥有权限 p1、p4和 p6。
可见在RBAC中无论如何给用户分配角色都很难避免出现权限的冗余。
图1 RBAC中用户授权
为了在访问权限的最小化的基础上,提供多用户协作系统中用户权限合理灵活的分配,本文在RBAC的基础上引入角色对象RO的概念,将角色与RO相关联,保
证了用户权限灵活合理的分配,保障系统资源访问权限的最小化。
称为基于角色对象的动态RBAC模型,简称RDRBAC模型。
在RDRBAC中,RO是动态生成的。
当用户通过身份验证,产生Session会话时,用户能够通过会话从角色授权数据库中获得相应的角色,访问控制模块依据用户的实际工作状态产生对应的用户角色对象RO。
在RDRBAC中,角色对象有两部分组成,一组静态的访问控制列表SPL和一组动态的访问控制列表DPL。
SPL中的权限来自于Session会话中为用户映射的角色,有管理员依据工作任务的需要划分,并分配访问控制权限,用户在一次会话中所充当的角色可以固定不变。
DPL中的权限来自于事先定义的RDRBAC访问控制策略库,策略库中的权限是完成某些特定的工作任务所必须具备的,而进行其他任务则不需要的。
如果将这部分权限直接与角色关联势必导致用户权限的冗余,从而造成系统资源的不当访问。
因此,将这部分需要动态分配的权限与具体的工作任务相关联,放置在RDRBAC权限策略库中,并制定相应的权限授予机制和回收机制构成仲裁机构。
当用户执行某个工作任务的特定阶段时,这部分权限灵活、机动地根据需要临时从权限策略库中加载到DPL中,以方便用户顺利完成工作。
一旦用户完
成工作,这部分权限将根据权限回收机制,从DPL中释放返回权限策略库。
DPL
机制能够实现权限灵活授予的同时,也保证了角色对象与权限映射的最小化原则。
由于DPL中的权限随用户参与工作状态的不同而发生变化的,故称为动态权限列表,它是RO发挥作用的关键部分。
如上例,引入角色对象和DPL后,管理员可对角色与权限进行重新划分,将权限p1和 p3分配给角色r1,权限 p2和 p4分配给角色r2,将权限 p5和 p6分别与任务A和任务B关联,放入权限策略库中,并制订相应的权限授予和回收机制,根据任务的不同实时授权给用户。
执行任务时,根据用户的职务从角色集中得到角色r1,初始化角色对象ro1,并将r1拥有的权限 p1和 p3作为ro1的SPL的内容,然后根据需要完成的任务(设为任务A)从策略库中,得到完成任务A必须的权限 p5填充的ro1的DPL中,形成角色对象,此后,用户使用角色对象ro1所拥有的权限执行工作任务。
工作完成后,DPL中的 p5权限及时被回收,保证了角色对象与权限映射的最小化。
RDRBAC中的用户授权如图2所示。
图2 RDRBAC中的用户授权
2.2 动态授权策略
动态授权策略用于将权限策略库中与任务相关联的特殊权限按照任务的不同以及任务执行的阶段授权给角色对象的DPL。
权限策略库中存放权限与角色名ri、任务标识符task_ID以及任务执行阶段标识符period_ID映射,即
表示当请求授权的角色对象,拥有角色ri,且task_ID标识的任务进行到period_ID阶段时,应将 pj和 pk授权给对应的角色对象。
将多用户应用系统中的一项任务划分为三个阶段:开始阶段、特殊授权阶段和释放授权阶段。
开始阶段用户获得管理员分配的角色,利用角色中关联的权限形成角色对象的SPL,开始准备执行任务。
当任务进行到需要特定的访问权限阶段时,角色对象通过会话向授权仲裁机构请求特殊权限 p,仲裁机构中包含了系统中角色对象特权申请记录,仲裁机构首先检查角色对象中是否已经包含申请的权限,然后根据请求中包含的角色名称、任务标识符task_ID和任务阶段识别码 period_ID,查询
授权库,将查询结果返回角色对象,角色对象将结果中包含的权限 p填充到DPL 中。
这个阶段为特殊授权阶段。
此后,角色对象便拥有请求的权限。
释放授权阶段,是指特殊权限使用完毕后,角色对象从DPL中清除先前申请的特定权限的过程。
此时,角色对象通知仲裁机构,自己释放的权限,仲裁机构删除特权申请记录。
整个动态授权和回收过程,如图3所示。
图3 动态授权及回收过程
2.3 RDRBAC模型的定义
定义1用二元关系集P表示多用户系统中访问控制权限的集合。
P的定义域
domP=O,值域ranP=SR,P可表示为:
P={<o,sr>|o∈O∧sr∈SR∧o可以对sr进行操作}其中,SR表示多用户系统中
的资源集合,O表示多用户系统中的操作集合。
P中的每对序偶对应于多用户系统中的一种访问控制权限。
由于二元关系P定义在P(O)×SR的子集上,所以,P是从操作集O到系统资源集SR的二元关系。
定义2用二元关系集PAR表示多用户系统中角色与权限关联的集合。
PAR的定义域domPAR=R,值域ranPAR=P,PAR⊆R×P,PAR可表示为:
PAR={<r,p>|r∈R∧p∈P∧r可获得权限p}
其中,用R表示多用户系统中的角色集合,PAR中的一个序偶为一种角色可获得
的一种访问控制权限。
定义3角色ri与其获得的所有访问控制权限组成的序偶集,为集合PAR的一个子集,记为PRi。
设|R|=n,则集合 PR={PR1,PR2,…,PRn}满足以下两项:(1),∃PRi使得par∈ PRi)
(2)PRi∩PRj=Φ(1≤i≠j≤n)
因此,集合 PR为集合 PAR的划分。
并且,PR1,PR2,…,PRn均属于角色集R 到权限集P上的关系。
PR的幂集P(PR)(也记作2PR)为PR的全体子集组成的
集合,即:P(PR)={pr|pr⊆PR}。
定义4二元关系集UAR表示用户与角色关联的集合。
UAR的定义域
domUAR=U,值域ranUAR=R,UAR⊆U×R,UAR可表示为:
UAR={<u,r>|u∈U∧r∈R∧r是可以分配给u的角色}
定义5某个用户ui与其可分配的角色组成的序偶集,为集合UAR中的一个子集,记为URi。
设|U|=n,则集合 UR={UR1,UR2,…,URn}满足以下两项:(1),∃URi使得uar∈URi)
(2)URi∩URj=Φ(1≤i≠j≤n)
定义6设RO表示多用户系统中角色对象的集合,RO中的每一个元素roi,是系
统中一个角色对象,并且roi=spli∩dpli,则 RO⊆2P。
定义7二元关系集URO表示用户与角色对象关联的集合。
URO的定义域domURO=U,值域ranURO=O,URO表示为:
定义8二元关系UAT表示用户与任务的关联集合,其定义域为domUAT=U,值域为ranUAT=T,UAT⊆U×T,UAT可表示为:
UAT={<u,t>|u∈U∧t∈T∧t是可以分配给u的任务}
对于每个任务t可以分为若干个执行阶段,每个阶段有对应的阶段ID,即
t:(period_ID1,period_ID2,…,period_IDn)
定义9存在映射 f:(URi,task_ID,period_ID)={pj,pk},当且仅当同时满足以下3个条件:
(1)URi⊆ UAR
(2)task_ID ∈ UATi,UATi⊆ UAT
(3)period_ID∈task_ID
3 模型的应用
本模型已成功地在某高校学生实验管理平台上应用。
该系统平台的教师使用用户
63人,学生使用用户2 546人,主要用于学生实验课程管理,包括实验设备管理、实验步骤管理和实验成绩管理,实现了多用户系统下,用户的分类管理和权限的动态分配。
系统中设置User表,用于存放用户的基本信息,包括用户的ID、姓名、身份等。
Role表用于存放角色信息,以及角色对应的访问资源。
User_Role表用于存放用
户与角色的对应关系。
Task_Stage表用于存放工作任务各阶段中的ID,以及该阶段任务完成的标识,用于用户申请进入下一工作阶段时的依据。
Task_Stage_P表存储用户在特定任务的不同工作阶段所分配的访问资源,已形成动态列表,仲裁机构通过查阅该表来为用户分配动态权限。
系统将用户的管理分为静态授权和动态授权两大部分,静态授权包括用户的登录认证、角色的分配,工作任务的分配等,学生登录系统并通过认证后,分配对应的角色以及阅读实验指导书等基本访问资源和实验第一阶段的ID,并允许其进入对应
的实验课程入口。
动态授权则用于利用用户当前的角色、任务ID和阶段ID为用
户提供动态权限的分配。
动态授权模块不但有效防止了权限的不恰当扩散,也为用户根据当前任务阶段来获取特殊的访问资源提供了方便。
4 结论
本文提出一种基于角色对象和动态权限列表的角色访问控制机制RDRBAC,将系
统用户的权限的管理分为静态权限和动态权限两部分,并使用角色对象将静态权限和动态权限结合,利用实时生成的角色对象解决权限划分的局限性。
该模型通过将用户任务划分阶段,并通过增加动态权限的判别机制来根据用户的角色和所处的任务阶段管理安全级别需求较高的权限,实现了权限的动态管理,解决由于权限管理过于集中而导致的管理员负担过大问题。
该模型在动态管理策略、任务阶段的合理划分等方面仍然有可以改进的空间。
【相关文献】
[1]常彦德.基于角色的访问控制技术研究进展[J].计算机与现代化,2011,12(6):5-8.
[2]李凤华,苏铓,史国振,等.访问控制模型研究进展及发展趋势[J].电子学报,2012,40(4).
[3]吴新松,贺也平,周洲仪.一个环境适应的基于角色的访问控制模型[J].计算机研究与发展,2011,48(6).
[4]安晓飞,王占军,刘冰.基于角色的访问控制技术在招生系统中的应用[J].沈阳师范大学学报:自然科学版,2009,27(4).
[5]刘强,王磊,何琳.RBAC模型研究历程中的系列问题分析[J].计算机科学,2012,39(11):
13-18.
[6]汤庸,朱君.基于角色和任务的CSCW系统访问控制技术研究[J].计算机科学,2010,37(7):130-133.
[7]赵静,杨蕊,姜滦生.基于数据对象的RBAC权限访问控制模型[J].计算机工程与设计,2010,
31(15):3353-3356.
[8]李晶,李晓林,朱思斯.基于RBAC模型的多级权限访问控制设计[J].软件导刊,2009,18(4):140-142.
[9]邢汉发,许礼林,雷莹.基于角色和用户组的扩展访问控制模型[J].计算机应用研究,2009,26(3):1098-1100.
[10]巫茜,周庆.基于动态控制机制的工作流安全访问模型[J].计算机工程,2012,38(9):171-173.
[11]Bertino E.TRBAC:a Temporal Role-Based Access Controlmodel[J].ACM Transactionson Information and System Security(TISSEC),2001,4(3):191-233.
[12]李卿.CSCW中基于角色访问控制的研究与改进[D].淮南:安徽理工大学,2010.
[13]林庆国,刘宴兵.一种基于信任的动态访问控制策略[J].重庆邮电大学学报:自然科学版,2010,22(4):478-482.
[14]杨晶,张永胜,孙翠翠,等.基于时间约束和上下文的访问控制模型研究[J].计算机技术与发展,2011,21(1):143-146.
[15]赵再军.基于角色权限分配的协同电子政务访问控制模型研究[J].计算机科学,2010,37(8):143-145.。