云环境下的属性角色分配研究*

2017-09-03 09:17王静宇关宇亮
网络安全与数据管理 2017年15期
关键词:访问控制客体示例

王静宇,关宇亮

(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)

云环境下的属性角色分配研究*

王静宇,关宇亮

(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)

在云计算环境中,当资源被用户上传到服务器端后,用户就失去了对数据或资源的控制。如果云服务供应商不提供相应的保护,那么该数据就存在泄露的风险。因此,云平台会使用访问控制技术来保护用户的隐私数据。文章提出一种基于属性和角色的复合访问控制模型。该模型能够适应当前不断变化的云环境,其控制过程不会带来时间复杂度的大规模提升。同时举例论证云环境中属性策略分配时出现冲突问题应该如何解决。该研究基于前人的研究之上,这保证了方案的可行性。

访问控制;属性;角色

0 引言

本文的研究目的是设计一种访问控制模型,能够满足云计算环境对于隐私保护的相关需求。通过对云环境的分析发现,首先,当前的访问控制模型,如基于角色的访问控制(Role-Based Access Control, RBAC)模型和基于属性的访问控制(Attribute-Based Access Control, ABAC)模型在安全策略管理与判定条件及其执行方式上尤其复杂;其次,大量的用户带来了繁杂的身份认证机制;最后,权限不好监管,权限过大容易监守自盗,过小又会严重影响访问控制的效率。因此,传统的访问控制模型已经不能满足当前复杂的云环境。

近年来,许多学者将传统的模型相互结合。文献[1]凭借属性自动生成角色,并将属性判定式、许可和角色分为简单和复合两种。文献[2]将角色用属性表示,并将属性分为动态和静态分别进行判定授权。文献[3]将属性拓展到RBAC模型中,定义了角色属性,也就是主体属性并通过策略加以验证。文献[4]将属性规则结合到角色继承、用户授权、会话激活的各个部分中,并编写了权限过滤策略来得到最终可用的权限。文献[5]在ABAC中加入中心角色和动态角色,并对属性进行分层以设立等级。文献[6]在RBAC的用户角色分配中加入了主体组织属性,在角色权限分配中加入了客体公共属性,并使用全局访问控制矩阵来进行约束。但这些文献要么设计了大量的规则来满足动态的属性和角色关系,无疑模型的时间复杂度无法让人满意;要么存在策略冲突问题,流程和算法需要继续优化。这些问题正是本文要解决的。

1 复合访问控制模型

为了区分RBAC和ABAC这样单一的访问控制,使用复合访问控制(Composite Access Control, CAC)模型来命名本文的访问控制模型。如图1所示,CAC模型改进了RBAC模型和ABAC模型。它既有RBAC授权、分配灵活的特点,又能像ABAC那样适应大规模的动态性访问。

图1 复合访问控制模型图

本文将CAC模型分为两个阶段:CAC-ABAC阶段和CAC-RBAC阶段。如图1所示,本文引入了一种常用的策略描述语言XACML来搭建CAC模型。

在CAC-ABAC阶段,首先进行主体的认证。当主体来访问时,策略执行点接收主体发起的原始访问请求。然后属性权威提取主体属性和属性值,将原始访问请求转换成属性访问请求。接着,策略判定点判别原始访问请求中的属性及属性值,看能否匹配之中的规则。若匹配则分配角色;否则,拒绝该请求。策略判定点中的策略来自策略管理点,用正则表达式表示。

CAC-RBAC阶段主要分为两步,先根据主体属性分配角色,再根据角色分配权限。具体来说,如果主体的属性符合CAC-ABAC阶段的规则表达式,则有权访问,进入CAC-RBAC阶段;否则,拒绝该主体的请求。然后,给角色赋予权限。这样主体便可以进行相关操作,对客体进行访问。

2 属性角色分配与策略冲突优化

在传统的访问控制机制中,用户与角色之间的关系是多对多的。这才引发了各种角色互相矛盾的问题。一个用户可能得到多个角色是引起冲突的根源。所以在CAC模型中,本文进行了相关的改进。

2.1 属性角色分配

本文使用了用空间去换取时间的方法。具体是:通过了CAC-ABAC阶段认证的主体,都会拥有属性表达式。本文消耗了一些空间来设计角色,以达到节省时间的目的。首先对主体归类,一类主体只能匹配一个正则表达式,每个正则表达式只能分配到一种角色。也就是说,主体和角色是1∶1或N∶1的关系。此时角色部分就一定不会存在冲突。本文的重点即在于此,通过主体属性来进行属性和角色的复合设计。

图2 角色权限分配图

