论文部分内容阅读
近年来,基于角色的访问控制(Control Access based-Role,RBAC)凭借其自身优势已迅速成为一种流行且有效的访问控制方式。不同于传统访问控制用户直接获取权限的方式,在RBAC中用户是通过角色来获取权限,由于角色是权限的集合,系统中角色的数量要远小于权限的数量,因此RBAC系统的管理更加灵活有效。角色挖掘作为构建RBAC系统的关键部分,得到了广泛的研究与应用,一系列角色挖掘算法已经被提出,但是大多数现有的角色挖掘算法只为追求得到最小角色集的挖掘结果,并未考虑到系统中的约束,从而生成的角色集不能够很好的表达企业中的安全策略和用户需求。因此,在角色挖掘算法中有必要引入一些约束来控制这些策略和要求的实施,实现RBAC系统所需的安全目标。本文针对RBAC中基数约束、职责分离约束下的角色挖掘问题展开深入研究,主要工作如下:(1)为避免角色中权限数和该角色所属的用户数太多,违反RBAC系统的设计原则和安全策略,本文提出一种基于双重约束的角色挖掘算法。该算法将用户权限分配关系转化为二分图表示,在约束条件下,利用二分图中寻找最小完全二分图覆盖的方法,得到满足权限基数约束和用户基数约束的初始角色集、用户角色分配关系和角色权限分配关系。但若得到完整的RBAC状态,还需构建角色层次关系,因此又通过图优化的方法,优化角色集构建角色层次。(2)职责分离是防止RBAC系统中的欺诈行为的重要约束策略,现有的算法是SMER约束下查找最小用户数的方法,得到满足约束的用户权限分配关系。但将SoD约束转化为可强制执行的SMER约束实际上是非常具有挑战性的,因此,本文中是以用户权限矩阵(UPA)和一组SoD约束作为输入,并找到与一致的用户角色(UA)和角色权限(PA)矩阵以及一组t-t SMER约束,这些约束能够正确地强制执行给定的SoD约束,同时优化角色数量。该算法将用户权限关系转化成布尔矩阵表示,利用权限分组的方法在角色挖掘过程中为角色赋予SoD约束信息,生成静态互斥角色t-t SMER(Statically Mutually Exclusive Roles,SMER)约束集,利用该约束集去实现系统中SoD约束。(3)通过实验验证本文所提出算法的可行性与有效性。实验采用现有数据集和模拟数据集通过仿真实验测试本文所提出的算法,并且和现有的算法进行对比分析。实验结果表明本文所提出的算法得到的角色集,能够有效实施约束策略,保证RBAC系统的安全。