基于RBAC的访问控制机制研究
2015-10-22徐珊珊
徐珊珊
【摘 要】基于角色的访问控制(RBAC)是一种可以解决统一资源访问控制的方法,能够更好地适应不同信息系统特定的安全策略,简化对信息系统访问控制的授权与管理。本文通过对RBAC模型构件分析,对其特点及应用优势进行了总结和研究。
【关键词】RBAC;角色;授权;信息系统;用户权限;访问控制
在一般管理信息系统中,访问控制方法一般有三种形式:一、自主型,这种访问控制方法主要借助于访问控制列表实现访问控制;二、强制型,这种访问控制方法用于军事应用等对安全级别要求较高的系统;三、基于角色的访问控制方法(Role-Based Access Control),下文主要对这种方法进行介绍和研究。
作为目前公认的可以解决统一资源访问控制的方法,RBAC的设计理念是:权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了信息系统权限的管理。这里所说的角色与现实生活中角色的概念有所不同,它是一组操作的集合,不同的角色具有不同的操作集,这些操作由系统管理员分配给角色。用户的授权是指系统管理员赋予用户一个角色,只要用户属于某个角色那么他就具备这个角色的所有操作许可,即该角色所拥有的权限。系统中的某一个用户可以被赋予不同的角色,也就是说用户与角色是多对多的关系,即一个用户可以有多个角色,一个角色可以被赋予多个用户。应用RBAC机制的信息系统中授权管理的灵活性得到很好的体现:1)减少授权管理的复杂操作,降低系统管理开销;2)可以灵活地适应信息系统特定安全策略的制定与修改。
1 RBAC模型构件分析
我们对该模型定义如下:
U,R,P,S:用户,角色,权限,会话;
PA?哿P*R:权限分配,多对多的关系;
UA?哿U*R:用户分配,多对多关系;
User:S->U,每一个会话S对应单一用户user(s)的映射;
Roles:会话S到角色集合role(s)?哿{r|(user(s),r)∈PA}
易见:该模型由三个实体组成,分别是:用户(U)、角色(R)、权限(P)。其中用户指自然人,角色就是组织内部一件工作的功能或工作的头衔,表示该角色成员所授予的职责的许可,系统中拥有权限的用户可以执行相应的操作。
角色权限分配 PA和用户角色分配 UA是多对多的关系,即一个用户可以拥有多个角色,一个角色也可被多个用户所拥有。同样的,一个角色拥有多个权限,一个权限能被多个角色所拥有。用户建立会话从而对资源进行存取,每个会话 S 将一个用户与他所对应的角色集中的一部分建立映射关系,这个角色会话子集称为会话激活的角色集。于是,在这次会话中,用户可以执行的操作就是该会话激活的角色集对应的权限所允许的操作。
2 RBAC特点
2.1 信息系统访问权限与角色相关联,不同的角色有不同的权限
用户以什么样的角色对信息系统进行访问,决定了用户拥有的权限以及可执行何种操作。在RBAC中,用户就是一个可以独立访问信息系统资源的主体。角色是指信息系统中的任务或者位置,它代表了一种权利、资格和责任。许可(特权)就是允许对一个或多个客体执行的操作。一个用户可经授权而拥有多个角色,一个角色可由多个用户构成;每个角色可拥有多种许可,每个许可也可授权给多个不同的角色。每个操作可施加于多个客体(受控对象),每个客体也可以接受多个操作。系统中主要设计如下表格记录相关信息:
用户表(USERS)包括用户标识、用户姓名、用户登录密码。用户表是系统中的个体用户集,随用户的添加与删除动态变化。
角色表(ROLES)包括角色标识、角色名称、角色基数、角色可用标识。角色表是系统角色集,由系统管理员定义角色。
客体表(OBJECTS)包括对象标识、对象名称。客体表是系统中所有受控对象的集合。
操作算子表(OPERATIONS)包括操作标识、操作算子名称。系统中所有受控对象的操作算子构成操作算子表。
许可表(PERMISSIONS)包括许可标识、许可名称、受控对象、操作标识。许可表给出了受控对象与操作算子的对应关系。
角色/许可授权表包括角色标识、许可标识。系统管理员通过为角色分配或取消许可管理角色/许可授权表。
用户/角色分配表包括用户标识、角色标识。系统管理员通过为用户分配角色、取消用户的某个角色等操作管理用户/角色分配表。
用户/角色授权表包括用户标识、角色标识、可用性。
2.2 角色与角色之间存在继承关系
为了提高系统工作效率,避免相同权限的重复设置,RBAC采用了“角色继承”的概念。角色继承把角色组织起来,能够很自然地反映系统内部人员之间的职权、责任关系。角色之间可能有互相重叠的职责和权力,属于不同角色的用户可能需要执行一些相同的操作。
2.3 角色限制
角色限制包括角色互斥与角色基数限制。对于某些特定的操作集,某一个用户不可能同时独立地完成所有这些操作。角色互斥可以有静态和动态两种实现方式。静态角色互斥:只有当一个角色与用户所属的其他角色彼此不互斥时,这个角色才能授权给该用户。动态角色互斥:只有当一个角色与一主体的任何一个当前活跃角色都不互斥时,该角色才能成为该主体的另一个活跃角色。角色基数限制是指在创建角色时,要指定角色的基数。在一个特定的时间段内,有一些角色只能由一定人数的用户占用。
2.4 最小权限原则
即指用户所拥有的权力不能超过他执行工作时所需的权限。实现最小特权原则,需要分清用户的工作职责,确定完成该工作的最小权限集,然后把用户限制在这个权限结合的范围之内。一定的角色就确定了其工作职责,而角色所能完成的事物蕴涵了其完成工作所需的最小权限。用户要访问信息首先必须具有相应的角色,用户无法饶过角色直接访问信息。
2.5 角色容量
在一个特定的时间段内,有一些角色只能有一定人数的用户占用。在创建新的角色时应该指定角色的容量。用户是一个静态的概念,会话则是一个动态的概念。一次会话是用户的一个活跃进程,它代表用户与系统交互。用户与会话是一对多关系,一个用户可同时打开多个会话。一个会话构成一个用户到多个角色的映射,即会话激活了用户授权角色集的某个子集,这个子集称为活跃角色集。活跃角色集决定了本次会话的许可集。会话表包括会话标识、用户标识。会话的活跃角色表包括会话标识、角色标识。
3 RBAC应用优势
RBAC最突出的优点是信息系统中的系统管理员能够按照安全策略划分不同的角色,执行特定的任务。一个系统建立起来后主要的管理工作即为授权或取消用户的角色。用户的职责变化时只需要改变角色即可改变其权限。当组织功能变化或演进时,则只需删除角色的旧功能,增加新功能,或定义新角色,而不必更新每一个用户的权限设置。
总之,基于角色的访问控制方法可以为应用系统建立一个高安全强度,更易维护管理,扩展能力极强的访问控制环境,并能够有效的控制管理的复杂性,提供标准化和可以不断延伸授权平台,保证了用户能按照应用规模和数量快速地建立访问控制体系。它能使用户已建立的访问控制体系不断满足演化的应用权限需求,如支持新应用、支持新的权限、增加用户数量、增加用户类型、增加策略数量等。这种理念能够更好地适应不同信息系统特定的安全策略,简化对信息系统访问控制的授权与管理。
[责任编辑:杨玉洁]