论文部分内容阅读
计算机技术的快速发展,使得各种软件的用户和信息资源的数量呈现前所未有的快速增长,而且各类用户身份和信息种类的日益繁杂,要求更为细粒度的访问控制策略对用户访问资源做相应的控制。细粒度的访问控制有利于系统对信息资源做精细化管理,然而,这必然会导致策略库中策略数量的增加。在一个系统的访问控制策略具有较大规模时,会形成产生两种不可避免的问题:策略查询效率较低和可能的策略冲突,两者会对策略评估的效率和结果产生影响。因此,如何优化策略查询的效率和快速检测存在的策略冲突是本文研究的重点。在策略数量较少时,对策略库实行简单的逐条遍历也能在短时间内完成策略评估,但是,随着策略数量的增加,简单的遍历会造成效率上的严重下降。针对这个问题,需要对策略查询方法进行优化,在研究人员提出的优化思路中,较为常见的是动态重排序。该方法可以有效提高命中率,缩短策略评估过程,但是依然没有解决策略评估是需要遍历所有相关规则的问题,同时不断地计算优先级需要耗费计算代价。策略数量的增加,同样能够导致规则冲突发生频率增加。在一个没有规则冲突的集合中,规则间每个属性取值(包括Effect元素)必定不全相等,当一条新的规则加入现有的集合时,很难符合规则不冲突的条件,因此需要对规则冲突做快速检测。在冲突检测方面,研究人员提出了基于向量交集和有向图模型等方法,但是由于模型比较复杂,在构建和使用模型检测冲突时耗时较长,不利于快速检测。本文的贡献成果有以下两点:(1)提出了一种优化策略查询的方法。本文在分析XACML描述特点的基础上,利用属性与或矩阵和类型分析,提出一种基于属性与或矩阵和类型分析的XACML策略查询的方法,降低策略评估实施时的规则匹配数量。该方法修改现有Context Handler的处理过程,增加一个访问控制规则匹配预处理环节,在该环节中计算得出每个规则属性的区分度,利用区分度和属性与或矩阵筛选掉与当前访问控制请求无关的规则,然后对筛选后的规则集合进行匹配,上述过程能够提高策略评估效率。(2)提出来一种高效的规则冲突检测方法。对每个规则属性计算其在相应子区间上的覆盖状态,相应地,在对一个规则集计算各个属性的覆盖状态后,得到一个覆盖状态矩阵。两条规则中相同属性的取值范围是否存在重叠,只需对比覆盖状态是否相等,而在检测规则冲突时,只是对构建的矩阵进行遍历,避免了其他方法中由于结构的复杂性造成的检测效率低下,提高了对策略冲突检测效率。