角色访问控制模型

2024-05-13

角色访问控制模型(精选8篇)

角色访问控制模型 篇1

0 引言

基于角色访问控制 (RBAC) 是目前流行的一种访问控制策略, 是在用户和访问许可权之间引入角色的概念, 将权限与角色相联系, 通过对角色的分配和取消来完成用户权限的授予和撤消, 简化了用户和权限的管理。RBAC技术俨然已经成为传统的自主访问控制和强制访问控制技术的最佳替代者, 受到了越来越多的关注。

在大型管理信息系统中, 可以有成百上千个用户, 每个用户扮演着不同的角色, 每个角色可以拥有不同的权限.集中由一小组的安全管理人员来管理这些角色和用户是一项非常繁重的任务, 这就要求下放RBAC的管理权, 分散授权管理。基于角色访问控制的主要优点是省去了权限管理的麻烦, 因此运用RBAC来管理RBAC本身是可行的。近年来, 相继提出的RBAC管理模型有ARBAC97、ARBAC02和CL03。下面对这三个模型进行分析比较。

1 ARBAC97模型

ARBAC97将RBAC各组件的管理问题划分为三类:用户-角色指派 (URA97) 、权限-角色指派 (PRA97) 和角色-角色指派 (RRA97) , 实现了对RBAC分而治之的管理。

1.1 URA97模型

URA97是用户-角色管理模型, 主要解决的是对用户分配角色的问题, 包括规则角色与管理角色的分配。该模型有两个组件, 角色分配can_assign () 和角色撤消can_revoke () 。

定义1.用户-角色指派:can_assignAR×CR×2R, R是角色集, AR是管理角色集, CR表示所有可能在R中使用角色形成的先决条件集合。

例如can_assign (x, y, Z) 指一个管理角色x (或一个级别比x高的管理角色成员) 可以对一个用户, 当这个用户的规则角色满足先决条件y时, 就能授予该用户成为范围Z中的一个规则角色成员。

定义2.用户-角色指派撤消:can_revokeAR×2R

例如can_revok (x, Z) 指一个管理角色x (或一个级别比x高的管理角色成员) 可从任何规则角色z∈Z中撤消一个用户的成员资格。

URA97中的撤消操作是一种弱撤消, 仅对直接管理的角色适用。图1中, 如果一个用户同时是DIR与PL1的成员, 而DIR的权限又是由PL1继承而来的, 那么即使删除了用户的PL1角色成员资格, 该用户仍然可以通过角色DIR获得PL1的许可。

1.2 PRA97模型

PRA97是许可-角色管理模型, 主要解决的是许可的分配与取消问题。RBAC模型中与权限直接关联的是角色, 因此, 权限到角色的指派是RBAC管理操作中重要的环节。该模型也有两个组件, 权限分配can_assignp和权限回收can_revokep。

定义3.权限-角色指派:can_assignpAR×CR×2R

定义4.权限-角色指派回收:can_revokepAR×2R

从角色的角度看, 用户和许可具有相同的特征, 故PRA97与URA97具有一一对应的关系, 只要把URA97中与用户有关的数据换成是权限, 就可以得到PRA97模型。

1.3 RRA97模型

RRA97是角色-角色的管理模型, 主要解决的是角色本身的管理问题, 这是整个RBAC模型中最为复杂的部分。由于角色的继承关系会影响到用户-角色指派和权限-角色指派关系, 任何一种操作都会对角色偏序结构产生影响, 从而给RBAC模型的分布式管理带来困难。

RRA97仅讨论了普通角色的管理, 而对管理角色的管理则未做说明。模型中普通角色的管理包括对角色和角色继承关系的修改, 由can_mod ifyAR×2R操作控制。

例如:can_mod ify (x, Y) 的意思是管理角色x (或者级别比x更高的管理角色) 中的一员可以创建或者删除区间Y中的一个角色, 也可以改变区间Y中的角色层次关系。

ARBAC97模型虽然简单, 易于理解, 但在实际应用中还存在一些缺点:

首先, ARBAC97不能够对特定的角色层次结构进行操作;其次, 由于受到先决条件的限制, URA和PRA中分别存在着用户和权限多步分配的问题, 多步分配必须导致信息冗余;最后, 由于采用自顶向下的权限分配方法, PRA97中存在着不合理的许可流问题。

2 ARBAC02模型

针对ARBAC97模型存在的问题, 对其进行了改进, 并提出了一个新的管理模型-ARBAC02。该模型采用了一种更先进的管理方法, 在保留ARBAC97模型主要特征基础上, 引进了一个新的概念“组织结构”, 作为新用户和权限库, 以此取代角色层次结构中的先决条件角色, 同时设计了一个自底向上的权限分配方案。

2.1 组织结构与新的用户库和许可库

组织结构是一个树型结构且具有继承特性, 它独立于角色或角色层次。一个组织结构是由许多组织单元构成的, 每个组织单元中都包含着相关人员和相关工作职责。为了完成角色管理的目的, 我们可以把用户库和许可库看成是不同的组织结构。

定义5.OS-U代表用户库的组织结构, 包含了事先分配好的用户。图2是一个OS-U的例子。任何组织单元都有用户, 如果“Tom”是“PJ1”的一员, 这就意味着他在Project1中有一个工作职位。OS-U是一个树型结构, 且具有继承特征。因此, “Tom”作为“PJ1”的一员, 也是“ED”和“PRD”的一员。

定义6.OS-P代表许可库的组织结构, 包括了事先分配好的许可。从图3中看到OS-P是一个倒置的树型结构, 一般的许可分配给底层部门, 特殊的许可分配给高层部门, 生产部门的访问许可都分配给“PRD”, 而Projectl成员的特殊许可分配给“PJ1”, 在OS-P中许可被向下继承。

2.2 自底向上的许可-角色分配方式

ARBAC02模型采用自底向上的方式进行许可的分配, 一般的许可分配给较低层次的角色, 较高层次的角色可以继承这些许可;另外, 特殊的许可分配给层次较高的角色。图1中, 公司所有成员都拥有的许可分配给角色“E”, 工程部门成员拥有的许可分配给角色“ED”, Projectl的成员拥有的许可分配给角色“E1”。这样, 层次较高的角色可以通过继承来获得相应的许可, 避免了不合理的许可流向。

3 CL03模型

严格意义上讲, CL03不能算做管理模型, 真正的管理模型应该是SARBAC, 它是在RHA4基础上扩展出来的。RHA4是R H A层次管理模型系列中的一个组成部分, 其作用与RRA97相当。RHA4中有一个很重要概念就是“管理区间”。

定义7.S (r) 设是角色r的管理区间, 有S (r) ={s∈R:s≤r↑s↑r↓r}。

例如, a∈S (r) 表示从a开始的每条路径都经过r, 也就是说, 由r控制的关于a的任何改变都不会因继承特性而对层次结构产生影响。

SARBAC在RHA4 admin_authority操作基础上增加了与ARBAC97中和作用相当的两个操作:

控制用户-角色的指派:ua-constraintsR×A (R)

控制权限-角色的指派:pa-constraintsR×A (R)

用户和权限的指派关系是通过ua-constraints和pa-constraints的直接更新和间接更新实现的。这两种更新操作都能改变模型的层次结构, 如果角色r处在管理角色a的管理区间之内, 那么a就可以修改所有与r有关的操作, 包括添加删除角色r, 添加删除以r为端点的边线, 这样的操作可能破坏模型的层次结构, 这在ARBAC97中是不允许的, 因为ARBAC97中对角色层次结构的任何一种操作都必须保证角色区间的封装性;而在SARBAC中, 每个管理角色都和一个特定的管理区间相关联, 角色的管理区间是由层次结构决定的, 而层次结构又是ad min_authority由操作动态扩展的, 并且可以随着层次结构的变化而动态变化, 因此SARBAC的管理方法更加灵活, 适用范围更广。

另外, SARBAC在模型的完整性, 简单性, 实用性和多功能性等几个方面都比ARBAC97优秀, 在基于角色的模型框架下, 还可以很好地模拟自主访问控制机制, 降低由角色层次结构的继承性带来的复杂操作。

4 结论

ARBAC97是最基本的, 也是最容易理解的基于角色访问控制管理模型, 但该模型还存在着很多问题。ARBAC02针对ARBAC97中存在的问题提出了一些改进措施, 引进了组织结构的概念, 使用户和许可不再依赖于角色层次。同时, 模型采用自底向上的权限分配方案, 解决了ARBAC97中存在的不合理许可流问题。SARBAC管理模型的提出, 突破了ARBAC97只能在封装的角色区间内对角色层次结构进行修改的局限, 使得该模型比ARBAC97更有吸引力, 具有更多的理论和实际应用价值。

摘要:基于角色访问控制技术是保证信息和系统安全的最有效的技术, 将角色与权限对应起来, 用户根据他的责任和资格被赋予适当的角色而获得相应的权限。模型中角色的分布式管理是一个十分复杂的问题。为了使RBAC模型的管理更加方便, 灵活, 可以用RBAC来管理模型本身。ARBAC97、ARBAC02、CL03是近年来提出的RBAC管理模型。本文重点对这三个模型进行了介绍, 通过比较, 指出了ARBAC97中存在的不足及ARBAC02、CL03所做的改进。在分析各个模型过程中, 给出了自己的理解。

关键词:基于角色访问控制,管理模型,ARBAC97,ARBAC02,CL03

参考文献

