论文部分内容阅读
在基于角色的访问控制(Role-Based Access Control,RBAC)中,每一个用户拥有哪些权限并非直接获得,而是系统管理员首先给每个角色分配若干权限,然后再将这些角色分配给相应的用户。随着基于角色的访问控制机制在系统安全领域的广泛应用,如何将系统的访问控制管理迁移到R BAC系统成为一个非常重要的问题。角色工程(Role Engineering)技术就是用来创建和优化RBAC系统的方法。角色工程技术由领域专家人工分析和算法自动构建角色两类方法组成。其中领域专家人工分析的方法费时费力,所以目前角色工程技术研究的重点是通过算法自动构建角色系统,这个方法被称为角色挖掘(Role Mining)。 矩阵分解可以用来表达RBAC的角色层次关系,然而,目前的角色挖掘算法没有用矩阵分解来表达RBAC角色层次关系,现有的角色挖掘算法一直未能充分利用矩阵运算的优势。基于此,提出了一套表达RBAC角色层次关系的矩阵模型,并给出了角色挖掘中的成本效益分析方法。在角色挖掘的过程中通过形式概念分析获得最初的角色层次结构,根据最初的角色层次结构来构建表达RBAC角色层次关系的矩阵模型,然后根据多目标优化函数去计算最优的角色系统。最后通过实验与现有算法比较,验证了使用带层次关系的矩阵模型方法的角色挖掘算法有效性。 传统的角色挖掘算法通常难于同时处理各种约束和约束之间的冲突,考虑约束的角色挖掘问题一直是角色工程中的难点。针对这一问题,提出基于回答集编程(Answer Set Programming,ASP)的角色挖掘方法。逻辑编程的优点是只需要用逻辑语言描述问题,而不需要具体给出解决约束冲突的算法。基于 ASP的逻辑编程大大简化了带约束的角色挖掘问题的求解。在以管理成本为评价指标的实验中,即使在不考虑约束的情况下,基于ASP的逻辑编程的结果也优于已有的角色挖掘算法。 另外,基于策略的访问控制技术也是访问控制技术中得到广泛应用的一种。在基于策略的访问控制技术中,XACML(extensible Access Control Markup Language)技术成为一种技术标准。为了便于进行安全策略的逻辑推理和检测,已有的研究将XACML的基础组件转化为逻辑程序ASP,然而这种基于ASP的XACML模型只能处理包含基本数据类型的XACML请求。如果XACML请求中使用的是XML格式的复杂数据类型,已有的基于 ASP的 XACML模型就无法处理。在基于策略的访问控制实践中,随着系统安全需求的日趋复杂,XACML请求中大量包含着XML格式的数据类型。为了解决这个问题,首先用逻辑编程语言ASP实现了在XACML中使用的XPath语言以及XACML中与 XPath语言相关的组件。这样基于逻辑框架的 XACML模型不但可以使用 XPath语言去处理XACML请求中的XML数据,处理的结果还可以和逻辑化的XACML的基本组件协同工作,共同完成完整的基于策略的访问控制任务。