ABAC中基于前缀标记运算的策略检索方法
2015-12-23邹佳顺张永胜
邹佳顺,张永胜+
(1.山东师范大学 信息科学与工程学院,山东 济南250014;2.山东师范大学 山东省分布式计算机软件新技术重点实验室,山东 济南250014)
0 引 言
在访问控制技术[1]被提出的几十年里,多种访问控制模型被相继提出,如自主访问控制 (discretionary access control,DAC)、强制访问控制 (mandatory access control,MAC)、基于角色的访问控制 (role-based access control,RBAC)等众多访问控制模型[2-4]。近年来,基于属性的访问控制 (attribute based access control,ABAC)由于能解决复杂信息系统中的细粒度访问控制及大规模用户动态扩展问题逐渐成为研究的热点。ABAC 模型通过对主客体以及环境的属性值分析,实现细粒度授权,同时ABAC 模型有着XACML (extensible access control markup language,XACML)框架以及SAML (security assertion markup language,SAML)的支持,在具体实施及单点登录方面也有着较好的应用前景[5,6],但正由于ABAC 模型的高度授权灵活性导致其策略管理的困难。本文针对传统ABAC 模型中检索策略效率较低的问题,提出一种基于前缀标记运算的策略检索方法。
1 相关工作
关于访问控制中的策略问题研究目前有很多,但其中与策略检索方法的相关研究很少。马晓普等对访问控制中的策略分类方法进行研究,提出了一种分类方法[7]。李瑞轩等对访问控制模型中的策略冲突问题进行研究,其中用于检测和解决策略冲突的方法概括为3种:基于优先权法、基于描述逻辑法和基于图论法[8]。黄廷森等提出了一种扩展的基于ABAC 的策略合成代数来实现安全策略的合成,并结合了一种新的策略合成算子实现访问控制策略的合成[9]。本文通过对ABAC 模型中决策过程进行研究,在传统ABAC模型中,每次授权都需要将属性信息与策略集中的策略进行一一对比。当需要分析的属性数目过多时,对策略集中每条策略的分析时间也会相应延长,这将大大降低系统的运行效率。尤其是随着近年来云计算技术的迅速发展,大规模用户群逐渐成为云环境下的访问控制系统中的典型特征,低效率的策略检索将会降低系统的服务效率与用户的体验。因此,本文通过研究属性的存储方式,引入前缀标记等相关概念实现高效率的策略检索操作。
2 ABAC模型相关理论
2.1 ABAC模型基础定义
ABAC模型通过实体属性实现对用户权限的细粒度控制及决策操作。ABAC 模型中的实体属性包括主体属性、客体属性以及环境属性3种。对于ABAC 模型中的基础概念,本文沿用以往文献的相关定义[10]。
定义1 实体属性是描述实体固有特征的变量。可以抽象化为二元组A (name,Ran)。其中name和Ran分别表示属性的名称和取值范围。本文用SA、OA、EA 分别表示主体属性、客体属性和环境属性。
定义2 ABAC 可以抽象化为一个四元组U (SA,OA,EA,P)。其中P 表示权限集合。集合 {SA,OA,EA}代表ABAC模型中所有属性的集合。
2.2 基于XACML框架的ABAC决策模型
XACML是OASIS制定的基于XML 标准的一种通用的用于保护资源的策略语言和访问决策语言。传统ABAC模型可以实现在XACML框架下的决策授权。
图1是XACML框架下的授权决策模型,PIP (策略信息点)收集属性SA、OA、EA,通过上下文处理器将相关信息传送至PDP (策略决策点)。PDP通过将属性信息与策略集中的策略一一对比,最终确定合适的策略,并作出相应授权。授权信息传送至PEP (策略执行点),完成对资源的相应操作。
图1 XACML决策模型
2.3 ABAC中的查询策略
由于ABAC模型通过属性值的范围描述策略的条件,因此在查询过程中也存在着一定的困难。
表1是ABAC模型中的部分策略集,其中英文字母a、b、c、d、e、f、g、h、i、j、k、l、m 代表属性值。符号op∈ {read,write…}表示用户操作,sign∈ {+,-}表示授权符号。
表1 ABAC中部分策略集
当用户申请对资源的访问时,与该用户相关的属性信息会被进行分析,并与策略集中的策略进行对比。通常传统ABAC模型中的策略分析是指对策略集中的每条策略进行遍历,判断用户相关属性信息是否符合该条策略,若符合则为之授予相应权限。这种检索方式的缺点是效率低下。主要是由于对每条策略进行分析时,都需要细粒度地对该策略中的属性进行分析,最坏的情况下,该条策略最后一个属性与该用户已有属性不符,因此可能需要对该条策略的十几个甚至几十个属性进行一一比较后才会发现该条策略不符合要求。而在云环境中的大型策略库中可能存储成千上万条,甚至十几万条策略,这种检索方式会大大降低系统的效率。
3 基于前缀标记运算的策略检索
为提高系统的策略检索效率,本文引入前缀标记的相关概念。本文要求属性库中所有属性排列都存在一定的顺序。
在传统访问控制模型中,属性集中的每个属性虽然有着自己的序号,但该序号并没有太多的意义,仅是为了便于存储而设置的ID 号。本文中属性的序号有着特殊的意义,前缀标记的定义也是建立在属性序号的基础之上。表2是ABAC模型中的部分属性集。
表2 ABAC模型属性集
如表2所示,本文规定每个属性都有着自己的ID 号,且在属性存储表中,ID 号应从0进行编号以便于后续检索操作。
定义3 前缀标记是用来表示属性分配情况的二进制字符串,本文用符号PS (prefix sign,PS)表示。根据属性集中的属性ID 号,为策略集以及访问用户生成相应的前缀标记,用以标记某条策略或某用户所拥有的属性集合并通过逻辑或运算实现对策略的高效检索。
定义4 可能满足的策略是指在该策略中的属性与用户访问系统时系统收集的属性完全相同的策略。
如图2 所示,前缀标记共由n 位组成,其中n 为ABAC模型中所有属性的个数。前缀标记每位取值为0或1,其中0代表不包含该属性,1 表示含有该属性。因此,策略集中的每条策略以及用户属性信息均可以表示为前缀标记的形式。
图2 前缀标记
以表1策略集为例,假设策略集中的7种属性的ID 号与其下标相同,且模型中所有属性只有这7 种,即与表2对应的n取值为7。则该策略集引入前缀标记后可以表示为表3,策略部分此表中省略。
表3 采用前缀标记的策略表示
图3是引入前缀标记后,本文针对XACML 框架中的PIP模块与PDP模块进行的改进。
图3 部分框架改进
其中,PIP与PDP模块中分别添加了支持前缀标记的PS模块。PIP将主客体、环境属性信息收集后,由PS 模块生成相应的前缀标记 (可称为原始前缀标记),并与属性一起送至PDP。PDP中的PS模块通过对前缀标记的分析,将其与策略集中策略的前缀标记依次进行逻辑或运算,其中运算结果与原始前缀标记相同的策略即为可能满足的相关策略,再将属性信息与该策略进行比较分析。本文将通过用户实例,进一步分析策略检索过程。
假设用户U 被分配主体属性Att0、Att1,且客体属性为Att3、Att4,环境属性为Att5、Att6。系统的策略集如表3所示,则当用户向系统发出访问请求时,策略检索过程可以分为以下几步:
步骤1 SA (Att0,Att1)→PIP;OA (Att3,Att4)→PIP;EA (Att5,Att6)→PIP。表示所有授权属性信息被收集到策略信息点。
步骤2 PS Module→Create PS;PS=1101111。表示PS模块根据收集的属性信息以及属性的ID 号生成原始前缀标记1101111。
步骤3 (SA,OA,EA,PS)→PDP。表示属性信息与原始前缀标记一起被送到策略决策点。
步骤4 1101111||1001010=1101111;Query;P1 1101111||1001001=1101111;Query;P2 1101111||0110101=1111111≠1101111;Return;
表示将原始前缀标记与每条策略的PS进行或运算,若得出的值仍为原始前缀标记值则该策略是可能满足的策略,系统将对此策略进行查询,直到对所有策略的前缀标记运算完成后返回。由上述运算结果可知,该用户可能满足的策略为P1、P2。
4 仿真实验及性能分析
为测试基于前缀标记运算的检索算法的效率与空间消耗问题,本文在Windows XP 平台上利用Java语言编写测试代码,分别测试了传统ABAC 模型中检索可能满足的策略的效率与基于前缀标记法的检索效率。硬件环境为Pentium (R)Dual-Core 1.73 GHz,1 GB 内存,并使用Matlab7.0作为数据分析软件。本文为用户分配主客体、环境属性各一个,策略集中每条策略均是5种属性,通过增加策略数目测试两者的检索效率。其中,使用传统检索算法的部分核心代码如下:
本文只考虑检索可能满足策略的效率问题,暂不考虑对策略进行分析所耗用的时间,因此本文令程序中的用户不满足策略集中的所有策略。通过逐渐增加策略数目,并取10次实验的平均数值得到时间消耗结果如图4,图5为两种检索算法的空间消耗比较。
图4 时间消耗比较
图5 空间消耗比较
图4中的最好情况是指使用传统检索算法进行检索时,策略中的第一个属性不存在于用户拥有的属性中,此时直接检索第二条,耗费的时间也最少。最坏情况是指当检测到最后一个属性时才发现该策略不是可能满足的策略。平均情况是取两种情况的平均值。通过对图4及相关代码的分析可知,本文提出的基于前缀标记运算的策略检索方法时间消耗主要来源于Java中进制之间的转换,且与传统方法相比具有更高的效率。图5则表示出本文算法在空间消耗方面的优势。
综上所述,本文提出的基于前缀标记运算的策略检索算法与传统检索算法相比具有高效率、低消耗的优点。
5 结束语
ABAC模型是一种灵活性强、细粒度控制的访问控制模型,能够实现对用户权限的灵活限制,同时保障数据信息的安全性。但在保障数据安全性的同时提高访问控制系统的性能也至关重要,ABAC 模型中的策略检索效率问题是影响着访问控制系统性能的重要因素之一,本文提出的基于前缀标记运算的策略检索方法通过对前缀标记的逻辑或运算实现对可能满足的策略的快速定位。仿真实验结果表明,本文提出的检索方法在ABAC 模型中具有高效、低耗的优点,大大减少了传统策略检索中所耗费的时间,并且在实现方面,有着XACML框架等技术的有力支持。
[1]WANG Xiaoming,FU Hong,ZHANG Lichen.Research progress on attribute-based access control[J].Chinese Journal of Electronics,2010,38 (7):1660-1667 (in Chinese). [王小明,付红,张立臣.基于属性的访问控制研究进展 [J].电子学报,2010,38 (7):1660-1667.]
[2]ZHAO Jing,YANG Rui,JIANG Luansheng.RBAC permission access control model based on data objects[J].Computer Engineering and Design,2010,31 (15):3353-3355 (in Chinese).[赵静,杨蕊,姜滦生.基于数据对象的RBAC权限访问控制模型 [J].计算机工程与设计,2010,31 (15):3353-3355.]
[3]ZHAO Weidong,BI Xiaoqing,LU Xinming.Design and implemention of fine-grained RBAC model[J].Computer Engineering and Design,2013,34 (2):474-479 (in Chinese).[赵卫东,毕晓清,卢新明.基于角色的细粒度访问控制模型的设计与实现[J].计算机工程与设计,2013,34 (2):474-479.]
[4]WEN Junhao,ZENG Jun,ZHANG Zhihong.Security policy of attribute-based access control in SOA [J].Journal of Computer Science,2010,37 (9):147-150 (in Chinese). [文俊浩,曾骏,张志宏.SOA 中基于属性的访问控制安全策略[J].计算机科学,2010,37 (9):147-150.]
[5]GAI Xinmao,SHEN Changxiang,LIU Yi,et al.Formal model for attribute-based access control via constraint satisfac-tion problem [J].Journal of Chinese Computer Systems,2011,32 (11):2217-2222 (in Chinese). [盖新貌,沈昌祥,刘毅,等.基于属性访问控制的CSP模型 [J].小型微型计算机系统,2011,32 (11):2217-2222.]
[6]LU Jianfeng,LIU Huawen,WANG Duoqiang.Classification method for access control policies[J].Journal of Wuhan University of Technology (Information & Management Engineering),2011,33 (6):878-882 (in Chinese).[鲁剑锋,刘华文,王多强.访问控制策略的分类方法研究 [J].武汉理工大学学报,2011,33 (6):878-882.]
[7]MA Xiaopu,LI Zhengyan,LU Jianfeng.Research on specification language and policy conflict of access control policy [J].Computer Engineering &Science,2012,34 (10):48-52 (in Chinese).[马晓普,李争艳,鲁剑锋.访问控制策略描述语言与策略冲突研究[J].计算机工程与科学,2012,34(10):48-52.]
[8]LI Ruixuan,LU Jianfeng,LI Tianyi,et al.An approach for resolving inconsistency conflicts in access control policies [J].Chinese Journal of Computers,2013,36 (6):1200-1223 (in Chinese).[李瑞轩,鲁剑锋,李添翼,等.一种访问控制策略非一致性冲突消解方法 [J].计算机学报,2013,36 (6):1200-1223.]
[9]HUANG Tingsen,YE Chunxiao,HU Haibo.Study on composing attribute-based access control policies in grid [J].Journal of Application Research of Computers,2011,28 (7):2683-2686 (in Chinese).[黄廷森,叶春晓,胡海波.网格环境下基于属性的访问控制策略合成研究 [J].计算机应用研究,2011,28 (7):2683-2686.]
[10]CHENG Xiangran,CHEN Xingyuan,ZHANG Bin,et al.Attribute-based access control policy model[J].Journal of Computer Engineering,2010,36 (5):131-133 (in Chinese).[程相然,陈性元,张斌,等.基于属性的访问控制策略模型 [J].计算机工程,2010,36 (5):131-133.]