[1]Ferraiolo D, Cugini J, Kuhn R.Role-based access control (RBAC) :features and motivations. In:proceedings of 11th Annual Computer Security Application Conference, New Orleans.LA.1995.12.

[2]Bertino E,  Feari E, Atluri V. Specification and Enforcement 0f Authorization Constrains in Workflow Management Systems.

角色访问控制模型 篇2

随着互联网中的云计算应用越来越广泛,微软,谷歌等IT业巨头都在不断的扩建自己的云计算平台,但是伴随着云计算应用范围的不断增大,信息安全已经成为了制约与计算平台发展的重要原因之一,一些涉及到网络安全的技术逐步被人重视,Window Azure平台是微软开发的一款云计算平台,其主要作用是通过Internet平台为其他运行的应用程序服务,最大可能的保证性能不降低。如何能够最大限度的利用Win?dows Azure平台的数据存储安全技术,从而能够保证云计算平台具有开发的安全性和灵活性是目前研究的重点。目前访问控制技术是元计算平台领域中一种非常重要的技术,它的思想是采用一定的策略,首先对主体进行验证,然后对客体的访问权限进行设置,可以很好地保证云计算环境中的访问权限的的安全性,从而保证云计算机节点的资源能够合理的被使用,从而避免来自系统内部的破坏。

访问控制是一种重要的技术,是保证云计算平台的信息机密性和完整性的重要组成部分。本文针对在Windows Azure 云计算模型的基础上,针对现有的任务-角色访问控制模型,提出一种新的访问控制模型。该模型可以在一定程度上有效地减少资源调度的耗时以及数据访问控制的安全性。

基于角色的访问控制模型研究 篇3

访问控制在Web访问中占据重要的意义,其准确性直接关乎信息数据的安全性,其实现方式又关乎控制的管理灵活性。访问控制的方式主要体现为3种形式,DAC(Discretionary Access Control,自主访问控制),MAC(Mandatory Access Control,强制访问控制)和RBAC(Role-Based Access Control,基于角色的访问控制)。其中,强制访问控制系统直接将权限分配给用户,虽然直接可行,但是管理起来较为麻烦,当用户数量达到一定程度越发棘手。RBAC的出现有效地解决了实际应用过程中产生的这些问题。通过将主体,客体分类成用户,角色,权限3大块,进而基于此分配用户不同的角色,对不同的角色分配不同的权限,整个系统模型得以灵活地管理权限的分配,保证了访问控制的有效性和准确性。简单说,当一个组织机构的人员变动时,只需要对用户角色的分配,角色权限的分配稍加调整,就可以解决相应问题。整个过程实现了用户权限的逻辑分离,降低了系统的维护成本,增强了可操作性。

然后在实践中,依然可以发现以下问题:

(1)简单说,一个用户可以分配多个角色,在某些情况下,管理员可能发现,在此模型的基础上,系统分配权限的粒度并不充分。试想管理员对用户A分配的角色并没有满足充分地要求,需要微调,以对原用户进行更加细腻的约束。于是建议基于RBAC模型,采用适当的MAC规则加以辅助,具体看正文。

(2)在实际的网络访问中,如果没有特别的处理,来访的客户应该是平等的。提出在角色设置的时候可以适当的引入访问优先级。举个例子,角色中的user,manager和systemmanager在同时登录访问系统时应该被置于不同的优先级,从而得到不同的响应——高级管理者应该被系统优先接纳,反之亦然。

2 相关技术

自从最早的RBAC模型提出以来,在文献[1]中,Sandhu等人的模型统一了人们的认识,建立了相应的标准。而文献[2]则具体阐述了RBAC的建议标准。平坦型,层次型,约束型,对称型等具体的划分,使人们的认识更加清晰。简述如表1所示。

基于此有文献[3]形象地称之为RBAC0,RBAC1,RBAC2,RBAC3,并且用图形形象地表现出来,如图1所示。

其实现则主要体现在图2中:管理员通过分配用户的角色、分配角色的权限,达到了用户和角色的逻辑分离,使得数据的访问控制更加完善,降低了维护人员工作的复杂度,提升了管理的灵活性,而各个模型的管理不同又得以很明显的表示。

随着研究的深入,NIST版本的RBAC模型又基于前人工作出现,具体体现为核心RBAC,层次型RBAC,静态职责分离(static separation of duty SSOD)关系,和动态职责分离(dynamic separation of duty DSOD)关系,具体说来四个模型组件又和先前的RBAC模型相应的对应,这些文献[2]都有细说,此处略过。

文献[3]提及的整个模型的实现策略——安全Cookies,智能认证和LDAPS 3种实现方法,使得整个模型得以具体实现。由于RBAC控制策略的有效性,近年来被成功的应用于大型网站和一些系统软件中,而这些工作又反过来促进了RBAC研究工作的深入。比如文献[4]在身份认证上巧妙的采用安全cookies机制,实现对服务器和客户端的双向认证,有效防止黑客侵入,保证了通信的安全。但是相关的问题依然存在,比方说一个角色被分配了相关的权限,被分配此角色的用户就会无限的享受此权限效力。如果说一个用户只有在工作中,或者休息中,才能享受这些权限,那么原先的模型便不足以更细粒度的刻画这种约束。文献[5]中基于角色访问控制提出时间特性的概念,对原有模型进行时间特性的扩充,规定在特定的时间范围内权限的具体约束,从而保证会话的一致性,提高了访问控制的操作性。针对此种现象,也有学者提出基于规则和角色的访问控制,即在RBAC的基础上,扩充规则特性,规定在某个任务进行时才可以履行某个权限,这一点文献[6]有着详细的阐述,并且提及的相关概念中使能型权限,激活型权限和限制型权限很好的阐述了原模型应用中的一些不足,并给出了具体的新的拓展。

在此注意到,引言中提到的问题需求,与文献[6]中的面临问题确有相似之处:(1)虽然角色拥有所请求操作的相应权限,但能否真正执行操作要根据系统当前的状况决定。(2)不同用户行使同一角色的权限时能操作的客体集不完全一样,在此基于以往学者经验,特提出一种新的约束机制,即在传统的RBAC基础上,引入强制访问约束,以供参考。具体如图3所示。

具体说来就是针对RBAC的操作不足,在原模型的基础上引入强制访问约束。在Mac约束中可以具体规定具体用户的访问粒度,比如时间权限,任务特性,或者某个用户对具体对象object的约束控制。举个例子,管理员已经对某些用户权限的管理做好了分配,但实际应用中发现了不足,可能要针对用户A进一步限制,这时不需要改变其角色配置,仅仅在相应的Mac约束中加以说明,然后经后期的约束聚合,就可以达到灵活的访问控制。这样不至于遇见一个不合适的用户权限分配,就创造一个新的角色。此时,角色的管理更加方便。

在此Mac约束的引入,可以明显提高访问控制的灵活性,又可以在系统允许范围内,适当的改善而又不会明显提高工作量、增加问题的复杂度。模型实践时,在访问具体对象时只需在原有的RBAC的基础上,将Mac约束和原先分配好的约束进行合并操作,得出的新的约束就是改进后的细粒度权限分配。

同时,又在角色集合上绑定优先级,从高到低优先级依次可设置为0,1,2,3等。以便服务器进行不同级别的响应,提高高优先级成员的访问速度。

3 模型的相关定义和实现

用户集:U={u1,u2,u3,……}.u1,u2等即RBAC中的普通用户,U为所有用户的集合。

角色集:R={r1,r2,r3,……}.r1,r2等即RBAC中的普通角色,如员工worker,管理者manager,超级管理员super_manager等,R为所有角色的集合。

权限集:P={p1,p2,p3,……}.p1,p2等即RBAC中的普通权限,比如对数据库的增、删、改、查,对网页信息的浏览,打印等操作。

优先级集合:Pre={n1,n2,n3,……}.其中n1到n3可依优先级从高到低设定为0,1,2具体应用时可以实际情况自行分配。

角色优先级绑定集合Rp={,,,……}.即对角色r1分配了n1的优先级,即对角色r2分配了n2的优先级,同理类同不赘述。当然在用户分配时针对一个用户多个角色的分配的情况,可对该用户默认设定为n1,n2等中的最高优先级n,暂记为n=max{n1,n2,……}。此项工作在最终权限判定时可以简单的优先级判定算法实现。

Mac约束集:UP={,,,……}.其中,即对用户u1在t1到t2时间段的p1权限进行限制,bool值为真即为允许操作,bool值为假即为禁止。同理,即为对用户u2在t3到t4时间段的p2权限进行限制,bool值为真允许操作,反之禁止,其它类同不赘述。由于实际操作的环境不同,此处仅对用户权限在某个时间段内某个权限进行约束,实际操作时可根据具体情况灵活扩展mac约束的子项,可以基于任务特性,也可以基于工作流,周期等。只是简要介绍一种新的模型,新的约束机制。

下面以一个正在开发的Web访问控制系统为例,介绍下其访问控制流程并简述如下:

(1)用户登录,进行身份验证。

(2)验证成功则跳转访问首页,否则报错,告知重新登录。

(3)在访问首页用户可以根据自己的需要进行相应的操作,比如对数据object的打印,浏览,增、删、改、查操作,当用户user进行某项操作时,询问数据库RBAC控制模块及mac约束模块,两模块约束进行叠加,得出当前用户user的访问权限是否为真。为真允许操作,反之则进行报错,告知无权访问。

(4)用户安全退出。

其流程图简述如图4所示。

一个相应的判定算法:

4 结语

