- 1 -
中国科技论文在线
安全策略驱动的资源分割技术#
裴新1,2,虞慧群1**
基金项目:高等学校博士学科点专项科研基金博导类资助课题(20130074110015); 国家自然科学基金资
助项目(61173048, 61300041)
作者简介:裴新(1988),男,博士研究生,主要研究方向:信息安全、形式化方法、云计算、网络协议等
通信联系人:虞慧群,教授,博士生导师,主要研究方向:软件工程,可信计算,形式化方法,信息安全
等. E-mail: yhq@
(1. 华东理工大学计算机科学与工程系, 上海 200237;
2. 上海市计算机软件评测重点实验室, 上海 201112) 5
摘要:访问控制技术为数据的共享和安全提供了切实有效的方案,保证了合法用户对数据的
访问,广泛应用于信息管理系统。然而,随着数据量的急剧增长以及人们对数据保密意识的
提高,传统的访问控制方法已经不能满足高效、安全的访问控制需求。本文提出基于策略驱
动的资源分割技术,从基础数据关系角度出发,将相关资源集合分割为独立且具备安全属性10
的资源片段,并在资源维度上实现了策略投影和策略优化。资源分割技术保持了策略决策的
一致性,降低了资源之间的耦合度,减少物理存储空间。同时,独立作用于资源片段的访问
控制策略,避免了复杂的角色层次关系,提高访问控制效率和策略的灵活性。最后,给出了
算法的应用案例。
关键词:访问控制;资源分割;规则优化;策略驱动;策略决策;XACML 15
中图分类号:
Security Policy-driven Approach for Resource Segmentation
PEI Xin
1,2
, YU Huiqun
1
(1. Department of Computer Science and Engineering, East China University of Science and 20
Technology, Shanghai 200237, China;
2. Shanghai Key Laboratory of Computer Software Evaluating and Testing, Shanghai 201112,
China)
Abstract: Access control technique provides practical and effective solutions for data sharing and
security. It enables the legitimate user access to data, and is widely used in information 25
management systems. However, with the rapid growth of data quantity and the improving
awareness of data privacy, the traditional access control fails to meet the demand of efficient and
secure data access. In this paper, we propose a security policy-driven resource segmentation
technique. From the aspect of the basic data relations, we segment the related resources to a
disjoint set with each element holding its security property. Meanwhile, we achieve the projection 30
of policy on each resource segment, and optimize the related rules according to the policy
combining algorithms. The resources segmentation technique keeps consistency with the original
decision of the policy, while it cuts down physical storage size by reducing the coupling between
resources. At the same time, the rules affecting on the resource segments avoid the complexity of
role hierarchies, while they improve the efficiency of decision making and are flexible to 35
customize. Finally, we propose a case study for applying our resource segmentation algorithm.
Key words: Access control; resource segmentation; rule refinement; policy-driven;
decision-making; XACML
40
- 2 -
中国科技论文在线
0 引言
访问控制是网络通信安全防范和保护的主要方法[1][2],传统的访问控制方法包括 DAC,
MAC,RBAC
[3][4]等。基于策略驱动的访问控制方法可以通过对策略和规则的优化,实现高效
的资源访问控制。XACML(eZtensible Access Control Markup Language) 是 OASIS 组织在
2003 年提出的一种基于 XML 格式的访问控制标准,被广泛应用与网络应用和网络服务中[5]。45
XACML 是一种层次化语言模型,它提供了策略集、策略和规则三种对象及对象之间的融合
算法,确保决策的正确和唯一[6]。一个策略可以包含多条规则,在一个规则中,主体、资源、
行为构成其基本属性,同时规则可以具有执行条件约束。规则具有“允许”和“拒绝”两种
效用。由多个规则构成的策略具有一个融合算法,用来解决规则之间的冲突。同样,策略集
也具有融合算法,解决策略之间的冲突。XACML 提供的融合算法有四种,分别是:“首次50
适用算法”,“允许优先算法”,“拒绝优先算法”以及“唯一适用算法”。XACML 的组
织结构与元素对应关系如图 1 所示,对 XACML 进行形式化描述,如式(1), (2), (3)。同时,
由于一条规则的返回值是一个布尔变量,可以通过布尔表达式描述规则,如式(4)。
图1. XACML元素对应关系 55
- 3 -
中国科技论文在线
*:: , ,PolicySet Target CA Policy (1)
*:: ,Policy Target CA Rule (2)
*:: ,Rule Target Effect Condition (3)
i i i i irule rule rule rule rule
BoolExpression Subject Resource Action Condition (4)
规则中涉及到的资源可以定义为 Resource=(<ResourceID>,<SecurityAttr>),其中60
SecurityAttr 为资源的安全属性,本文为资源定义两种安全属性:s-elem 表示敏感数据,ns-elem
表示非敏感数据,即 SecurityAtt={<s-elem>,<ns-elem>}。当具有不同安全属性的资源相交时,
重合部分应继承高级别的安全属性。
Gail-Joon Ahn 等人在[7]中介绍了一种应用于 Web 访问控制中的基于逻辑的 XACML 策
略管理机制,采用 ASP(Answer Set Programming)方法形式化 XACML,并在[8]中对规则65
的冲突和冗余进行检测和消除。冯登国等人在文献[9]中提出一种相关类型的策略优化引擎,
并对层次化的 XACML 利用树状图分析和优化。然而文献中并未充分考虑到策略的安全性,
同时基于策略本身的优化方法,效率依然取决于策略长度,并未从根本上优化 PDP(policy
decision point)的算法复杂度。M. Said 等在[10]中提出了一个评估策略执行效率的框架,策
略相似性的度量方法在[11]中给出,B. Antonia 等人提出一种 XACML 的自动检测方案[12],同70
时,对 XACML 的形式化描述在[13][14]中也有体现,这些文献中的工作对于策略的形式化描
述和效率评估非常有帮助,但对于具体的优化方式并未给出可行性方案。Abdul Ghafoor 在[14]
中提出了一个云端用户中心策略管理架构并描述了其应用场景,而 XACML 同样可以应用
在许多其他领域,例如银行[15]、医疗、超市等,实现数据的安全和用户隐私。
文章结构如下,第一节介绍资源分割技术,详细介绍了投影算法,规则优化算法以及算75
法分析;第二节给出算法案例;第三节总结全文及罗列未来工作。
1 资源分割技术
为了实现资源的独立存储,同时考虑其安全属性,本节通过资源分割算法将资源切分为
相互独立且具有安全属性的资源片段。由于资源是策略的一部分,是 XACML 中规则的一
个基本属性,我们可以将规则绑定到资源上,实现策略在资源维度上的投影。随后,通过规80
则优化算法对每个资源片段上的规则进行冲突和冗余的检测和消除,实现策略的最优化。
安全策略投影算法
XACML提供的仅仅是XML格式的访问控制规则匹配模型,并没有给出系统的决策方案。
本文提出的资源分割技术将策略中的资源集合分割为独立的资源片段,这些片段成为了容纳
相关规则的“容器”。通过对规则的重新分配,实现策略在资源维度上的投影。基于资源片85
段的规则可以重组原始策略,保证决策的一致性。
算法1用伪代码的方式描述了策略投影的过程。图2描述了算法的主要功能,其中,敏感
数据块R0与非敏感数据块R1相交,算法将这两个资源块分割为S={s1, s2 , s3}。策略中r1, r2关
联的数据是R1,同时r3关联的数据是R0,从而根据算法得到绑定规则后的资源片段集合G={g1,
g2, g3},其中g2是R0与R1的相交部分,安全属性为s-elem,绑定的规则分别继承自R0与R1,构90
成规则集RuleSet={r1, r2 , r3}。
- 4 -
中国科技论文在线
R1
R0s1
g1
g2 g3
RuleSet1{r1,r2} RuleSet2
{r1,r2,r3}
s2
RuleSet2{r3}
s3
图2. 策略投影算法
算法1: 策略投影算法 95
Project(policy)
Initialize S, G;
foreach resGetResources(policy) do // 获取资源片段集合
foreach sS do 100
DataCredentialCheck(res,s); // 资源安全属性一致
if res s then
(s\res);
(s, res);
Break; 105
else if res s then
S. replace (res, res\s);
else if res s then
S. add (res\s);
S. replace (s,s res); 110
S. replace (s,s\res);
\ (res);
foreach rule GetRule(policy) do // 绑定规则
foreach sS do
if s GetRelatedResource(rule) then 115
bind( rule, s);
G S with reassigned rules on each element;
Return G;
规则优化算法 120
策略中的规则之间存在冗余和冲突,XACML提供的四种融合算法虽然可以解决冲突,
但是决策效率较低。本文提出的规则优化算法是在决策之前对所有相关的规则在资源片段维
度上进行优化,很大程度上提高了决策效率。
在一个资源片段上,云端用户的请求可以用下式表达: )(req sub >,< res >,< act >,< con ,
其中 , , ,sub res act con 分别表示主体、资源、行为及条件,资源可以由一个或多个片段组成,125
首先将用户请求的资源分解到资源片段上。对于每个资源片段,如果有规则能够匹配用户请
求,记为 |r req 。当存在条件 : ,i jres res s res s 时,称 ir 交于 jr ,记为 i jr r 。两者的相
交的部分即为 ,i jr r ,其中 ir 属于 ir , jr 属于 jr 。由此,当 i jr r 且 . .i jr effect r effect 时,有
i jr r
。若删除
ir
或
jr
对策略的最终决策不产生影响,则其可移除。在不同的策略融合
算法作用下,移除判定准则不相同,以下分别定义四种融合算法中的移除准则。 130
准则 1:“允许优先算法”
当 i jr r 且 .ir effect permit ,则 jr 可移除。
- 5 -
中国科技论文在线
当 i jr r 且 .ir effect deny ,则 ir 可移除。
准则 2:“拒绝优先算法”
当 i jr r 且 .ir effect deny ,则 ir 可移除。 135
当 i jr r 且 .ir effect permit ,则 jr 可移除。
准则 3:“首次适用算法”
假设
ir , jr 在策略中的出现顺序为 ( )seq r 。
当 i jr r 且 ( ) ( )i jseq r seq r ,则 jr 可移除。
当 i jr r 且 ( ) ( )i jseq r seq r ,则 ir 可移除。 140
准则 4:“唯一适用算法”
若 ir 与 jr 同时匹配一个请求,共同匹配部分为 ,i jr r ,非唯一匹配返回”NotApplicable”,
该情况下,移除
ir
与
jr
。
算法2用伪代码描述资源片上的规则优化过程,图3描述了算法主要功能。RuleSeti表示
绑定到资源片段上的规则集合,算法根据上述优化规则对RuleSeti进行优化。 145
算法 2: 基于资源片段的规则优化算法
Refine(G, CA)
foreach gG do 150
intersectionSet FindOverlaps(RuleSet in g);
foreach pair intersectionSet do
if CA= Permit-override then
Execute by 准则 1;
else if CA = Deny-override then 155
Execute by 准则 2;
else if CA = First-applicable then
Execute by 准则 3;
else if CA = Only-one-applicable then
Execute by 准则 4; 160
Return G;
FindOverlaps(RuleSet)
Initialize coupleSet;
foreach
2( , ) ruleSj ei tCpair r r do
if i jr r then 165
(
,i jr r
);
Return coupleSet;
Refined
RuleSet1
Refined
RuleSet3
Refined
RuleSet2
g1 g2 g3
图3. 资源片段上的规则优化算法 170
- 6 -
中国科技论文在线
算法分析
假设在策略P中,存在K个规则
1
K
k
k
rules r
; N个资源
1
N
n
n
resources
; 通过调用以上算
法得到 M 个资源片段
1
M
m
m
segments s
。 假设在每个资源片段 i 上绑定 H 个规则
1
i
i
H
segment h
h
rules rs
,这些规则产生出L个冲突
1
i
i
L
segment l
l
conflicts cs
.
在策略投影算法中,时间复杂度主要出现在资源分割与规则绑定的过程中。资源分割的175
时间复杂度是 2( log )O N M ,M 与资源之间的耦合度相关。规则绑定到每个资源片段上的时
间取决于片段的数量 ii M s 以及相关的规则数量 kk K r ,复杂度为 ( )O KM 。从而策略投
影算法的复杂度为
2( log )O N M KM 。规则优化算法的复杂度取决于每个资源片段上冲突规
则的数量 L,寻找冲突规则的时间为
2( log )i iO H H ,冲突解决的时间为 ( )iO L ,从而总时间
复杂度为 2( )logi i ii M H H LO 。 180
算法需要额外的空间开销,用以存储资源片段以及绑定规则,其空间复杂度为 ( )M 。
对资源进行分割可以节约相交资源的公共部分。定义权值函数 ( )W 度量资源片段的存
储容量。在原始的策略中,资源存储需要
1
( )
n
ii
W
。而在本文的算法中,考虑到敏感数据
加密会改变数据大小,共有部分取最大存储容量值
1
( )
M
ii
W S
,可以将所有策略涉及到的
资源存储容量缩减到
1 1
( ) ( )
N M
i ii i
W W S
。 185
策略决策的效率很大程度上取决于策略的匹配时间,规则的数量以及策略融合算法决定
了决策点的执行效率。在一个给定的策略或策略集中,原始的 XACML 通常需要遍历所有
的规则以便做出决策,其复杂度为 ( )ii MO k ,其中 M 为策略数量, ik 为每个策略中的规则
数量。文献[7] [9]对策略中的规则进行优化,给出了可行的冲突检测和解决办法,但是并没有
从根本上改变匹配方式,其复杂度依然为 ( ')ii MO k ,其中 'ik 为每个策略中经过优化之后190
的规则数量。而本文中给出的方法采用了分而治之的思想,避免了不相关规则的遍历时间,
实现了基于资源片段的按需决策。用户请求被分解到每个资源片段上,在每个被请求的片段
上进行规则匹配,其复杂度为 ( )ii NO N sk ,其中 N 为资源索引长度, isk 为请求的每个
资源片段上的规则数量。
2 案例分析 195
图 4 是一个精简的 XACML 程序示例,策略 P1 由三个规则 r1, r2, r3 组成,每个规则都
可以用布尔表达式描述[8],例如,P1中的 r1 可以表示为式(5)。
1
" " "Bob"
Resource="Quarterly-report" Resource="Annual-report"
"Read" "Change"
rBoolExpression Subject Alice Subject
Action Action
AnyCondition
(5)
为了更为简单的描述,将布尔表达式简化为布尔变量,如表1所示。通过用布尔变量描
述P1,可以将规则r1, r2, r3形式化如式(6), (7), (8). 200
- 7 -
中国科技论文在线
<policy policyID="P1" RuleCombiningAlgId="Permit-Overrides">
</target>
<Rule RuleID="r1" Effect="Permit">
<target>
<Subjects><Subject> Alice </Subject>
<Subject> Bob </Subject></Subjects>
<Resources><Resource> Quarterly-report </Resource>
<Resource> Annual-report </Resource></Resources>
<Actions><Action>Read</Action>
<Action>Change</Action></Actions>
</target>
</Rule>
<Rule RuleID="r2" Effect="Deny">
<target>
<Subjects><Subject> Bob </Subject>
<Subject> Jim </Subject></Subjects>
<Resources><Resource> Annual-report </Resource>
<Resource> Codes </Resource></Resources>
<Actions><Action>Read</Action>
<Action>Change</Action></Actions>
</target>
<Condition> 8:00<= Time <=17:00 </Condition>
</Rule>
<Rule RuleID="r3" Effect="Permit">
<target>
<Subjects><Subject> Bob </Subject></Subjects>
<Resources><Resource> Publications </Resource></Resources>
<Actions><Action>Read</Action></Actions>
</target>
<Condition> 10:00<= Time <=13:00 </Condition>
</Rule>
</policy>
图4. XACML示例
表1. 原子布尔变量
布尔表达式 布尔变量
Subject=”Alice” S1
Subject=”Bob” S2
Subject=”Jim” S3
Resource=”Quarterly-report” R1
Resource=”Annual-report” R2
Resource=”Publications” R3
Resource=”Codes” R4
Action=”Read” A1
Action=”Change” A2
Condition=”8:00<=Time<=10:00” C1
Condition=”10:00<Time<=13:00” C2
Condition=”13:00<Time<=17:00” C3
1 1 2 1 2 1 2
( ) ( )rBoolExpression S S R R A A (6) 205
2 2 3 2 4 1 2 1 2 3
( ) ( )rBoolExpression S S R R A A C C C (7)
3 1 3 1 2
( ) ( )rBoolExpression S R A C (8)
使用上述资源分割算法,对策略进行资源维度的投影,可以省去规则 r1, r2, r3 中的资源
属性,如式(9), (10), (11)所示。将以上规则绑定到资源片段上,得到集合{g0, g1, g2, g3, g4},
- 8 -
中国科技论文在线
如图 5 所示,其中 g2 是资源的交集,继承了‘Annual-report’的敏感数据安全属性。 210
1 ' 1 2 1 2
( )rBoolExpression S S A A (9)
2 ' 2 3 1 2 1 2 3
( )rBoolExpression S S A A C C C (10)
3 ' 1 1 2
( )rBoolExpression S A C (11)
Quarterly-report
Annual-report
Codes
r1',r2',r3'
Publications
r1',r2'
r1',r2'
r2'
r3'
g0
g1
g2
g3
g4
图5. 策略分割算法示例 215
g3
g1
g4
g2g0
RuleSet0(r1',r2') RuleSet1(r1',r2') RuleSet2(r1',r2'1,r3')
RuleSet3(r3') RuleSet4(r2')
g3
g1
g4
g2g0
RuleSet0
(r1',refined_r2’)
RuleSet1
(r1',refined_r2’)
RuleSet2
(r1',refined_r2’)
RuleSet3(r3') RuleSet4(r2')
图 6. 基于资源片段的规则优化算法示例
算法 2 在每个资源片段上进行规则优化,例如在 g1 上,规则交集皆为
1 2', '
( 2) (A1 A 2) ( 1 2 3)r r S C C C ,其中 r2’与 r1’冲突,根据策略融合算法“允许优先原
则”,作用在 g1 上的规则 r2’被优化为 3 1 2 1 2 3( )S A A C C C ,记为 refined_r2’,从220
而,g1 上的规则集为 rule set (r1’ , refined_r2’)。
资源片段 g2 上的规则冲突为
1 2', 'r r
,
1 3', 'r r
以及
2 3', 'r r
,分别对其进行优化。
1 2', 'r r
的优化
过程已经讨论,对于
1 3', 'r r
,由于 1 'r 与 3 'r 的效用值都为“允许”并且 1 3' 'r r , 根据 中
的准则, 3 'r 可以被移除,从而剩余的冲突情况不必再考虑。因此,作用在 g2 上的规则集也
为 1 2, ' _ 'ruleset r refined r ,图 6 描述了规则优化的过程。 225
3 总结
本文从基础数据之间的关系出发,给出了一种策略驱动的访问控制方法。资源分割算法
对资源进行细粒度的分割,首先定义资源安全属性从而进行安全一致性规约,然后依据原始
策略对每个资源片段进行规则绑定和优化。算法实现了策略在资源维度上的投影和优化,提
高了资源的独立性,降低了物理存储空间。与传统的基于角色的访问控制相比,减少了复杂230
的角色层次管理难度和数据冗余,便于策略更新和数据重组。在案例分析中,对一个XACML
的实例进行形式化描述和算法验证。
未来工作包括对资源片段的封装、索引和高效的用户请求决策,以及如何应用于云计算
中的访问控制。此外,计划构建一个基于资源分割技术的安全原型系统。
- 9 -
中国科技论文在线
参考文献235
[1] K. Yang, X. Jia, K. Ren, et al, DAC-MACS: Effective Data Access Control for Multiauthority Cloud Storage
Systems[J], 2013, 8(11), 1790-1801.
[2] L. Zhou, V. Varadharajan, M. Hitchens, Achieving Secure Role-Based Access Control on Encrypted Data in
Cloud Storage[J], 2013, 8(12), 1947-1960.
[3] A. Masood, R. Bhatti, A. Ghafoor, et al, Scalable and Effective Test Generation for Role-Based Access Control 240
Systems[J], 2009, 35(5), 654 - 668.
[4] C. A. Ardagna; D. C. Vimercati; S. Paraboschi, Expressive and Deployable Access Control in Open Web
Service Applications[J], 2011, 4(2): 96-109.
[5] S. Godik, T. Moses, eXtensible Access Control Markup Language (XACML) [S], OASIS, 2003.
[6] N. A. Nordbotten, XML and web services security standards[J], IEEE Survey & Tutorials, 2009, 11(3): 4-21. 245
[7] G. J. Ahn, H. X. Hu, J. Lee, Y. S. Meng, Representing and reasoning about web access control policies, IEEE
Software and Applications[C], 2010, 137-146.
[8] H. X. Hu, G. J. Ahn, Discovery and resolution of anomalies in web access control policies, IEEE Dependable
and Secure Computing[J], 2013, 10(6):341-354.
[9] A. Bertolino, S. Daoudagh, F. lonetti, Automated testing of eXtensible Access Control Markup 250
Language-based access control systems, IET Software[C], 2013, 203-212.
[10] Y. Z. Wang, D. G. Feng, L. W. Zhang, XACML policy evaluation engine based on multi-level optimization
technology, Journal of Software[J], 2011, 22(2):323−338.
[11] D. Lin, P. Rao, R. Ferrini, E. Bertino, A similarity measure for comparing XACML policies, IEEE
Knowledge and Data Engineering[J], 2013, 25(9): 1946-1959. 255
[12] M. Said, M. Shehab, S. Anna, Adaptive reordering and clustering-based framework for efficient XACML
policy evaluation, IEEE Service Computing[J], 2011, 4(4): 300-313.
[13] D. Agrawal, J. Giles, K. W. Lee, J. Lobo, Policy ratification, IEEE Policies for Distributed Systems and
Networks[C], 2005, 223-232.
[14] X. Wu, P. D. Qian, A verification for PDAC model by policy language[C], ICCSE, 2012, 14-17. 260
[15] Asela, Banking sample with XACML[OL],
xacml/, 2014.