CAC模型之所以可以这样做,是因为模型中还设计了角色(或权限)的优先级。角色和权限的等级优先程度在某种意义上是一致的。为了确保属性与角色分配不会产生冲突,采取了如下做法:即使某个主体的多个属性符合多条规则,它最终也只能获得一个角色。角色和权限是M∶N的关系。只有给主体分配有意义的角色,并赋予其权限,访问控制才能正常进行。

如图2所示,每个角色可以拥有多种权限,每种权限也能由多个用户获得。是多对多的关系。对此本文也作出了一些优化。

2.2 示例1:试卷批改系统

示例1:一个试卷批改系统这样规定:本年级的教师不能批改本年级学生的试卷,本课程的教师才能批改本课程学生的试卷。该课程的教师组组长可以批改任一年级的试卷并且不论其在哪个年级任教。

现有:高一组语文教师A,高一组数学教师B,高二组语文教师C,D兼任高一、高二数学教师,高三组语文教师E,高三组数学教师F兼任数学教师组组长。

在本例中,拿到试卷进行批改即是访问的过程。发起访问请求的主体是教师,被访问的客体是学生的试卷。

用grade=1来代表高一,grade=2代表高二,grade=3代表高三。用course=chn来代表语文,用course=math来代表数学。用duty=teacher来表示教师,用duty=chief来表示教师组组长。

如表1所示,对于主体A,系统识别其主体属性:grade=1,course=chn,duty=teacher。给其分配角色#0001,该角色拥有访问某些客体的权限。这些客体都拥有属性:grade=2或3 且 course=chn。同理,教师B可以批改高二、高三的数学试卷。教师C可以批改高一、高三的语文试卷。

表1 试卷批改系统示例

本模型中涉及的属性不一定是一个确定的值,它可能是值域,是一个取值范围,或若干散点的集合。而对于主体D,如果提取的主体属性是grade=1,那么对应的客体属性为grade=2或3;而如果提取的主体属性是grade=2,那么对应的客体属性为grade=1或3。这时候,就要取客体属性的交集,也就是只有grade=3能被访问。在这里,D的主体属性grade的值就是由两个散点组成的集合。

对于主体F而言,他既是教师,又是教师组组长。所以提取其主体属性duty=teacher且duty=chief。如果duty=teacher,那么他可以访问grade=1和2的客体;如果duty=chief,那么他可以访问grade=1、2和3的客体。如果按上文所述,取他们的交集,即只能访问grade=1和2的客体,那显然不符合示例中的题意。为了更直观地看待,给grade=3,course=math,duty=teacher的主体属性分配角色#0006,给grade=3,course=math,duty=chief的主体属性分配角色#0007。在这里定义duty=chief的优先级高于duty=teacher,这样主体F只会获得角色#0007,获得访问主体属性为grade=1,2和3的客体。也就是可以批改高中所有年级的数学试卷。之所以这样定义优先级,因为chief相比teacher会带来更多的权限。归根究底,根本原因是grade=1,2和3能提供的权限数量是一定的,而teacher和chief允许访问的数量不同。

本文实行以空间换时间的方式来分配角色和权限。如F的情况,本文会设立#0006和#0007两个角色。这样只要多消耗很少的空间预留出这样的角色,就会让模型远离冲突带来的问题。模型会设计相应的优先级,优先将优先级高的角色分配给符合条件的主体。在本案例中,#0006角色可有可无,但应保留,而不是为了考虑空间将其删除。因为如若之后F不再是课程的教学组组长,那他还拥有教师属性,到时候就不好分配给其相应角色了。

同时,在设置角色时还要注意,不能有两个角色对应的权限完全一致。否则,可能会引发歧义,诱发一些误操作。而且,这也浪费了空间,造成了冗余。

在CAC-ABAC阶段,需要匹配属性是否满足策略规范。由前文所述,判定属性是否符合相关正则表达式,来决定其是否能进行访问控制。而正则表达式中的属性可能并不是若干个散点,而是某一段区间都符合。这对于判定属性并分配角色产生了歧义。又因为云环境下的属性经常进行变动,如每个月完成的项目个数和类别;有些却保持不变,如经营某一片区工作的员工:他的项目工作地点可能不变。因此,将属性分为动态属性和静态属性。动态属性是一段值域、区间,如年龄18岁~25岁。而静态属性则表示为一个或一些散点,如工作地点为福州或厦门。下面通过示例2来进一步说明其中的设定。

2.3 示例2:文件管理系统

示例2:现有一个文件管理系统,该系统允许企业中的员工访问其中的文件,但受到访问控制约束。受约束的属性可能有所属部门(Department)、职位等级(Job Level)、岗位名称(Duty)、工作年限(Seniority)、资格证书(Qualification Credential, QC)。

