一种XACML安全策略的评估优化方法
技术领域
本发明涉及一种优化方法,具体涉及一种XACML安全策略的评估优化方法。
背景技术
访问控制标记语言XACML(extensible access control markup language)已逐渐成为多个企业应用和商业产品实现安全授权功能的实际标准。分布式资源共享、Web服务、域间协作等新兴业务需要制定大量的XACML策略条目对资源进行细粒度访问控制,但随着策略规模和策略语义复杂性的上升,策略评估效率已成为制约系统可用性的关键瓶颈。XACML规范中虽然给出了访问控制实施框架,但没有提供策略分析、规则匹配、判定响应等相关的优化处理方法,这在很大程度上导致了XACML策略评估引擎在处理策略信息检索、多策略匹配等问题时的实际性能指标偏低,具体表现为系统资源开销大、访问请求应答延时长、远程通信交互多,因而无法满足商业应用的高业务吞吐量。
在XACML中,全部评估结果有四种:允许(Permit)、拒绝(Deny)、无法决定(Indeterminate)以及不适用(Not Applicable)。如果策略(Policy)内的多条规则(Rule)或者策略集(PolicySet)内的多条Policy都匹配访问请求,则XACML安全策略即利用合并算法计算最终的评估结果。常见的合并算法有以下几种:
1)许可优先(Permit-overrides)合并算法,只要有一条规则的评估为Permit,最终的评估结果就是Permit。
2)拒绝优先(Deny-overrides)合并算法,只要有一条规则的评估为Deny,最终的评估结果就是Deny。
3)首次适用(First-applicable)合并算法,遇到的第一条适用请求规则的评估结果作为最终的评估结果。
发明内容
为了克服上述现有技术的不足,本发明提供一种XACML安全策略的评估优化方法,采取如下技术方案:
本发明一种XACML安全策略的评估优化方法,其特征在于:所述方法包括以下步骤:
步骤1:消除冗余规则;
步骤2:建立判定结果缓存池和XACML安全策略缓存池;
步骤3:动态改变XACML安全策略/规则的位置。
所述步骤中,先判断出不同合并算法下存在的冗余规则,之后将冗余规则消除。
若当规则Ri适用于请求,规则Rj必然适用于请求,称Ri覆盖Ri,记为;Ri·effect表示Ri的判定结果,值为Permit或Deny;具体分为以下三种情况:
(1)在许可优先合并算法下,有
1)且Rj·effect=Permit,则Ri是冗余规则;
2)若且Rj·effect=Deny,则Ri是冗余规则;
3)当Rj·effect=Permit时,Ri不是冗余规则;
(2)在拒绝优先合并算法下,有:
1)若且Rj·effect=Deny,则Ri是冗余规则;
2)若且Rj·effect=Permit,则Ri是冗余规则;
3)当Rj·effect=Deny时,Ri不是冗余规则;
(3)在首次适用合并算法下,Ri在XACML安全策略中的位置记为seq(Ri),有:
1)若且Ri·effect=Rj·effect,则Ri是冗余规则;
2)若且seq(Rj)<seq(Ri)时,Ri是冗余规则;
3)若且seq(Rj)<seq(Ri)时,Ri不是冗余规则。
所述步骤2中,所述判定结果缓存池用于保存用户之前的访问结果,当判定结果缓存池中没有相应的结果时触发XACML安全策略缓存;
所述XACML安全策略缓存池用于保存最近访问的XACML安全策略。
所述步骤3中,XACML安全策略对应的评估引擎采用重排序算法动态改变XACML安全策略/规则的位置。
所述步骤3中,设Pk和Rj分别表示XACML安全策略和规则,通过Pk和Rj在执行统计值方面的优先级Pk.M和Rj.M,以及Pk和Rj的复杂度Pk.N和Rj.N确定Pk和Rj的总体优先级 Pk.Ψ和Rj.Ψ。
在许可优先合并算法中,Pk.M和Rj.M分别表示为:
Pk.Μ=θ11*Pk.a+θ12*Pk.p
Rj.Μ=θ21*Rj.a+θ22*Rj.p
其中,a表示XACML安全策略/规则适用率;p表示XACML安全策略/规则许可率;θ11、θ12、θ21和θ22表示权重;
在拒绝优先合并算法中,Pk.M和Rj.M分别表示为:
Pk.Μ=θ11*Pk.a+θ12*Pk.d
Rj.Μ=θ21*Rj.a+θ22*Rj.d
其中,d表示XACML安全策略/规则拒绝率。
令n(t)表示目标元素中的布尔条件的数量,n(c)表示条件元素中的布尔条件数量,Rj的复杂度Rj.N表示为:
Rj.Ν=n(t)+n(c)
Pk的复杂度Rj.N由Pk中所有规则的复杂度及规则执行率确定,Pk.N表示为:
其中,f表示规则Rj的执行率。
Pk和Rj的总体优先级Pk.Ψ和Rj.Ψ分别表示为:
Pk.Ψ=α1*Pk.Μ+β1*Pk.Ν-1
Rj.Ψ=α2*Rj.Μ+β2*Rj.Ν-1
其中,α1、β1、α2、β2表示权重。
与现有技术相比,本发明的有益效果在于:
本发明针对现有XACML标准在策略规模和策略语义复杂性的上升时性能上的不足以及功能上的缺陷,提出一种基于策略冗余去除、缓存、重排序的XACML安全策略评估优化方法,该方法能够在提供策略分析、规则匹配、判定响应等相关的优化处理方法对资源进行细 粒度访问控制的同时,有效提升XACML安全策略评估引擎处理策略信息检索、多策略匹配等问题时的效率,加强系统可用性,且能够适应各种策略合并算法,灵活性和可用性强。
具体实施方式
下面对本发明作进一步详细说明。
本发明一种XACML安全策略的评估优化方法,其特征在于:所述方法包括以下步骤:
步骤1:消除冗余规则;
步骤2:建立判定结果缓存池和XACML安全策略缓存池;
步骤3:动态改变XACML安全策略/规则的位置。
所述步骤中,先判断出不同合并算法下存在的冗余规则,之后将冗余规则消除。
若当规则Ri适用于请求,规则Rj必然适用于请求,称Ri覆盖Ri,记为;Ri·effect表示Ri的判定结果,值为Permit或Deny;具体分为以下三种情况:
(1)在许可优先合并算法下,有
1)且Rj·effect=Permit,则Ri是冗余规则;
2)若且Rj·effect=Deny,则Ri是冗余规则;
3)当Rj·effect=Permit时,Ri不是冗余规则;
(2)在拒绝优先合并算法下,有:
1)若且Rj·effect=Deny,则Ri是冗余规则;
2)若且Rj·effect=Permit,则Ri是冗余规则;
3)当Rj·effect=Deny时,Ri不是冗余规则;
(3)在首次适用合并算法下,Ri在XACML安全策略中的位置记为seq(Ri),有:
1)若且Ri·effect=Rj·effect,则Ri是冗余规则;
2)若且seq(Rj)<seq(Ri)时,Ri是冗余规则;
3)若且seq(Rj)<seq(Ri)时,Ri不是冗余规则。
所述步骤2中,所述判定结果缓存池用于保存用户之前的访问结果,当判定结果缓存池中没有相应的结果时触发XACML安全策略缓存;
所述XACML安全策略缓存池用于保存最近访问的XACML安全策略。
所述步骤3中,XACML安全策略对应的评估引擎采用重排序算法动态改变XACML安全策略/规则的位置。
所述步骤3中,设Pk和Rj分别表示XACML安全策略和规则,通过Pk和Rj在执行统计值方面的优先级Pk.M和Rj.M,以及Pk和Rj的复杂度Pk.N和Rj.N确定Pk和Rj的总体优先级Pk.Ψ和Rj.Ψ。
在许可优先合并算法中,Pk.M和Rj.M分别表示为:
Pk.Μ=θ11*Pk.a+θ12*Pk.p
Rj.Μ=θ21*Rj.a+θ22*Rj.p
其中,a表示XACML安全策略/规则适用率;p表示XACML安全策略/规则许可率;θ11、θ12、θ21和θ22表示权重;
在拒绝优先合并算法中,Pk.M和Rj.M分别表示为:
Pk.Μ=θ11*Pk.a+θ12*Pk.d
Rj.Μ=θ21*Rj.a+θ22*Rj.d
其中,d表示XACML安全策略/规则拒绝率。
令n(t)表示目标元素中的布尔条件的数量,n(c)表示条件元素中的布尔条件数量,Rj的复杂度Rj.N表示为:
Rj.Ν=n(t)+n(c)
Pk的复杂度Rj.N由Pk中所有规则的复杂度及规则执行率确定,Pk.N表示为:
其中,f表示规则Rj的执行率。
Pk和Rj的总体优先级Pk.Ψ和Rj.Ψ分别表示为:
Pk.Ψ=α1*Pk.Μ+β1*Pk.Ν-1
Rj.Ψ=α2*Rj.Μ+β2*Rj.Ν-1
其中,α1、β1、α2、β2表示权重。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。