您的位置:首页 > 其它

一种基于RBAC的扩展模型探讨

2005-01-17 17:22 489 查看

一种基于RBAC的扩展模型探讨



摘 要:以著名的RBAC模型为基础,结合如何更方便的进行权限管理的问题,对角色权限及其于操作和操作对象之间的关系进行了分析,提出了一个改进的GRBAC模型.该模型引入操作层次号、粗权限、细权限等概念,通过定义组集合、操作层次关系等新的方式建立新的模型.新模型比RBAC模型更加方便管理和控制,且具有更强的可伸缩性,对粗权限及细权限通过角色层次和组层次分别进行处理,在角色层次上把权限和用户的关系更细化,在组层次上将权限和用户的关系粗化,方便于系统管理用户的粗权限及细权限。还提出了管理的策略及方式。

关键词:基于角色的访问控制;访问控制;粗权限;细权限;操作层次;组控制

1 引言

基于角色的访问控制理论已经广泛的应用于各个领域,随着对其理解的加深和需求的不断变化,人们通过不断的对其修改和充实来满足不同系统的设计及控制的需要。传统的RBAC模型是基于角色控制的,将它的核心思想可以简要的描述为:为每个用户都分配给其合适的角色,而每一个角色都有特定的权限,通过角色即把权限分配给用户。与许多以用户群组作为访问控制单位的模型不同,该模型强调了角色的概念。角色与大家熟悉的用户群组主要的差异在于,群组一般是作为用户集合来看待,而非作为权限的集合;角色既是用户组的集合,又是权限的集合。现在将RBAC模型进行扩展,引入传统的用户群组控制方式,但是赋予其新的涵义,加上操作层次概念扩展得到GRBAC模型。

2 扩展的GRBAC模型

本模型的设计目的是为了更加方便的进行权限管理和控制。由于现实的大系统开发过程中的操作集合所包含的元素要比角色集合所包含的元素少的多,通过引入操作层次的概念,用操作层次和角色的映射关系将传统RBAC模型中的角色层次关系替换掉,最后将关系映射到组控制之中,在角色层次上把权限和用户的关系更细化,在组层次上将权限和用户的关系粗化,形成了一个更为简单和易于理解控制的模型。

2.1 模型定义

GRBAC模型(如图一)所示。首先来定义几个新概念:
定义一:组集合(G):定义具有相同权限或功能的角色的集合。
注意,组集合是与角色存在关系,是角色的集合,而不是用户的集合。所以一个组元素是具有权限的,它也可以理解为是某个特定的操作对象的角色的集合。
定义二:操作层次号(ei):将操作集E中的所有操作都赋予一个层次号,这个层次号是用来进行组元素与单个操作对象进行对应的。
定义三:粗权限:表示仅考虑对象的类别所具有的共同权限,不考虑对象区别于它所属于的类别所具有的共同权限外的某个特定权限。
定义四:细权限:表示实例级,即需要考虑具体对象的权限,当然,细权限是在考虑粗权限后才再考虑的特定权限。
定义五:操作层次关系:操作层次关系是通过操作层次号(ei)将操作集合中的元素对应形成的一个关系。关于它的详细描述及设计原则将在后面有详细的描述。
定义用U表示用户集合、R表示角色集合、P表示权限集合、E表示操作集合、T表示操作对象集合、S表示会话集合。
权限集合P = E×T 即权限集合是操作集E和操作对象集T的笛卡尔集。
UA U×R 即为用户到角色的多对多的指派,即表示图一中的用户分配过程。
PA P×R 即为权限到角色的多对多的指派,即表示图一中的权限分配过程。

图一 GRBAC模型

2.2 模型描述

假设定义操作集E={ r、w、e、d……} ,其中 r表示读操作、w表示写操作、e示增加操作、d表示删除操作。现在我们将操作集E中的元素分别和操作层次号对应起来(如图二),也就是为每个操作集合中的元素分配一个操作层次号,根据层次号的关系,将操作层次号小的操作置于底层,然后将操作层次号大的往底层上面累加,形成一个层次结构(如图三)所示。
由于在现实的设计系统中,对于操作对象所使用的操作种类并不是很多,根据个人直觉就可以大致的确定操作的〝权限〞。如对于r读操作和w写操作来说,都只是具有单一的功能〝权限〞,而对于e增加操作来说,它肯定包含有w写操作的功能,因为一个增加操作必然要进行写的活动。所以我们便给e增加操作多赋予一个r读操作的权限。同理可以解释d操作和r、w、e操作之间的关系。所以经过设计后就呈现出(如图三)一样的树状结构,并且它们之间有〝权限〞的继承关系。
下面给出在分配操作层次号以及操作集合元素之间关系的规则:
规则一:拥有操作〝权限〞多的操作所分配的操作层次号要大,操作〝权限〞少的操作所分配的操作层次号要小。
规则二:相临的操作层次号对应的操作之间,大层次号所对应的操作是小层次号所对应的操作的父亲,小层次号所对应的操作是大层次号所对应操作的孩子。