首先,对RBAC的概念进行了深层的认识,仔细分析了其原型的产生,发展,以及良好管理效力所显示的强大生命力,并且跟据前人的成果,分析了原模型在实际操作中的不足之处,阐述了基于时间特性,基于任务工作流和基于规则的相关改进工作,并进行了相关的说明。在此基础上针对原模型的功能不足,提出了一种强制约束(MAC约束)与基本RBAC相结合的模型,使得用户,角色,权限的管理更加灵活,更加符合实际操作。

相关研究文献[7]中的提到的RBAC的细粒度控制研究工作,与本模型有共通之处,但也有区别。共同点皆是在原有的RBAC模型基础上引入细粒度操作,区别即前者是对资源访问权限进行的分解,细化,而是在相对粗粒度(即原模型)的基础上,引入了用户,权限间的直接约束,弥补了原模型的不足。而且值得注意的是,提及的MAC约束的具体的约束规则可根据用户需要灵活扩展,比如加入时间特性,任务流特性等,具有一定的适应能力和良好的可操作性。

在此,基于文中提及的改进型RBAC模型,正在探索相关系统的具体实现。相关的策略表示,具体的MAC实现和所有约束的聚合将是研究工作的重点。

参考文献

[1]Ferraiolo DF,Sandhu R,Gavrila S.Proposed NIST standardfor role-based access control.ACM Transactions on Informa-tion and System Security,2001,4(3):224-274.

[2]薛伟,怀进鹏.基于角色的访问控制模型的扩充和实现机制研究.[J].计算机研究与发展,2003,40(11):1636-1642.

[3]J Park,R Sandhu1 RBAC on the Web by smart certificates1In:Proc of the 4th ACM Workshop on Role2Based AccessControl1 Faixfax,VA:ACM Press,19991:1-9.

[4]桂艳峰,林作铨.一个基于角色的Web安全访问控制系统[J].计算机研究与发展,2003,40(8):1187-1194.

[5]黄建,卿斯汉,温红子.带时间特性的角色访问控制[J].软件学报,2003,14(11):1945-1954.

[6]芮国荣,邢桂芬.基于角色和规则的访问控制[J].计算机应用,2005,25(4):864-866.

角色访问控制模型 篇4

回顾数据库安全访问控制的发展史,时至今日,RBAC的理论和应用已经相当成熟。Sandhu等在1996年提出基于角色的访问控制模型(如图1所示),第一次形式化地描述了基于角色的访问控制,并在1997年提出了RBAC的管理模型AR2BAC (Administrative RBAC) [1]。这两个模型是基于角色的访问控制模型中的经典模型,也被分别称为RBAC96模型和ARBAC97模型。2000 年Osborn等人研究证明了RBAC 是一种更一般的访问控制模型,他们利用RBAC 模型成功地模拟了MAC 和DAC,即可以用RBAC实现DAC和MAC[1]。

同时RBAC也在实际应用中反映出较好的适应性,许多学者在此领域进行了深入的研究。文献[1]中对RBAC的理论进行了系统的阐述,并提出了角色控制域等概念。文献[5]中将RBAC应用到出租车管理系统中。文献[4]中重点对数据库访问控制的安全问题进行了研究。

笔者在对上述论文进行研究的基础上发现:这些论文较少涉及到复杂角色模型的研究,对UA的具体算法也少有阐述。为此,本文针对RBAC模型中的复杂角色模型进行了深入的研究,提出了一种较为实用的UA算法,能够较好地解决实际系统中复杂角色、复杂用户的管理,对许多实际的复杂系统具有一定的参考价值。

1问题的提出

在构建实际的系统中,我们经常会遇到复杂角色的管理问题。考虑有这样一个部门:它拥有许多下属部门,而每一个下属部门又有许多的下属部门……。在这个部门里,人员之间的“等级”并不是严格地呈现一种标准的树形结构。有同一级别的某些职员享有相同的职权,共同管理下一级别某些职员的情况;有同一个职员直接隶属于具有相同职位的多个上级的情况……。如果要建立该部门数据库安全访问控制系统,问题的难点在于这个部门的人员关系比较复杂,在RBAC中也呈现出角色关系复杂的状态,即:一个父角色拥有多个子角色,而一个子角色可能有多个父角色;角色呈现的是多对多的自参照关系。

对于系统角色的管理问题,目前许多现有系统采用的方法是:建立一个父角色对应多个子角色的参照关系。这种方法具有一些明显的优点:对于大多数系统而言,角色并不是很复杂,或者是即便比较复杂,但角色仍然呈现一种严格的树形关系(一个子角色只有一个父角色)。对于这样的系统,使用该方法是可行的,并且实现起来也比较简单,称为许多系统的首选。但对于一些复杂用户、复杂角色的系统(比如上文描述的“部门”),角色之间并不是一种严格的树形关系,而是呈现出一种等级关系,一个子角色可能会有多个父角色,角色之间是多对多的自参照关系,这种思路就不再适用了,这就需要有一种新的方法来解决。由此,本文在对现有RBAC模型中的复杂角色模型进行了深入研究的基础上,提出了“角色级别矩阵”,“角色bit状态位”等概念,并进一步提出了新的UA算法,较好地解决了上述问题。

2基本原理及实现

2.1基本原理

2.1.1 角色理论基础

在实际系统中,角色之间存在着继承关系。如果角色r1 继承角色r2 ,那么角色r1 的级别高于角色r2 的角色(在随后提出的角色级别矩阵中表示为级别高出一个等级),并且拥有角色r2 所有的权限。我们称角色r1 为父角色,角色r2 为子角色,记作: r1 ≥r2。当一个用户激活角色r时,同时也隐式的激活了所有角色r所继承的子角色。角色继承关系满足下列3个属性:

自反性 ∀rRrr;

反对称性 ∀(r1 , r2 ∈R) ((r1 ≥r2 ∧r2 ≥r1)⇒r1 = r2 );

传递性 ∀(r1,r2,r3 ∈R) (( r1 ≥ r2 ∧ r2 ≥ r3)⇒r1≥r3) 。

综上:继承关系“≥”是一个R上的偏序关系。给定了角色继承关系之后,可以将角色之间的关系用一个层次图表示出来:如果r1 ≥r2 ,在角色关系图中,笔者表示为r2指向r1的箭头。根据角色之间的继承关系,角色关系图可以是树、格、甚至是极为复杂的图[1]。一个会话拥有的角色是用户所分配的角色以及它们的子角色的总和,一个会话所拥有的权限包括用户所分配角色的权限和他们的子角色的权限的总和[3]。

2.1.2 角色级别矩阵

上面的分析指出,复杂角色之间的关系呈现一种关系图,角色之间是一种多对多的自参照关系。为了更为清晰地进行下面的阐述,图2给出了一种比较简单的角色关系图,在这个图中最高级别0有三个角色,编号依次为0,1,2,…,箭头表示继承关系,如角色4继承于角色0和角色1。

为了在物理数据库中再现图2的信息,需要存储的信息有:(1) 系统角色之间的层次和角色编号之间的关系;(2) 某一角色的所有子角色信息。为了维护前者,笔者提出了“角色级别矩阵”的概念,可以较为清晰地描述角色之间的复杂关系;为了维护后者,笔者提出了“角色bit状态位”的概念。

角色级别矩阵为N×3的矩阵。第一列表示角色等级;第二列表示该级别角色的第一个角色编号;第二列为该级别最后一个角色编号。例如,图2中的角色关系若使用角色级别矩阵,则可以表示为表1。

2.1.3 角色bit状态位

每一个角色使用一个属性来记录下一角色级别(角色级别矩阵中,当前角色所在角色级别之后的第一个角色级别,后文出现该词意思相同)所有角色的状态信息,这个属性在此称为角色bit状态位。角色bit状态位的bit长度等于下一角色级别角色数目。如果下一角色级别某角色继承于该角色,那么相应bit位标记为1;否则标记为0。

例如,在图2中,若角色1的bit状态位信息为(101),则其含义如表2所示。

2.2UA算法

角色管理模块在实现中可以采取多种办法,比较简单的办法为:为每一个角色增加一个bit型数组的属性,数组的长度为系统角色总数。如果某角色继承于该角色,则根据其角色编号将数组的相应bit位标记为1,否则标记为0。系统执行查询时根据该bit型数组中的值为1的角色,搜索出这些角色所对应的权限集,然后获取所有的权限项,加载菜单和页面,生成系统界面。

上述方法简单易行,对于角色变更不大的系统有效而稳定,但如果系统的角色变更较频繁,为了维护每个角色bit型数组的状态更新,需要耗费大量的时间;增加或删除某一角色,需要为每一个角色bit型数组增加一项,繁琐且耗时。而且,bit型数记录的仅仅是一个系统角色的整体集合,不能描述角色之间的继承关系和层次关系。另外,当前角色的所有父角色的bit位信息一定为0,因此bit型数组在存储上也存在着较大冗余。

为了解决这些问题,结合上文介绍的角色级别矩阵和角色bit状态位等概念和基本理论,我们提出了如下算法(如图3算法示意流程图给出了算法的流程图):根据用户角色的编号确定角色的级别;确定下一角色级别的第一个角色编号(根据角色级别矩阵确定);根据其角色bit状态位的信息进行迭代搜索,获取子角色集。

当系统增加新角色时,只需修改角色级别矩阵和直接相邻的下一角色级别所有角色bit状态位:为角色级别矩阵某级别增加一项;为下一角色级别的所有角色增加一个bit位,表示其与该角色的继承关系。当系统删除角色时,只需修改直接相邻的下一角色级别所有角色的bit状态位信息:将删除角色对应的bit位清0。这样,不仅解决了传统角色bit型数组存储冗余的缺点,还减少了bit型数组因状态频繁更新所耗费的时间,有效地提高了系统的性能。

综上所述,UA算法主要包括两部分:首先需要维护一个角色级别矩阵,记录系统的角色信息;其次每一个角色需要记录下一角色级别所有角色与该角色的继承关系,也即角色bit状态位。两者相结合,就可以较好地解决实际系统中复杂用户/角色的管理。

2.3数据库安全访问控制系统的实现

在实际应用中,为了提高系统的安全性和灵活性,许多系统都要求根据不同的用户系统生成不同的界面。这样一方面可以有效地预防越权操作,确保用户只对自己可操作的部分可见;另一方面可以提高系统的灵活性和高效性,根据用户权限来部分地加载系统,可以有效地提高系统的加载速度和性能。

为了验证本文所提出的模型及算法在实际系统中的应用效果,我们设计并实现了一套数据库安全访问控制系统。系统设计分为权限界面层、权限业务逻辑层和数据库操作层,其中我们提出的UA算法就位于权限业务逻辑层。系统流程可描述为:用户在界面输入正确的帐号和密码后,系统根据UA模块获得用户的角色集合,并进而获取用户的权限集合;然后系统根据用户的权限,装载他所能操作或访问的菜单和页面,生成系统界面,最终进入系统。

图4给出的是该系统“用户—角色”管理模块的界面效果。

3结语

在一些复杂应用系统中,人员之间的角色关系往往比较复杂,角色之间呈现的是一种多对多的自参照关系,如何对复杂角色进行管理,这对系统的可靠性和易扩充性显得尤为重要。本文基于RBAC,提出一种数据库安全访问控制模型,旨在有效地解决对复杂角色的管理问题。本文提出了“角色级别矩阵”,“角色bit状态位”等概念和UA算法,其中:角色级别矩阵可以有效地维护系统角色编号和级别信息;角色bit状态位记录当前角色下一角色级别所有角色与其的继承关系,能够有效地维护角色间的继承关系。

本文所介绍的模型已经成功应用于多个应用系统。实践证明:该算法可以帮助我们解决复杂角色的管理问题,可以为一些实际的软件项目提供一定的参考。本文的下一步研究方向是基于角色自适应的复杂角色管理问题。

参考文献

[1]杨庚,沈剑刚,荣淳铭.基于角色的访问控制理论的研究[J].南京邮电大学学报:自然科学版,2006,26(3):2-4.

[2]田保军,秦罡.基于RBAC权限认证的设计与应用[J].微计算机应用,2008,29(27):2.

[3]丁胜,陈建勋.基于RBAC模型的安全访问机制建模研究[J].计算机应用与软件,2005,22(11):3.

[4]邵子博,刘连忠,等.一种数据库安全访问控制系统的设计与实现[C]//2006中国控制与决策学术年会论文:1.

[5]李岚.基于角色的数据库安全访问控制的应用[J].通信技术,2008,41(10):1-3.

角色访问控制模型 篇5

根据人们认识世界的规律,面向对象的基本思想认为:客观世界是由许多各种各样的对象所组成。每种对象都有各自的内部状态和行为规则,不同对象间的相互作用和联系就构成了各种不同的系统,构成了我们所面对的客观世界。当客观世界映射到数字世界,就构成了各种信息系统。随着信息技术的不断发展和大规模应用,信息系统的安全性越来越突出,同时对信息系统的安全管理也带来了巨大的挑战,对系统的安全控制问题正越来越受到重视。

本文针对面向对象系统进行研究,从信息流的角度研究面向对象系统中的消息传递的可控性问题。由于RBAC96模型并不是为面向对象系统所设计,不完全适应于面向对象系统,本文在对RBAC96模型进行分析的基础上,针对面向对象系统的特点,提出了面向对象的基于角色的可控模型OORBC(Object-Oriented role-based controllability)。该模型能有效地保障面向对象系统中对象与对象之间消息传递的可控性,防止信息的泄漏。

1 相关研究

在面向对象系统中,对象与对象之间的相互交互是通过信息流进行的,因此对信息流进行控制以阻止不安全的信息流从而保证敏感的信息不被泄漏是至关重要的。信息流控制即依据信息系统的安全策略控制信息不能流向违反安全策略的实体。文献[1]最早提出了信息流控制概念。信息流控制方法在保密性模型中已得到了广泛的研究与应用[2]。完整性安全模型的研究借助保密性模型的方法,定义了完整性信息流控制[3]。事实证明DAC和MAC在控制系统内部的信息流方面是有效的。Osborn等人研究证明了RBAC 是一种更一般的访问控制模型[4,5,6] ,他们利用RBAC 模型成功地模拟了MAC 和DAC,即可以用RBAC实现DAC和MAC。因此作为更一般的访问控制模型,RBAC也可用于信息流的控制。文献[7,8,9,10]使用了RBAC控制系统中的信息流。文献[9]定义了一个面向对象的基于角色的访问控制模型,该模型可用于分布式环境,并给出了一个信息流分析方法。文献[10]提出了一个扩展的RBAC模型,该模型可以嵌入到面向对象系统中用以控制信息流,并定义了一种语言OORBACL,该语言使用JAVA作为目标语言用来执行安全的应用。文献中总结了面向对象系统中的信息流控制模型应该具备的五个特征,具体描述如下:

(1) 控制对象与对象之间的信息流;

(2) 通过参数传递控制对象之间的方法调用;

(3) 允许基于用途的方法调用并阻止对象内部的信息泄漏;

(4) 精确控制写入操作;

(5) 防止特洛伊木马。

2 面向对象系统的控制模型定义

文献[10]基于RBAC96模型定义了一个扩展的RBAC模型OORBAC,模型中对于角色以及角色等级的定义比较模糊,利用该模型不能对角色进行有效的管理,由于RBAC中的核心就是角色,因此对于角色关系的管理是比较重要的问题。本文在其基础上进行研究,对角色和角色之间的关系给出了详细的描述,并给出了一个面向对象系统的基于角色的可控模型OORBC。

2.1 原有模型介绍

在文献[10]中,对于面向对象系统,引入了一个信息流控制关系的定义ICRel(Information flow Control Relationship),其用来表达控制信息流过程中类和类之间的关系,具体定义为:ICRel存在于两个类之间,如果这两个类的实例之间可能有直接的消息传递。每个ICRel都对应一个安全策略,类的实例必须遵循这个安全策略。如果类的实例需要遵循多个安全策略,则需要在类和类之间定义多个ICRel,每个ICRel指定一种安全策略。模型的定义如图1所示。

对原有模型的分析:

(1) 在面向对象系统中,对信息流的控制最重要的是对动态实例化和删除的对象之间的信息流的控制。而类之间的关系对于控制对象之间的信息流是极为有用的。由于面向对象系统中类和类之间的关系是错综复杂的,如上所述,如果两个类之间的实例需要遵循多个安全策略时,就需要定义多个ICRel,因此会导致ICRel的数量众多而难以管理。

(2) 在上述模型中,对于角色的定义比较模糊。其角色定义为由ICRel所实例化的Session所关联的对象即为角色,这样每个与ICRel相关联的类的实例化对象均为该Session中的角色,这样就会导致对角色管理的复杂性。

(3) 模型中角色等级的定义为系统中所有类的继承关系,而没有对类的范围进行限定,这样对于角色等级的管理增加了负担。

2.2 面向对象系统的基于角色的可控模型

2.2.1 模型定义

本文提出的面向对象的基于角色的可控模型如图2所示。

2.2.2 形式化描述

模型中的各个元素定义如下:

定义1 Users是用户的集合,用户是对系统中资源对象进行访问的独立主体。

定义2 RoleClasses是角色类的集合,角色类是根据系统中用户的不同身份以及不同权限所建立的类的集合。

定义3 Roles是角色的集合,角色是角色类的实例化。

定义4 Perms是权限的集合,权限是用户对系统资源进行访问的许可。

定义5 Sessions是会话的集合,会话代表了一次实例化的过程。这里要求一个用户在一次会话中只能具有一个角色,在这点上区别于RBAC96模型。

OORBC模型中各组件之间的关系如下表示:

定义6 UA(用户分配):UAUsers×Roles,是用户和角色之间的多对多关系:

assigned-user(r)={(u,r)∈UA|uUsers,rRoles}

定义7 PA(权限分配):PAPerms×Roles,是权限和角色之间的多对多关系:

assigned-permation(r)={(p,r)∈PA|pPerms,rRoles}

定义8 RH:RHRoles×Roles,是角色集上的一个偏序关系,称为角色等级或角色层次。

定义9 SU:SU,对应一个会话到一个用户的映射。

定义10 SR:SR,对应一个会话到一个角色的映射。

定义11 IT:ITRoleClasses×Roles,实例化是角色类和角色之间的一对多关系。

由于ICRel在控制信息流过程中类和类之间的关系是极为有用的,在模型中的角色类和其他类之间也采用ICRel来描述角色类和其他类之间的安全策略,这样就大大减少了ICRel的数量,更加易于管理。

如定义2,角色类是一个角色的对象化,每个角色类可表示为roleclass=(rname,rpset,rmset),其中rname表示角色类的名称,rpset表示角色类中属性的集合,rmset是该角色类所具有的方法的集合,可能包含不止一个方法。

角色的权限间的关系决定了角色间的关系,角色类是对角色的封装,因此角色类同样具有角色之间的关系。角色间的关系包括四种:角色包含关系、角色相交关系、角色独立关系和角色增广关系。

定义12 (角色包含关系):∀r1,r2∈Roles,如果r1的权限⊆r2的权限,则称r2包含r1。

定义13 (角色相交关系):∀r1,r2∈Roles,如果r1的权限和r2的权限至少有一个相同,则称r1和r2是相交的。

定义14 (角色独立关系):∀r1,r2∈Roles,如果r1的权限和r2的权限没有相同的,则称r1相对于r2是独立的或r2相对于r1是独立的。

定义15 (角色增广关系):∀r1,r2,…,rnRoles,如果∃rn+1,其权限包含所有r1,r2,…,rn的权限,则称rn+1和r1,r2,…,rn是增广关系。

角色类间的继承关系,可以通过面向对象技术中的继承特性来表示。从一个角色类可以派生出新的角色类,并可以规定自己的权限。在某些情况下,子角色类并不希望继承父角色类中所有的权限,因此可以通过在父角色类中设置private权限和public权限,子角色类只能继承父角色类中的public权限,这样的处理充分利用了面向对象的继承特性,也便于角色权限的管理。

3 信息流控制

面向对象系统中,信息流的控制包括直接的信息流控制和间接信息流控制。直接信息流控制是指对一个对象内部以及两个对象之间的信息流的控制;间接信息流控制是指对多个对象之间的信息流的控制。

同文献[10],在模型中引入类属性和类方法的访问控制列表ACLs以及数据源,定义如下:

定义16 类属性ACL:

propACL=(propName,className,RACLpropname,WACLpropname)

其中propName指类属性的名称,className指类的名称,RACLpropname是指允许读propName属性的方法的集合,WACLpropname是指允许写propName属性的方法的集合。

定义17 类方法变量ACL:

mdVarACL=(VarName,mdName,className,RACLpropname,WACLpropname)

其中VarName指方法变量的名称,mdName指方法的名称,className指类的名称,RACLvarname是指允许读varName变量的方法的集合,WACLvarname是指允许写varName变量的方法的集合。

定义18 类方法返回变量ACL:

mdRetVarACL=(mdName,className,RACLmdname,WACLmdname)

其中mdName指方法的名称,className指类的名称,RACLmdname是指允许读方法mdName返回变量的方法的集合,WACLmdname是指允许写方法mdName返回变量的方法的集合。

定义19 数据源:DSOURCEvar,类中的每个变量var对应一个数据源,该数据源是方法的集合,表示该变量的数据是由数据源中的方法写入的,其用来控制写访问。

3.1 直接信息流控制

直接信息流存在于同一个对象内部和两个对象之间,其安全性应该满足以下两个条件:

(1) 访问对象所赋予的角色类中具有访问被访问对象的权限;

(2) 信息流应该满足所涉及变量的ACL的要求。其中涉及两个方面包括RACL和WACL的要求[10]。

假设变量varn+1由变量var1,var2,…,varn在方法md中导出,则变量varn+1的RACL和WACL需要满足以下的要求:

(a) (RACLvar n+1⊆RACLvar 1∩RACLvar 2∩…∩RACLvar n)∩(md∈(RACLvar 1∩RACLvar 2∩…∩RACLvar n))

表示能够对变量varn+1进行读操作的方法必须是能够对var1,var2,…,varn进行读操作的方法。

(b) WACLvar n+1⊇(DSOURCEvar 1∪DSOURCEvar 2∪…∪DSOURCEvar n∪{md})

表示对变量varn+1进行写操作的方法必须包括var1,var2,…,varn的数据源中的方法和方法md

3.2 间接信息流控制

对间接信息流的控制对于控制信息安全传播具有重要的意义。这里采用文献[10]中的定义,其可以避免特洛伊木马。

假设变量var3是由变量var1和变量var2通过方法md所导出,其中var1和var2的ACL分别为{RACLvar1;WACLvar 1}和{RACLvar 2;WACLvar 2},var1和var2的数据源分别为DSOURCEvar 1和DSOURCEvar 2,则⊕定义为:

ACLvar 3=ACLvar 1⊕ACLvar 2

={RACLvar 1∩RACLvar 2;WACLvar 1∪WACLvar 2∪md}

其表示:(1)该操作所生成的变量var3的ACL要求对其进行读操作方法的必须对var1和var2都具有读操作权限,否则不能读取变量var3。(2)对变量var3进行具有写操作权限的方法仅限于对var1或var2具有写操作权限的方法或方法md。因此在进行该操作以后,变量var3的数据源为:

DSOURCEvar 3=DSOURCEvar 1∪DSOURCEvar 2∪md

4 结束语

本文针对面向对象系统进行研究,从信息流的角度研究面向对象系统中的消息传递的可控性问题,提出了面向对象的基于角色的可控模型(OORBC)。本模型建立在文献[10]的基础上,文中分析了原有模型所存在的不足,并通过在模型中添加角色类并描述了角色类的继承关系,有效地减少了面向对象系统中类和类之间的关系,更加便于类和类之间安全策略的描述和管理。最后描述了该模型的信息流控制特征,其能够有效地保障面向对象系统中对象与对象之间消息传递的可控性,防止信息的泄漏。

参考文献

[1]Denning D E.Alattice model of secure information flow[J].Communi-cations of ACM,1976,19(5):236-243.

[2] Sabelfeld A Myersa.Language-based information flow security[J].IEEE J Selected Areas in Communiction,2003,21(1):5-20.

[3] Biba K.Integrity considerations for secure computing systems,Mitre ReportMTR - 3153[R].Bedford: Mitre Corportion,1975.

[4]OsbomS.Mandatory access control and role-based access control revisi-ted[C]//Proceedings of the Second ACM Workshop on Role-BasedAccess Control.1997:31-40.

[5]Nvnchama M,OSBOM S.Modeling mandatory access control in role-based security systems[C]//Database Security IX:Status and Pros-pects.1995:129-144.

[6] Osborn S,Sandhu R S,Munawer Q.Configuring Role-Based Access Control to Enforce Mandatory and Discretionary Access Control Policies[J].ACM Trans on Information and System Security,2000,3(2):85-106.

[7] Tari Z,Chan S W.A role-based access control for Intranet security[J].IEEE Internet Computing,1997(5):24-34.

[8] Izaki K,Tanaka K,Takizama M.Information flow control in role-based model for distributed objects[C]//Proceedings of the 8th International Conference on Parallel and Distributed Systems.2001:363-370.

[9]Zhan C N,Yang C.An object-oriented RBAC model for distributed sys-tem[C]//Proceedings of the Working IEEE/IFIP Conference onSoft-ware Architecture.2001:24-32.

角色访问控制模型 篇6

工作流通过一组安全策略[1]来保证其机密、正确、完整等安全特性。目前主要有两种解决工作流过程中访问控制问题的方法。一类是以Tomas等为代表提出的基于任务的访问控制TBAC模型[2],其缺点是没有明确地描述责任分离、责任绑定等授权约束[6,7]。另一类是以Wei-Kuang Huang等为代表提出的基于角色的工作流授权模型[3]和在此基础上提出的工作流访问控制模型W-RBAC[5]。但存在没有考虑与工作流过程模型同步、不能适合多实例授权等问题。本文提出一种扩展的工作流访问控制模型(E-WACM)有效地解决了上述问题。

1 E-WACM

1.1 E-WACM概述

E-WACM(如图1)的主要思想就是在案例中通过角色和权限使用户和对象相联系,并利用义务和条件等因素控制用户对对象的访问过程。在E-WACM中加入对象实体o和时间参数l,进行细粒度的访问控制,实现了E-WACM与工作流过程模型之间的相互同步。

1.2 E-WACM中的实体

在E-WACM中,用户、权限、角色、案例和组织单元等实体与传统的访问控制模型相似,本文着重介绍实体中的对象、义务和条件。

对象 oO表示一个工作流任务中用户需要操作的对象。

义务 bB表示用户在执行对象之前、之中或之后所必须完成的要求。B表示义务集,preB表示在用户访问对象之前的义务,onB表示用户在访问对象之时的义务,endB表示在用户访问对象之后的义务。

条件 coCO表示系统环境或系统中的决定因素。CO表示条件集,preCO表示在用户访问对象之前的条件,onCO表示在用户访问对象之时的条件。

1.3 E-WACM中的实体关系

E-WACM中对象、义务和条件实体间的关系细化了工作流的访问控制过程,使模型更为符合实际的工作流管理的需要。其实体关系如下:

belong(o1,o2),o1,o2∈O,表示对象o1属于对象o2,即o1是o2的一部分。belong(o,o)成立。

handle(p,o),pP,oO,表示对于对象o有操作权限p

hold(r,p,o),oO,表明角色r对于对象拥有权限p。当hold(r1,p),hold(r2,p,o)时,必有is-a(r1,r2)。

授权行为doer是访问控制部件ACS(Access Control Subassembly)对用户的授权,表示允许用户的某种操作行为。其定义如下:

定义1 授权行为doer是一个五元数组,doer(u,o,p,c,(t1,t2)),其中:用户uU;权限pP;案例cC;时间t1,t2∈Time,且t2-t1=l,l表示时间段。

值得注意的是实体义务和条件共同决定授权行为doer能否产生,且直接影响授权行为的内容。它们之间的关系将在第4节中介绍。

2 授权模板AT和授权基AB

E-WACM提出授权模板和授权基的概念,解决了如何在定义工作流模型的同时说明授权静态授权参数的问题。工作流管理员通过定义AT来限定操作对象的角色、权限和时间。AT的定义如下:

定义2 对于一个给定的任务tw,它的授权模板集AT(tw)为一个四元组的集合AT(tw)={((r1,-),(o1,-),p1,l1),((r2,-),(o2,-),p2,l2),…},其中:(r,-)表示角色项,rR;(o-)表示对象项,oO;pP;l表示时间段,即授权持续的时间。

授权基AB={A1,A2,…}是一组授权。当工作授权行为产生后被添加到授权基AB中。授权基中的元素A=doer(u,o,p,c,(t1,t2))。

3 授权状态

为了清楚地表示E-WACM中授权活动AAC(Authority Action)的状态,定义授权状态的概念并将其运用到授权活动中。授权活动(AAC)分为五个状态:

(1) 睡眠状态,表示授权活动已经生成,但没有被激活;

(2) 激活状态,表示授权活动被请求激活;

(3) 有效状态,表示授权活动执行,授权活动将按照授权模板AT产生用户清单doer(ls,p,c,l),ls表示用户清单,l表示该授权可以持续的时间;

(4) 挂起状态,表示授权活动被管理员挂起,或因执行条件不足而强制处于挂起状态,它可以被恢复成有效状态;

(5) 无效状态,表示授权活动已经没有存在的必要,可以在工作流服务器中删除。

授权活动状态转换图如图2所示。

4 E-WACM中的授权活动AAC

授权活动是指在工作流过程的一个任务中对处理对象的一次授权过程。在过程实例中每个任务都有一个AAC(Authority Action),当过程实例产生后实例中每个任务的AAC被生成并设为睡眠状态。

定义3 在一个工作流实例c中,对于任务tw的授权活动AAC可以表示为一个四元组AAC=(AT,AS,C,tw),其中:AT表示授权模板集;AS表示授权活动的状态;c表示工作流过程的案例;tw表示过程实例中的任务。

授权活动AAC是通过工作流引擎与访问控制部件之间的通信来完成的。工作流引擎按照工作流过程中任务的先后顺序,依次激发各个任务,为每个任务分配资源,管理任务的执行过程。访问控制部件负责授权处理的全部过程,为工作流过程实例中的每个任务产生一个授权活动AAC,授权过程如下:

(1) 当工作流过程实例中某个任务被激发后,工作流引擎向访问控制部件发送询问Q={q1(tw,o1,p1,c),q2(tw,o2,p2,c),…},其中tw表示任务,o表示该任务接收的对象,p表示操作该对象的权限。q(tw,o,p,c)表示询问在案例c中谁能拥有权限p来执行任务tw中的对象o

(2) 当工作流服务控件接收到询问Q后,案例c中与任务对应的授权活动被激活。针对Q中的每一个q,访问控制部件查找符合条件的用户。如果对于每个q符合条件的用户都存在,则授权活动AAC转为有效状态,并发送用户清单LS={doer1(ls1,o1,p1,c,l),doer2(ls2,o2,p2,c,l2),…}到工作流引擎。反之,AAC则转入挂起状态,直至授权服务接受控件进行处理。

产生用户清单的过程:访问控制部件根据Q中的参数ctw确定授权活动AAC(tw),并检查其状态AS是否为dormant,如果不是则报错。激活AAC,把Q中的每个q的参数p,o代入AT(tw)中,生成用户清单LS,AAC转入valid状态doer(ls,o,p,c,l)中参数lsl的定义如下:

定义4 设AT(tw)={AT1(tw),AT2(tw),…ATi(tw)},则doer(ls,o,p,c,l)中参数lsl定义为:ls=Φ

Do while ATk=((rk,-),(ok,-),pk,lk),1≤k≤i,

If belong(o,ok)and imply(pk,p)

then

ls={ls}∪{u|is-a(r′k,rk)and u∈r′k}

s=1

ls=lk

s=s+1

Next

l=min(lk1,lk2,…lkn)

(3) 工作流引擎保存LS,当用户向工作流引擎申请用权限p执行过程案例c中任务tw的对象o时,工作流引擎查找用户清单看用户是否在用户LS中,如果不在则拒绝用户的执行。

(4) 如果用户存在于用户清单中或工作流引擎选择用户清单上的某个用户时,工作流引擎向访问控制部件发送询问doer(u,o,p,c,l)。访问控制部件收到后,检查doer(u,o,p,c,t)是否违反授权约束。如果没有违反。preCO被满足且preB被完成,则发送消息授权行为doer(u,o,p,c,(t1,t2))到工作流引擎通知用户权限被批准,并记录授权行为doer(u,o,p,c,(t1,t2))到授权基AB中。反之若doer(u,o,p,c,l)没有违反授权约束,但preCO不被满足或preB没有被完成,doer(u,o,p,c,l)则将被挂起并进入挂起集Hold={doer1(u1,o1,p1,c1,t1),doer2(u2,o2,p2,c2,t2),…),直到preCO被满足且preB被完成后才能产生授权行为。

检测过程如下:

CON={con1,con2,…conn}

coni⇒{ture,false} 1≤i≤n,

preCO={co1,co2,…com}

coj⇒{ture,false} 1≤j≤m,

preB={b1,b2,…bt}

bk⇒{finished,unfinished} 1≤k≤t

doer(u,o,p,c,t),

If{coni⇒{false}|for∀i 1≤i≤n

coni∈CON}∧{coj⇒{ture}|for∀j 1≤j≤m coj∈preCO}∧{bk⇒{finished}|for∀k 1≤k≤t bk∈preB}Then

doer(u,o,p,c,(t1,t2))⇐doer(u,o,p,c,l) t2-t1=l

Hold=Hold-{doer(u,o,p,c,t)}

Else If{coni⇒{false}|for∀i 1≤i≤n coni∈CON}∧{{coj⇒{ture}|for∀j 1≤j≤m coj∈preCO}∨{bk⇒{finished}|for∀k 1≤k≤t bk∈preB}}

Then

Hold={doer(u,o,p,c,t)}∪Hold

End If

End If

在授权行为被行使时访问控制部件周期性检测onCO和onB,一旦onCO没有被满足或onB没有被执行doer(u,o,p,c,(t1,t2))将被挂起,直到条件被完成且义务被执行。当用户在t2之前完成对o的操作后权限被收回,授权行为doer(u,o,p,c,(t1,t2))将从工作流引擎中删除,当用户在t2时仍没有完成对o的操作,用户的权限被强制收回。因此用户在执行一个任务时只拥有与任务中对象相关的权限,实现最小特权原则。

(5) 如果违反授权约束或doer(u,o,p,c,l)存在于挂起集中的时间超过了预先设定的时间,则发送消息not(u,o,p,c,l)到工作流引擎中,工作流引擎拒绝用户执行。

(6) 在这个过程中工作流引擎可能向访问控制部件发送多个查询消息,当LS中所有用户都被拒绝后,工作流引擎向授权服务控制发送消息none(o,p,c),此时AAC被挂起等待访问控制部件处理。

(7) 当该任务被完成后工作流引擎向访问控制部件发送结束消息f(t,c),授权活动AAC转入无效状态。具体过程如图3所示。

5 结 论

本文把授权模板和授权基应用到访问控制部件中,使访问控制过程更加具体。同时在W-RBAC[5]提出的授权行为doer(u,o,p,c)中加入时间参数使其与工作流过程进行同步,并保证授权的最小特权原则。改进工作流引擎与访问控制部件间的信息交互过程并且在工作流访问控制部件中加入授权活动(AAC)的概念,使工作流授权过程的灵活性和完备性得到增加,形成一个扩展的工作流访问控制模型(E-WACM)。义务实体和条件实体的应用使E-WACM更符合工作流的实际需要。今后的工作是对该模型的进一步完善,并加入委托授权功能[4],从而使其与工作流的发展相适应。

参考文献

[1]Workflow Management Coalition.Workflow Security Considerations White Paper.Workflow Management Coalition.2006(6):98.

[2]Thomas P K,Sandhu R S.Task-based Authorization Controls(TBAC):A Family of Models for Active and Enterprise-oriented.Authorization Management,Proceedings of the IFIP WG11.3Workshop on Database Security(Lake Tahoe,California),Chapman&Hall,August1997.

[3]Vijayalakshmi Atluri,WeiKuang Huang.An Authorization Model for Workflows.In Proceedings of the15th European Symposium on Re-search in Computer Security,in Lecture Notes in Computer Science,No.1146,Springer-Verlag,1996(9).

[4]Karin Venter,Martin S Olivier.The Delegation Authorization Model:A Model For The Dynamic Delegation of Authorization Rightsin A Secure WorkflowManagement System.in:ISSA2002,Muldersdrift,South Afri-ca,2002.http://citeseer.ist.psu.edu/561097.html.

[5]Jacques Wainer,Paulo Barthelmess,Akhil Kumar.W-Rbac AWorkflow Security Model Incorporating Controlled Overriding of Constraints.In-ternational Journal of Cooperative Information Systems2003,12(4):455-485.

[6]Dulce Domingos,Antonio Rito-Silva,Pedro Veiga.Authorization and Access Control in Adaptive Workflows.In Computer Security-ESORICS2003(eds:E.Snekkenes,D.Gollmann),LNCS,Springer,2003:23-38.

角色访问控制模型 篇7

关键词:访问控制,基于角色的访问控制,SAML,XACML

0 引言

当越来越多的系统通过Web服务、门户和集成化应用程序彼此链接后, 用户可以通过统一的入口, 访问不同平台、不同机构的服务。这样, 一个统一的认证系统成为必需。统一管理用户身份及口令, 不但可以简化用户操作, 方便管理, 更有利于Web信息集成的发展。

认证服务器将用户的信息统一管理, 并与各Web应用达成约定, Web应用信任认证服务器的判断结果, 不再对认证服务器认证过的用户认证, 直接为他提供服务。访问控制规定了主体对客体访问的限制, 并在身份识别的基础上, 对资源访问的请求加以控制。

访问控制可以基于一定的访问控制模型和访问控制语言实现。访问控制模型规定了网络中各安全控制模块的组织形式, 访问控制语言则对在各个模块间传递的认证、授权信息进行标准化描述。本文首先对控制模型和控制策略语言进行分析, 最后提出一个扩展的基于角色的访问控制模型。

1 技术介绍

1.1 RBAC基于角色的访问控制系统

访问控制模型有很多种, 大致可分为三类:自主访问控制、强制访问控制和基于角色的访问控制三种。自主访问控制基于用户, 拥有资源的用户可以随时授予、收回资源的访问权, 灵活性高, 但安全性差;强制访问控制以主体的安全等级和客体敏感度为判断依据, 因此比自主访问控制安全性有了提高, 但灵活性差;基于角色的访问控制将用户、角色、权限分层控制, 为用户赋予角色, 角色拥有权限。用户、角色、权限间可以是多对多的关系。角色管理系统相比前两个模型, 更适合分级管理, 具有良好的灵活性, 更适合大规模实现, 因此, 现在的RBAC模型已经被大多数访问控制系统所采用。图1表示了基于角色的访问控制的基本控制思想。

1.2 SAML和XACML介绍

SAML (安全声明标记语言) 是一种基于OASIS标准的可扩展XML框架, 用于交换身份验证和授权信息, 它可以绑定在SOAP协议 (web服务通讯协议) 中。SAML并不是一种身份认证模式, 它是一种基于XML的描述语言, 目的是允许不同安全系统产生的信息进行交换, 提供进行验证和授权断言以及传递断言的机制。而XACML则提供了定义进行必要的授权决策所需规则的语言。它们都由OASIS制定, 并且基于XML, 可以同时被机器和人读懂。

典型的访问控制和授权场景包括三个主要实体:主体、资源和动作以及它们的属性, 主体请求得到对资源执行动作的权限。在SAML的定义中提供了PEP和PDP两个功能模块。XACML从被OASIS组织制定以来, 已经被广泛的应用, PEP、P D P和策略是X A C M L的重要组件, 可见SAML和X A C M L在访问实体的定义上有相互重叠的部分, 为它们的结合使用提供了前提。OASIS制定了一个基于RBAC的XACML模型, 如图2所示。

整个模型基于RBAC基本思想, 包括认证和授权两部分。认证模块独立于各应用服务, 统一对用户进行身份认证, 授权模块分散存在各应用服务器中。认证模块完成用户到角色的分配, 授权模块完成角色到权限的分配。

在访问请求到达策略执行点PEP后, PEP将请求转交给上下文处理器, 上下文处理器收到请求后, 创建一个XACML请求并发送到策略决策点PDP, PDP根据请求中携带的用户角色信息, 评估请求并返回一个响应。

PDP评估请求的过程中, 要用到相关策略和规则做出决策, PDP中并没有策略。为了获得策略, PDP要用到策略访问点PAP, PAP负责编写策略和策略集供PDP使用。PDP也可以调用策略信息点PIP服务检索与主体、资源或者环境有关的属性值。

在这个模型中, 用户/角色信息由认证服务器统一管理, 各Web应用中只保存角色和权限的对应信息, 用户-角色, 角色-权限的分配都是事先制定存放在特定的数据表/库中。而在实际Web环境下, 由认证服务器统一分配/管理用户的角色信息很难满足准确性和灵活性的要求, 认证服务器管理员不一定清楚用户在各个应用系统中的角色也不能对用户角色做出准确的分配。而且, 当Web应用的管理者希望添加一个新的角色或对角色做出修改时, 认证服务器和Web应用数据库的同步更新就成了问题。这为访问控制的动态应用带来很多的不便。经过研究, 我们对基于RBAC的XACML访问控制模型进行了扩展, 以达到更好的适应动态网络的要求。

2 系统设计模型

2.1 系统结构

图3给出了整个访问控制系统的网络结构, 本访问控制系统由两部分组成:认证模块、授权模块。认证部分和授权部分间的消息传递, 如, 认证请求、属性声明、授权声明等以SAML格式传递, 授权部分采用扩展了的XACML访问控制模型。

在扩展的XACML访问控制模型中, 我们将用户的角色信息管理权限分配到各Web应用, 身份认证服务器仅管理用户在整个系统中的身份注册信息, 这就是本系统的基本思想。图4展示了整个系统的各个模块组织结构和数据流。

2.2 认证流程

当用户要访问Web应用时, 首先登录或被重定向到身份认证服务器。用户向认证服务器提交身份信息 (用户名/密码形式) , 认证服务器做出身份判断, 如果用户通过验证, 返回用户一个SAML身份认证声明, 表明用户通过验证, 并同时在URL中插入一个叫做Artifact的固定长度的信息一起返回给用户。Artifact仅仅是一段信息, 它与用户的属性声明对应, 属性声明被保存在认证服务器中。

用户访问应用时, 将Artifact提交给Web应用, Web应用根据这个Artifact向认证服务器请求与这个Artifact对应的属性声明。认证服务器将查找到的属性声明返回给Web应用, 这个属性声明中包含着用户的全局ID、用户组等属性。Web应用收到这个声明后, 并不直接将这个用户属性值直接交给PDP, 而是先将它交给策略信息收集点PIP, 策略信息收集点再将信息分别将请求交给角色确认权威、上下文确认权威、动作确认权威, 对请求信息中的主体、环境和动作信息进行确认。确认就是将请求中与主体动作相关的实际值与预先定义的列表中的值进行比较, 转换为列表中存储的抽象概念。经过了这步处理的请求和主体信息一起返回到PIP, PIP将包含有具体和抽象信息的请求发给PDP。PDP做出最后的授权决策, 并返回给PEP, PEP决定是否给用户提供服务。

2.3 访问控制权威机构

可以看到, 在策略信息点下面, 我们在添加“角色确认权威”的同时, 还添加了“上下文确认权威”、“动作确认权威”两个权威机构。箭头表示了请求不是先被送到PDP, 而是先被送到以上提到的三个权威机构。角色确认权威完成用户到角色的转换, 上下文确认权威将收集和主体、环境有关的信息, 如, 主体的历史信息、系统空间、时间等。用户请求的动作也是可以被归类, 所以动作确认权威就是将用户的具体动作映射到定义的抽象概念中。可以把这些抽象的概念统称为属性, 各个权威机构中分别保存了实体到抽象属性的映射清单。

结合了三个属性的请求信息, 和主体的属性值一起返回到PDP策略决策点, PDP根据PAP提供的规则做出授权决策。在三个权威机构中存放着相应的确认策略。如果需要, 管理员可以很方便的修改、添加的转换策略语句。例如, 管理员要临时创建一个用户角色, 或者修改一个用户角色, 他只要在修改角色确认权威中的策略就可以。这点可以很好的弥补原始模型中不能适应动态网络环境的缺点。

3 总结

在这个模型中, 我们对XACML模型进行了扩展, 将角色的分配分散到Web应用中完成, 并引入了上下文概念。该模型提出了在授权模块进行用户/角色转换, 并同时增加了上下文和动作的权威机构, 能过更灵活的创建和修改用户-角色, 角色-权限等转化策略, 更适应动态、分布的网络环境。

参考文献

[1]Sandhu R, Coyne E, Feinstein H, et al.Role-based access control mode[J].IEEE Computer.1996.

[2]SAML2.0profile of XACML v2.0Standard.OASIS.Februry.2005.

[3]XACML v3.0administrative policy.Work draft10.OASIS.December2005.

[4]Sandhu R, Coyne EJ, Feinstein HL, Youman CE.Role-Based ac-cess control models.IEEE Computer.1996.

角色访问控制模型 篇8

在很多提供服务的企业中,随着企业发展壮大,用户数量也在成千上万地不断增长,这对于人工管理分配用户角色,是一个非常庞大的管理任务。同时,系统对信息资源的访问策略更为复杂多样化,对资源的访问策略经常是由多种不同类型的访问控制策略所组成。这些对访问控制模型提出了新的挑战,要求访问控制模型能综合满足应用系统的安全需求,实现日益复杂的信息资源的安全管理。目前大多数访问控制模型没有综合考虑上述需求,不能很好地适应日益发展的服务应用管理需求。在大型企业中,用户和权限管理是一个复杂的工作。角色访问控制(RBAC)模型[1,2]通过引入角色(Role)这一中介,人工分配用户合适的角色,从而授权用户角色的权限,实现了用户与权限的逻辑分离,大大地方便了权限的管理。但这种模型的角色往往是静态的,当大型企业发生组织和功能变化时,需要将很大数量的角色进行重新分配,同时,当用户数量很庞大时,RBAC模型的人工角色分配和管理方式,使得角色权限管理工作变得非常庞大、笨重。

于是,在RBAC基础上,Mohammad A.Al-Kahtani等[3,4]提出了RB-RBAC模型。在RB-RBAC模型中,综合考虑了用户属性,制定规则,为用户自动分配角色,实现自动化管理用户和权限,满足管理庞大用户数目的安全需求,在一定程度上降低了管理工作的复杂度。当系统考虑的用户属性数目逐渐增长,分析用户角色分配越来越复杂,规则制定变得越来越复杂,规则数目随用户属性数目增长而呈指数级增长,这些局限性使得模型不能很好地满足服务应用增长的安全需求[5]。

作为RB-RBAC模型的一种补充,Chunxiao Ye等[6]将RB-RBAC模型的提供用户属性信息功能部分独立分离出来,提出了Rule-Based Provisioning of RBAC模型。这种模型可以提供服务应用的审计信息,满足诸如银行等业务的审计需求。这种模型并没有解决规则随用户属性数目增长而指数级增长的问题。Eric Yuan等[5]提出了一种基于用户属性和资源属性的ABAC模型。这种模型解决了规则指数级增长的局限性。ARAC模型没有引用“角色”这一中介,使得模型的管理工作变得较为复杂,存在大量的重复工作,不能满足用户数量庞大的需求。

因此,本文提出面向多策略服务的一种基于属性的角色访问控制(AB-RBAC)模型。这种模型根据策略中用户属性和资源属性的对应关系,定义多组类型角色,制定一系列规则,分配用户角色。

1 基于属性角色访问控制模型(AB-RBAC)

AB-RBAC模型根据系统的多种访问控制策略,分析用户属性和资源属性,定义多组角色,制定一系列规则,分配用户角色。本节首先给出应用条件,介绍模型的相关概念、定义。

1.1 假设

在给出模型定义和分析前,作如下假设:

(1)在模型分配用户角色前,用户已通过系统身份认证。

(2)针对不同的资源属性,系统采用多种访问控制策略。

(3)用户属性信息可以由用户的身份认证登记信息或用户信息数据库中获得。

(4)角色——权限分配关系比较稳定。

(5)用户数量比角色数量大得多,如:上百万的用户,而角色只有几十或几百个。

1.2 AB-RBAC模型定义

AB-RBAC模型的主要元素U、UAV、UAE、UA、RAE、RA、RAV、Res、SAE、RS、PS、CP、R分别为用户、用户属性表达式、用户属性值、用户属性、资源属性表达式、资源属性、资源属性值、资源、单个属性表达式、基于SAE定义的角色、RS对应的权限、用户最终权限、角色的集合。AB-RBAC模型如图1所示。

每个用户都有定义身份和特性的属性。用户属性可能包括name,country,age,identifier等。对于用户的属性表达式[7]{age>30},age是用户属性,“>”是关系表达式运算符,30是属性值。资源是一种实体,有一些表示特性的属性,这些属性可以用于制定访问策略。如:电影资源可以有title,subject,content,language and release date等属性。本文主要讨论用户属性和资源属性一一对应的多种访问策略。模型定义如下:

(1) sae是用户的单一属性表达式。模型基于SAE,定义分配用户的多种角色。当涉及N个资源属性,且资源属性与用户属性是一对一关系时,相应地,存在N个用户属性。则

∃rai∈RA,且saei∈SAE,SAE⊆UAE,{i=1,2,…,N}。

(2) RS是基于SAE分配的角色集合。对于N个与用户属性为一一对应关系的资源属性,有N用户属性和对应的用户属性表达式。基于N用户属性,系统定义了相应的N组角色(RS1,…,RSN)。定义Range()表示可能值的归类数目,则

∃saei∈SAE,RSi∈RS,RSi={rsij|i=1,2,…,N;j=1,2,…,Range(uai)}。

(3) PS是RS的权限。其中,PS1是sae1对应的RS1的权限。对于N个一对一关系的资源属性,N组角色(RS1,…,RSN)对应的权限为(PS1,…,PSN)。

(4) PSRA⊆PS×RS,权限一角色的分配关系。对于N组角色(RS1,…,RSN),PSi与RSi(i=1,2,…,N)相关联,因此,拥有N个角色的用户,可以有N对应的角色权限。。

∃PSi∈PS,PSi={psij)(rs)|i=1,2,…,N;j=1,2,…,Range(uai)}。

(5) RSH⊆RS×RS,RS的层次关系。RS有两种类型的关系:一种是不同的RSi与RSj(i≠j)的关系,另一种是在同一组RSi里的角色rsij间的关系。

RSi∩RSj=Φ{i≠j;i,j=1,2,…,N}。

RSH⊆RS×RS,角色RS间的关系。

(6) URSAi⊆U×RSi,用户一RSi的分配关系。根据用户的第i个属性值和saei模块,用户被分配RSi中的一个角色(如rsi1)。对于N个一对一关系的资源属性,用户被分配N角色,这些角色分别属于RSi(i=1,2,…,N)。

(7) URSA⊆U×RS,是用户—角色的分配关系。对于N个一对一关系的资源属性,基于N属性值和SAE,用户被分配分别属于RSi(i=1,2,…,N)的N个角色。用户综合角色权限和资源属性,访问资源信息。

(8) CP是由不同sae分别得到的角色权限综合而成,是用户访问资源的最终权限。当涉及N个资源属性和一一对应的用户属性时,CP=PS1∧…∧PSN。

2 实例

以在线娱乐商店[3,4,5]为例说明本模型的设计实现。在线娱乐商店向用户提供电影等娱乐服务,商店采用如下访问策略:

(1)电影播放内容和用户年龄所对应的策略。不同年龄的用户有不同的访问权限。年龄{age<13}的用户能访问L3级内容电影;年龄{age<21 and age≥13}的用户能访问L2级内容电影;年龄{age≥21}的用户能访问L1级内容电影。

(2)电影发布日期对应的策略。根据用户每月不同付费,分配用户不同资格,根据发布时间访问不同电影。根据电影的发布日期,可分为两类{New Release和Old Release}。基于用户付费,用户的资格可分为两类{Premium和Regular}。只有{Premium}资格的用户才能访问{new release}的电影。

由商店制定的访问控制策略,可知策略考虑的用户属性有age和membership,电影资源属性有content和release_date。

根据age属性表达式,制定分配用户角色的规则:

根据用户付费,用户属性membership,分配用户角色Premium或Regular。规则如下:

系统根据用户属性定义的角色组如表1所示。

当用户访问资源时,用户是根据访问权限CP进行访问资源的。由AB-RBAC模型可知,

PS{∧PS}→CP

系统根据用户的不同属性,分配对应的不同角色。对于年龄为10岁的高级资格用户,分配用户age属性的对应角色Child(基于Rule1);分配用户membership属性的对应角色为Premium。因此,根据表1,得

3 模型比较

在上述实例中,有两种访问控制策略,表2显示了应用不同模型时,分配用户的角色。

假设所有访问控制策略中,有N个资源属性与用户属性一一对应。则,RBAC和RB-RBAC的角色数目和权限数目为Range(uai),呈指数级增长。AB-RBAC的角色数目和权限数目为Range(uai),呈线性级增长。同时,RB-RBAC的规则数目随着用户和资源属性数目的增长,呈指数级增长[5]。AB-RBAC的规则数目随着用户属性和资源属性数目的增长,呈线性增长。

4 结论

随着提供服务的企业不断发展壮大,用户数量成千上万地不断增长,同时,对服务资源的访问策略进一步细化,这些对目前的访问控制模型提出了新的挑战。该文提出了AB-RBAC模型,这种模型在基于多策略基础上,综合分析多种资源属性策略中与用户属性的对应关系,提出了sae和CP的概念,形式化定义了模型。AB-RBAC模型适应资源访问权限多样化需求,适应服务环境中用户大量增长的应用需求,简化人工管理分配用户角色管理,增强了系统管理的灵活性和便捷性,在面向服务领域中有着广阔的应用前景。

摘要:针对面向服务环境中用户数量大量增长和资源访问策略日益复杂多样化的需求,分析国内外相关研究的发展和局限性,提出了面向多策略服务的一种基于属性角色访问控制模型。该模型根据多策略中用户属性和资源属性的关系,定义多组用户角色,制定相应规则,分配用户角色,满足访问策略多样化的需求,增强了系统管理灵活性,提高系统效率。给出了模型实例分析,并对国内外相关模型进行了比较。

关键词:属性,规则,用户角色分配,角色访问控制,访问策略

参考文献

[1]Sandhu R S,Coyne E J,Feinstein H L,Youman C E.Role-Based Ac- cess Control Models.IEEE Computer,1996,29(2):38-47.

[2]Ferraiolo D F,Sandhu R,Gavrila S,Kuhn D R,Chandramouli R.Pro- posed NIST Standard for Role-Based Access Control.ACM Transactions on Information and System Security,2001,4(3):224-274.

[3]Mohammad A,AI-Kahtani,Ravi Sendhu.A Model for Attribute-Basod User-Role Assignment.Proceedings of the 18th Annual Computer Secu- rity Applications Conference,Las Vegas,Nevada,2002:53.

[4]Mohammad A Al Kahtani,Ravi Sandhu.Induced role hierarchies with attribute-based RBAC.Proceedings of the eighth ACM symposium on Access control models and technologies,Como,Italy.2003:142-148.

[5]Yuan Eric,Tong Jin.Attributed Based Access Control(ABAC)for Web Services.Proceedings of the IEEE International Conference on Web Services,Orlando,FL,USA,2005:561-569.

[6]Axel Kern,Claudia Walhorn.Rule Support for Role Based Access Con- trol.SACMAT'05,Stockholm,Sweden,2005.130-138.

上一篇:模拟实训体系下一篇:历史见证