如表2所示,如果访问者的主体属性为人力资源部、职位等级为10级、工龄在3~5年之间,可以得到角色#0001。他会拥有修改文件1和读取文件2的权限。而访问者的主体属性如果为信息部、15级职位等级、岗位是管理员、工龄在6~8年间、拥有红帽资格证书就可以得到角色#0002,拥有文件1的读取、修改权限和文件2的读取、修改、删除权限。由于CAC模型支持细粒度的策略制定,所以只需两项规则、两个角色就可以满足访问控制的需求。下面对比传统的RBAC模型,来分析CAC模型在角色预设空间方面的优势。

表2 CAC模型属性权限关系表

在传统RBAC模型中,由于不支持细粒度的访问控制,所以需要这样设计角色权限的分配。

如表3所示,用户如果满足条件:来自HR部门、职位等级10级、工龄3年,可以获得角色#0001;来自HR部门、职位等级10级、工龄4年,可以获得角色#0002;来自HR部门、职位等级10级、工龄5年,可以获得角色#0003。但角色#0001、#0002、#0003的权限都是修改文件1和读取文件2。下面的角色#0004、#0005、#0006也都对应同样的权限。由于RBAC不能够像CAC这样支持某段范围内的细粒度访问,所以只能消耗更多的角色,事倍功半。CAC只需两个角色或规则就可以完成的功能,RBAC需要6个。因此,CAC模型可以减少角色的设计数量和空间占有量。如果云环境下的授权规则更加复杂,那么CAC模型的优势将显著提升。

表3 RBAC模型用户权限关系表

3 结论

针对云环境下的安全问题和隐私问题,设计了一种适用于云环境的复合访问控制模型。它结合了传统的RBAC模型和ABAC模型,并在两者的基础上进行了改进,以更紧密地发挥两者的协同作用。本文的复合访问控制先提取主体的属性进行判断。若符合相应的规则判定表达式,则给其分配唯一的角色。为了解决传统访问控制模型中出现的冲突问题,本文通过设计优先级的方式,配合多对一的主体角色分配关系,从源头上解决该问题。同时,对于策略冲突的优化本文也给出了示例加以分析,证明了其优越性。

[1] 崔健. 一种基于属性角色的访问控制模型研究与实现[D]. 武汉:华中科技大学, 2011.

[2] 卞一茗. 基于混合属性的访问控制模型研究[D]. 南京:南京邮电大学, 2012.

[3] 李唯冠, 赵逢禹. 带属性策略的RBAC权限访问控制模型[J]. 小型微型计算机系统, 2013, 34(2):328-331.

[4] 熊厚仁,陈性元,费晓飞,等.基于属性和RBAC的混合扩展访问控制模型[J].计算机应用研究,2016,33(7):2162-2169.

[5] ANUDEEP L, KUSHAL C. Implementing flexible data access control for cloud storage using ABAC with RBAC[J].MASK International Journal of Science and Technology, 2016, 1(2):12-17.

[6] 李阳,刘更,王海伟.协同开发环境中基于角色和属性的访问控制模型[J].计算机集成制造系统,2014,20(6):1335-1341.

Research on attribute and role assignment in Cloud environment

Wang Jingyu, Guan Yuliang

(School of Information Engineering, Inner Mongolia University of Science and Technology, Baotou 014010, China)

In the Cloud computing environment, the user loses control of the data or resource when they are uploaded to the server. If the Cloud service provider does not provide the appropriate protection, the data takes the risk of disclosure. Therefore, the Cloud platform uses access control technology to protect the user′s privacy data. This paper combines attributes with roles to design a composite access control model. The model can adapt to the large-scale dynamic access. The number of determination conditions will not increase exponentially with the increasing number of users. This paper also demonstrates how to solve the conflict problem when the role is distributed to user by attribute policy. The research of this paper is based on previous studies, which ensures the feasibility of the program.

access control; attribute; role

国家自然科学基金(61462069,61662056);内蒙古自治区自然科学基金(2015MS0622,2016MS0609)

TP393

A

10.19358/j.issn.1674- 7720.2017.15.002

王静宇,关宇亮.云环境下的属性角色分配研究[J].微型机与应用,2017,36(15):5-7,11.

2017-04-12)

王静宇(1976-),男,博士,副教授,主要研究方向:云计算、信息安全。

关宇亮(1993-),男,硕士,主要研究方向:云计算。

猜你喜欢
访问控制客体示例
符号学视域下知识产权客体的同一性及其类型化解释
2019年高考上海卷作文示例
常见单位符号大小写混淆示例
常见单位符号大小写混淆示例
“全等三角形”错解示例
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
行动语义、客体背景和判断任务对客体动作承载性的影响*