论文部分内容阅读
基于角色的访问控制模型(Role-Based Access Control,RBAC模型)有着良好的适用性和高度的灵活性,是一种被广泛研究和使用的访问控制模型。它将用户与角色关联、角色与权限关联,通过给用户分配和取消角色来完成用户权限的授予和撤消,实现了用户与访问权限的逻辑分离。由于角色的设定对权限管理的安全性和易操作性有关键性的影响,角色的设计和维护一直是RBAC系统构建和管理的核心工作,相关的方法被称为角色工程(Role Engineering)方法。随着信息技术的发展,信息系统日趋复杂和多样化,这给角色的设计和维护提出了更高的要求。为应对这一挑战,自动化的角色工程方法受到了广泛的研究和关注。概念格作为一种重要的数据挖掘和知识发现方法,具有自动聚类和自动构建层次的特点,已被证明可以用于设计和维护一个满足约束的角色层次结构。本文以概念格的相关理论为基础,在自动化的角色构建、角色更新和角色合并等方面展开研究。本文的主要工作和贡献包括:(1)经典的自顶向下的角色工程方法在构建角色时,过度依赖领域专家的个人经验及知识水平,可能会遗漏某些权限和功能需求。针对此问题,本文在经典方法的基础上,借助于概念格的属性探索理论,提出了一种半自动化的自上而下的角色工程方法及角色探索算法。该方法能够通过交互式询问的方式来半自动地帮助系统分析师还原领域专家的背景知识、完善角色工程的分析流程,以避免由于依赖人工分析导致重要的场景用例或角色被遗漏的问题。同时,该交互式的角色探索算法能够利用概念格的Hasse图自动化地生成角色的层次模型。(2)在自底向上的角色工程方法中,基于概念格的角色挖掘方法所构建的角色层次结构会存在大量冗余角色,增加了系统管理的复杂性。针对这一问题,为找出满足最小权限原则的最小角色集合,本文建立了角色替代驱动的最小角色集求解模型。该模型的求解是一个NP难问题,为降低时间复杂度,设计了一种以角色替代驱动的贪婪算法。实验和分析表明,用户数和权限数差距越大,本文算法的准确度越好。在基于随机数据的实验中,在用户数增加的情况下,本文的算法能够比经典算法找到的最小角色数目的准确度高12%~62%;在权限数增加的情况下,本文的算法准确度最多高34.4%。基于真实访问控制数据集的实验结果表明算法能够挖掘到更小的角色集合。(3)在复杂信息系统中,主体对客体的访问权限随时间而变化。这就要求概念格为基础的角色层次结构能自动更新,而目前的概念格渐进式更新算法在对象和属性删除方面的研究较少。针对这一问题,本文在分析对象和属性删除后原概念格与新概念格之间节点的映射关系和边(节点的前驱-后继关系)的变化规律的基础上,研究了在原概念格基础上减去某些对象(主体)或者属性(客体)的渐进式更新算法。算法可以在原概念格基础上同时对概念格的节点和Hasse图渐进式地调整,能够满足对角色层次进行自动更新的要求。算法的最坏时间复杂度为O(|L|?|G|?|M|)。基于随机数据的实验结果表明,对象渐减算法和属性渐减算法分别比最快的渐增式算法重构概念格节省了最少约71.4%和73.2%的时间。基于真实数据的实验结果表明算法的时间性能能够满足角色更新在运行时间上的要求。(4)多个RBAC系统合并为一个RBAC系统的过程,主要是针对角色及其层次结构进行合并。目前已有的概念格合并算法的时间性能有限。针对这一问题,本文提出了更加高效的概念格纵向与横向合并算法。两类算法均采用渐进式方式将一个子概念格中的概念逐个插入到另一个子概念格中来得到合并后的概念格。在概念的插入过程中,充分利用了父概念、子概念的产生概念分别和新生概念的关系,大幅缩小了概念之间的比较范围。算法的最坏时间复杂度为O(|L1|?|L2|?|G|3?|M|)。与已有算法相比,时间复杂度降低了一个|M|的量级。基于随机数据的实验结果表明,横向与纵向合并算法的时间性能最快情况下分别节省了82%和96.3%的时间。基于真实访问控制数据的实验结果表明,算法的时间性能能够满足基于概念格的RBAC系统中角色及其层次结构的合并。