论文部分内容阅读
基于角色的访问控制(Role-Based Access Control, RBAC)克服了自主访问控制(DAC)和强制访问控制(MAC)的缺点,不仅可以应用于大型企业,而且可以有效地管理部署云服务器。RBAC系统是通过使用角色(Roles)与角色层次(Role Hierarchies)来组织权限(Privileges)的,使得管理更灵活,更方便,角色集的好坏直接关系到组织机构应用RBAC策略的成功与否。角色分层即角色之间的偏序关系是RBAC策略的一个约束,不仅满足了多级安全的需求,而且层次高的角色拥有它的孩子节点的权限,减小了安全管理的代价。目前许多角色挖掘算法要么只找到了最优的角色集,算法目标单一,没有找到这些角色之间的继承关系,要么算法的时间复杂度是指数级。因此,RBAC策略中角色分层挖掘算法还需要进一步研究。首先,本文研究了角色工程的定义、实现角色工程的方法,分析了现有的角色挖掘问题的解决方法。其次,给出了角色分层挖掘问题的定义以及解决此问题的方法步骤:第一步是基本角色挖掘问题,即找到角色数最少的角色集并且使得用户/角色分配关系与角色/权限分配关系完全符合初始的用户/权限分配关系;第二步角色分层构造问题,使得RBAC状态整体复杂性达到最小。基于上述思想,利用矩阵分块思想和集合之间的交差运算实现了基本角色挖掘算法,利用有向图的深度优先遍历算法实现了角色分层构造算法,并且给出了相关的理论证明,最后还对构造出的角色分层结构进行了优化,即去掉冗余角色。虽然结果比HM算法平均差了11.9%,但是线性时间内实现了分层角色挖掘算法,时间复杂度是O(U2),U是初始用户数,HM算法时间复杂度是指数级。最后,本文分析了活动目录(Active Directory)服务的访问控制机制,然后给出了RBAC以及分层角色挖掘算法在AD中的模拟应用系统。该系统抽象出了在单域环境下的权限集,实现了用户信息的管理,权限信息的管理,角色信息管理,以及显示用户/权限、角色/权限分配关系的功能。验证了该算法的实用价值。