图二 操作层次号分配 图三 操作层次结构

由于操作集E 和操作对象集T通过笛卡尔集形成权限集合P,而权限集合又通过关系PA完成其于角色的指派,所以可以理解为对于每个特定的操作对象来说,对于它的每个特定的操作都有一组角色,我们把这样的一组一组的角色映射到组集G中,便形成了组集合。
它们之间的关系(如图四)所示。

图四 角色、操作对象、操作之间的关系

组集合和角色集合之间存在联系也有区别,简单描述为组集合中的元素是由不同的角色来组成的,这些角色具有对某个特定的操作对象的某种操作权限。我们并没有将对某个特定的操作对象的某种操作权限就定义为角色,这样做的目的是在角色层次上把权限和用户的关系更细化,在组层次上将权限和用户的关系粗化,方便于系统管理用户的粗权限及细权限。在后面将介绍管理思想。
通过图四的描述,我们还可以看到,每一个操作对象与组元素和操作对象都有对应的关系。对于每个操作对象来说其都可以包含有操作集合中所定义的操作,现在便可以把单个的操作对象和在其上所实现的操作通过在前面所定义的操作层次结构表现出来。对于操作对象,我们可以根据某种关系将它们分为几个部分,如通过部门关系,将操作集合分为对不同部门的操作对象的操作,然后再根据其它的原则继续可以对小集合再进行划分。这样可以形成一个树状的结构,结构中单个结点即是操作对象,将操作对象表示成为操作层次结构,那么形成的结构图中的单个结点即表示成为了对操作对象的某个特定的操作。而通过图四可以看出对操作对象的某个具体的操作即可影射成为一个组元素,于是经过这一系列的关联和变化以后,我们可以得到(如图五)所示的关联后的系统关系图。

图五 关联后的系统关系图

3管理策略

通过一系列的关联,我们建立了(如图五)的关联后的系统关系图。对系统用户权限的管理要涉及到对前面所提出的概念粗权限及细权限的管理。在GRBAC模型下,管理的策略简要描述为:在对用户的粗权限进行管理时,在组上进行操作;在对用户的细权限进行管理时,在角色上进行操作。
在图五上可以看到,对于操作对象用图三所描述的操作层次映射后,将单个元素已经映射成组元素了,然后也划定了层次关系。在进行粗权限管理时,可以进行如下的讨论:
⑴对于组想在其所对应的操作对象上实现〝权限〞的越级或降级,在图五中可表线为一个纵向的变化,只需将其层次号改变即可。
⑵对于组想实现在相同的层次号上的跨文件的〝权限〞,在图五中可表线为一个横向的变化,只需改变其层次号和部门号即可。
⑶对于组想实现跨文件跨〝权限〞的访问,在图五中表现问既横向又纵向的变化,同时改变层次号和操作对象及部门号即可。
⑷对于添加权限,将组信息复制到相应位置或使用继承方式均可。
在做细权限管理时,可以进行如下的讨论:
⑴对于到达了角色程度的用户进行细权限管理,改变其所对应的权限即可。
⑵对于只到达低于角色程度的用户想增加权限,建立一个新的角色,映射其对应权限,加入相应的组即可。

4 结论

经过扩展的GRBAC模型通过引入操作层次的概念,结合角色的访问控制原理和组控制原理来进行管理和控制,其于传统的RBAC模型相比较,有如下的一些优点:
⑴由于在现实开发过程中,操作集合所包含的元素的数量一定不会很多,所以引入的操作层次关系并不复杂,易于控制。
⑵放弃角色层次概念,通过操作层次和角色的映射关系来进行弥补。在大型的系统中,由于拥有很多角色,对角色定义层次关系肯定没有对操作定义层次关系简便,所以更简便一些,并且生成的层次与角色的映射关系最后和组元素结合起来了,很易于控制。
⑶这种模型是在角色层次上把权限和用户的关系更细化,在组层次上将权限和用户的关系粗化,方便于系统管理用户的粗权限及细权限。

参 考 文 献

1 洪 帆,何绪斌,徐智勇. 基于角色的访问控制. 小型微型计算机系统,2000.2
2 Denning D E 著,王育民译.密码学与数据安全.北京:国防工业出版社
3 洪帆主编.《离散数学基础》第二版.华中理工大学出版社,1995年
4 Sandhu R S,Coyne E J,Feinstein H L.1996.Role-Based Access Control Models.IEEE Computer
5 David Ferraiolo and Richard Kuhn.Role-based access controls.In 15thNIST-NCSC National Computer Security Confernce,pages 554-563,Baltimore,MD,October 13-16 1992
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: