清华大学 网络科学与网络空间研究院, 北京 100084
收稿日期:2017-05-11
基金项目:国家自然科学基金资助项目(61432009,61462009);教育部博士学科专项基金资助项目(20130002110058);国家“八六三”高技术项目(2015AA015601)
作者简介:王于丁(1984-), 男, 博士研究生
通信作者:杨家海, 研究员, E-mail:yang@cernet.edu.cn
摘要:云计算具有开放性、共享性和弹性等特点,这使得传统的访问控制模型不再适应云计算中大规模用户对海量数据灵活动态的访问控制。针对这一不足,该文从云计算实体的属性角度出发,提出一种基于角色和属性的云计算数据访问控制模型,该模型在基于角色的访问控制模型基础上为相关实体引入了属性元素,用户能够通过自身和所在租户的属性及当前的状态分配角色,从而访问不同属性的数据;对该模型进行了详细的设计,阐述了工作流程,并做了安全性证明和综合分析。结果表明:该模型能够在云计算环境下,为用户访问数据提供动态、安全、细粒度的访问控制保障。
关键词:云计算访问控制模型属性角色访问权限
Data access control model based on data's role and attributes for cloud computing
WANG Yuding, YANG Jiahai
Institute for Network Sciences and Cyberspace, Tsinghua University, Beijing 100084, China
Abstract: The key cloud computing characteristics, such as data openness, elasticity, and sharing, complicate data access control. Traditional access control models cannot provide flexible, dynamic access control to large numbers of users with massive data files. This paper presents a data access control model based on the data's role and attribute for cloud computing. An attribute element is assigned to the data to provide role-based access control so that users can be assigned roles based on their own attributes and the tenant's attributes and current status, and can access data with different attributes. The paper illustrates the design of this model and the work processes and provides a theoretical security analysis. The results show that the model can provide dynamic, safe, fine-grained access control for users accessing data in a cloud environment.
Key words: cloud computingaccess control modelattributeroleaccess permission
访问控制技术[1-4]是云计算安全技术中最重要的一环。由于云计算环境的开放性、弹性和共享性,数据在云平台中面临如下问题[5-6]:一旦将数据置于云端,数据提供者将完全失去对数据的控制,数据的安全性和隐私将面临来自云平台内外多方面的威胁;由于云平台环境复杂,云平台会根据实时需求进行动态资源供给,用户属性和所处环境的变化都会导致访问控制的策略动态变化,需要更加细粒度、动态的访问控制机制。云计算的架构采用多租户模式,用户以租户的形式访问云平台,使得访问效率大大提高,更加符合开放式弹性化的云计算环境。上述特点使得传统的访问控制,如基于角色的访问控制(role-based access control, RBAC)等模型就不能很好地适应云计算环境。
为此,国内外****对云计算环境下的访问控制模型进行了研究,并在已有的访问控制模型基础上设计了一些比较合理的云计算访问控制模型。目前这一方面的研究主要集中在下面几类:1)基于属性的云计算访问控制模型。基于属性的访问控制(attribute-based access control,ABAC)[7]能根据用户、资源、环境以及操作等属性制定访问控制,较为灵活,但是ABAC的“属性”和云计算中用户等实体的真实属性不是一个概念,它不能根据用户职能的划分对用户的权限进行抽象,导致权限管理繁琐。文[8-9]主要研究了ABAC和RBAC的结合,但都没应用到云计算中;文[10-12]都能够在RBAC基础上考虑属性因素,分别以时间和空间作为限制访问的条件,但属性较为单一,与实际情况不符。2)基于行为的云计算访问控制模型。文[13]重点研究基于行为的云计算访问控制模型,将行为(角色、时态、环境)共同作用在主体上进行授权,此方法能够很好地刻画复杂环境,但描述不太准确,忽略了客体实体;文[14-15]能够将行为特性加入到访问控制模型中,但没有对云计算环境进行更细致地分析和描述,距离真实的云计算环境还有差距,不太实用。3)基于多租户的云计算访问控制模型。因为多租户的存在导致了访问模式的改变,所以研究多租户的访问控制模型很有意义[16]。文[17-18]将租户涉及到的角色、授权、信任等问题进行了详细的描述,但是模型较为简单,缺乏对云内的数据的访问控制,权限不易管理。
综上,在研究云计算中数据的访问控制模型时,对云计算特点考虑较单一,不能更全面综合考虑云计算对访问控制带来的影响,从而导致顾此失彼,不能够更好地解决问题。本文以RBAC模型为基础,提出了基于角色和属性的云计算数据访问控制(data access control based on role and attribute, DACRA)模型,该模型模拟了云计算中用户访问数据的真实场景,加入了租户实体,给相关实体引入属性元素,通过状态机理论对模型进行了安全性证明和综合性能分析,结果表明:DACRA模型能够在云计算环境下提供动态、安全、细粒度的访问控制,使用户通过相关的多层次属性来访问云中的数据。
1 DACRA模型在云计算环境中,用户和数据提供者之间没有直接的关系,用户要通过自身的属性获得相应的权限,并且云计算环境是一个动态的环境,用户所处的环境、时间、物理位置等信息都会对其所对应的角色产生影响。
1.1 设计思想DACRA模型的主要设计思想如下:1)引入实体的“属性”元素。对实体的属性进行形式化之后,用户就能够根据自身的属性、所处的状态、安全等级等方面获得角色,能够保证在复杂的云计算环境中更细粒度、更动态、更安全地进行访问控制。2)将租户与用户分开。因为在云计算里用户是通过租户的形式来访问云资源的,并且租户作为一个逻辑实体,也拥有自己的相关属性,当用户进入云平台后,用户就要寄宿在一个租户中,两者的属性将同时影响角色的分配。3)为保证系统模型的正常运行,假设:凡是能参与本系统的用户和数据提供者,均已通过云平台的合法认证,并且所有通信线路都是安全的,不存在监听、伪造等恶意攻击。此假设主要是保证不会由于云平台的不安全而影响模型的正常工作,模型本身的安全性将在节4进行证明。模型描述如图 1所示。
图 1 DACRA模型 |
图选项 |
DACRA模型由3部分组成:7个实体和云平台(CSP)、5个实体属性和10个实体间的关系(单箭头和双箭头分别代表“1”和“多”的关系)。
1.2 实体实体是云计算平台中的实际参与访问控制的集合,其含义如表 1所示。
表 1 DACRA模型实体描述
集合 | 实体及其含义 |
U | 云用户集合: U={U1, U2, …, Un},Ui表示云计算中的某一用户 |
N | 租户集合:N={N1, N2, …, Nn},Ni表示云计算中的某一租户 |
O | 数据提供者集合:O={O1, O2, …, On},Oi表示云计算中的某一数据提供者 |
D | 数据集合:D={D1, D2, …, Dn},Di表示云计算中的某一数据 |
R | 角色集合:R={R1, R2, …, Rn},Ri表示云计算中的某一角色 |
P | 权限集合:P={P1, P2, …, Pn},Pi表示云计算中某一权限;P有2个值,ro(读权限)和wr(写权限),wr有增删改3种操作,且包含ro |
E | 会话集合:用户与激活角色之间的对应映射,一个用户可以关联多个会话,但一个会话只能属于一个用户,一个会话可以映射多个角色 |
表选项
1.3 属性属性AT是指实体与访问控制策略相关的某些特征的集合。实体用户、数据提供者、租户、角色、数据都有自己的不同子属性集,所有子属性集构成了该实体的AT,实体的某个属性表示方法为:实体. a/s/t/l。
1) 固有属性A:用户、数据提供者、租户和数据都有其固有属性,表示该实体自身存在的属性,记为(属性名,运算符,属性值),如u.a=(age>30),n.a=(name=manager)。
2) 安全等级S:用户和数据有安全等级,用户保证访问数据的机密性。规则为如果u.s≥d.s,则权限中p=ro;如果u.s>d.s,则p=wr;其他情况下p=0,用户不能访问数据。
3) 时间T:时间是角色的一个属性集,表示该角色所处的时间,系统可以通过制约相关的时间信息来限制用户的权限,如用户在工作或休息时间或某特殊时间段等所获得的权限是不同的。
4) 位置L:位置是角色的一个属性集,表示该角色所处的位置,包含物理位置、虚拟位置、网络位置等。系统可以通过制约相关的位置信息来限制用户的权限,如用户在单位内外、在总部和分部等所获得的权限是不同的,位置信息可以通过GPS信息或者网络IP地址信息等方式获得。
5) 属性运算符(∧, ∨, ~):属性运算符用于连接属性。~表示取反,如果一个属性取值满足AT,则它不满足~AT;∧表示与,如果一个属性取值满足AT1和AT2,则它满足AT1∧AT2;∨表示或,如果一个属性取值满足AT1或AT2,则它满足AT1∨AT2。
1.4 实体间的关系各实体之间的关系如表 2所示,通过关系集合,可以将各个实体集合连接起来,从而实现实体中的元素之间的操作。比如用户ui要接入到租户ti,先将ui和ti放入相应的实体集合U和T中,这样元素的操作就转变为集合的操作,再通过实体间的关系计算出UN,这时ui和ti就转换为集合UN的元素。其中属性和角色的对应关系atro(at)是DACRA模型的核心关系,它表示某属性到其相应的角色的映射,如小于18岁大于12岁的角色为中学生:atro(age=(12, 18)) =中学生。用户要通过此关系由属性获得相应的角色,进而来访问相应的数据资源,实现访问控制。
表 2 DACRA模型关系描述
名称 | 关系及含义 | 表示 |
UN | 用户租户关系UN?U×N | 表示多对多的每个用户到其所在的租户关系 |
UA | 用户角色分配UA?U×P | 表示多对多的用户到角色的分配关系 |
NA | 租户角色分配NA?N×P | 表示多对多的租户到角色的分配关系 |
OD | 数据从属关系OD?O×D | 表示一对多的数据提供者和所提供数据的关系 |
OA | 数据提供者角色分配OA?O×P | 表示多对多的数据提供者到角色的分配关系 |
PA | 角色权限分配PA?P×R | 表示多对多的角色到权限的分配关系 |
RH | 角色继承RH?R×R | 表示角色集合R上继承的偏序关系,记作“≥” |
user(e) | 会话user(e:E)→U | 表示将会话ei映射到单个用户user(ei)的函数,会话生命期内保持不变 |
roles(e) | 会话roles(e:E) →2R | 表示将会话ei映射到角色集合roles(ei)的函数。函数role(ei)?{r| |
atro(at) | 属性角色对应关系atro(at:AT) →r | 表示将属性ati映射到相应的单个角色atro(ati)的函数,含义是某属性对应某个角色 |
表选项
2 DACRA模型管理函数在DACRA模型运行的过程中,管理员要通过管理函数对模型的实体进行有效的管理,只有对模型的各个实体做到高效、系统和严格的管理,才能发挥模型最大的控制效能,以保障数据的安全性和机密性,同时保持云平台的开放性和共享性。DACRA模型管理函数主要分为两大类:一类是只涉及到用户和租户的函数;另一类是涉及到角色和权限的函数,这一类函数本文命名为F1~F7,作为状态转移规则来证明模型的安全性。DACRA模型的管理函数表示如下。
1) addUser(u, n):把用户加入相应的租户中。
条件:(u, n)?UN∧n∈N.
????UN′=UN∪{(u, n)};
操作:U′.A=U.A∪{u.a};
????U′.S=U.S∪{u.s}.
2) deleteUser(u, n):把用户从相应的租户中移除。
条件:(u, n)∈UN.
????[?(u, n)∈UN, ?r∈{r|r=atro(n.a)}
????
操作:UN′=UN\{(u, n)};
????U′.A=U.A\{u.a};
????U′.S=U.S\{u.s}.
3) addTenant(n, r):把租户加入云平台中并分配角色。
条件:n?N∧r=atro(n.a).
????N′=N∪{n};
操作:N′.A=N.A∪{n.a};
????NA′=NA∪{(n, r)}.
4) deleteTenant(n):把租户从云平台中移除。
条件:n∈N.
????[?n∈N, ?r∈{r|r=atro(n.a)}
????NA′=NA\{(n, r)}];
操作:[?(u, n)∈UN
????N′=N\{n};
????N′.A=N.A\{(n.a)}.
5) F1=addRole(r):添加角色。
条件:r?R.
????T′=T∪{t}(if r.t?T);
操作:L′=L∪{l}(if r.l ?L);
????R′=R∪{r}.
6) F2=modifyRole(r, r′):修改角色。
条件:r∈R∧r′?R.
操作:
????T′=T∪{t}(if r.t?T);
????L′=L∪{l}(if r.l?L);
????[?(n, r)∈NA
????[?(u, r)∈UA
????[?(p, r)∈PA
????[?(o, r)∈OA
????????R′=R\{r}∪{r′}.
7) F3=deleteRole(r):删除角色。
条件:r∈R.
????[?(n.r)∈NA
????[?(u.r)∈UA
操作:[?(p.r)∈PA
????[?(o.r)∈OA
????R′=R\{r}.
8) F4=assignUser(u, n, r):给用户分配相应的角色。
条件:(u, n)∈UN∧n∈N∧(u, r)?UA.
?????r=atro(u.a∧n.a∧r.t∧r.l);
操作:UA′=UA∪{(u, r)}.
9) F5=revokeUser(u, n, r):给用户撤销角色。
条件:(u, n)∈UN∧n∈N∧(u, r)∈UA
????∧r≠atro(u.a∧n.a∨r.t∨r.l).
操作:UA′=UA\{(u, r)}.
10) F6=assignPerm(r, p, d):给角色分配相应的权限。
条件:(p, r)∈PA∧r=atro(d.a).
操作:PA′=PA∪{(p, r)}.
11) F7=revokePerm(r, p, d):给角色撤销权限。
条件:(p, r)∈PA∧r≠atro(d.a).
操作:PA′=PA\{(p, r)}.
3 DACRA模型工作流程在DACRA模型实现过程中,系统对用户访问数据的控制有3个因素:一是用户的固有属性u.a和租户的属性n.a,通过属性能够分配到相应的角色和权限;二是角色的时间属性r.t和位置属性r.l,在不同状态下所得到的权限也不相同;三是用户的安全等级u.s和数据的安全等级o.s,二者决定数据的安全程度与访问权限。通过UA把用户和和角色关联起来,并通过PA分配客体的访问权限完成访问控制。
图 2为用户访问数据流程图。数据提供者oi给数据di设置权限di.a,加密并上传至CSP,当用户ui接入云平台时,首先需要通过CSP的认证,如果认证成功,则根据需要调用用户访问数据算法(Access(u, d, CSP),算法1)和修改用户权限算法(ModifyPer(u, d, CSP),算法2),没有通过认证则强行退出;如果当用户ui调用Access(u, d, CSP)能够成功执行,用户ui访问数据di,若算法没能够成功执行(比如用户ui的属性没能匹配到相应的角色ri等),用户ui不能访问数据di;如果用户ui调用ModifyPerm(u, d, CSP)的结果权限p≠0,用户ui用新的权限访问数据di,否则用户ui不能访问数据di。
图 2 用户访问数据流程 |
图选项 |
算法1(见图 3)为用户访问数据算法,当用户加入云平台时,云平台得到用户的时间和位置信息,管理员设置用户和数据的安全等级,并将用户加入到某租户中;根据找到所有属性所对应的角色,并将角色分配给用户,同时将权限分配给角色;用户根据分配到的角色和安全等级访问数据。
图 3 算法1 |
图选项 |
算法2(见图 4)为修改用户权限算法。当用户在云平台中的权限发生变化时,就要修改访问数据的权限。当用户属性、租户属性、用户状态发生变化时,需要通过相应的管理函数修改用户的权限;如果是用户离开云平台、角色属性删除时,取消用户的访问权限;如果安全等级关系发生变化时,权限也要进行相应的修改。
图 4 算法2 |
图选项 |
4 DACRA模型安全性证明4.1 理论基础与证明思路DACRA模型安全性分析的理论基础是RBAC模型的基本安全问题,主要包括2个方面[19]:1)简单安全问题(simple safety),又称可达性问题。主要分析是否存在某一状态,该状态下存在不可信用户包含在对指定资源具有访问权限的用户集中的情况,否定回答表示系统是安全的。该定义用于判断是否存在某一状态,未授权的不可信用户能够访问指定资源,即是否存在权限泄露。2)简单可用性问题(simple availability)。该定义分析在所有可达的系统状态中,用户是否总是可以访问指定资源,肯定回答表示系统是安全的。该定义判断系统的任意可达状态中,用户是否总能够访问目标资源,即任意授权用户总是可以使用被授予的访问权限访问指定资源,强调资源访问权限的可用性。
本文采用状态机模型证明DACRA模型的安全性。状态机模型将系统描述为一个抽象的数学状态机器[20],通过描述影响系统安全的各种变量和规则,来确保系统保持和满足安全状态不变式。其中,状态变量表示机器的状态,转换函数或者规则表示状态变量的变化过程。状态机安全模型通过证明初始状态是安全的,并且所有的状态迁移规则也都是安全的,保证此时不论执行任何规则,系统都将保持在安全状态(见图 5)。
图 5 状态转换 |
图选项 |
4.2 基本定义与转换系统根据DACRA模型,结合状态机模型理论,给出状态转换系统的定义。
定义1??状态转换系统。DACRA模型的状态转换系统定义为Σ= (Θ, Ψ, m0, M),其中:M为模型状态集合;m0为模型初始状态,m0∈M;Θ为操作事件集合,θ∈Θ;Ψ为系统状态转移规则,Ψ:Θ×M→M′,Ψi(θ, m)=m′,表示在状态m下,给定操作事件θ,Ψi决定系统产生的下一个状态为m′,Ψ对应模型的管理规则集为节2.2所示的管理函数中涉及到角色与权限的F1~F7。
定义2??系统状态。系统Σ的状态m(m∈M)表示当前系统各个实体和实体间各个关系的值的集合,定义为m=(G1, G2)。其中:G1=(U, N, O, R, P, D),G1为实体元组,包括实体的各个属性,初始状态均为空集Φ;G2=(UN, UA, NA, OD, ON, PA, RH, atro(at)),G2为关系集,初始状态均为空集Φ。
定义3??安全状态不变式。系统Σ的某一状态m是安全的,记为safe(m),acce(u)=d表示某个用户能够访问某个数据,当且仅当m满足以下条件:
$ 1)\ \urcorner \exists \left( u, d \right)\left( \left( u, d \right)\in m\wedge p\left( u \right)\notin P \right)\to {\rm{acce}}\left( \mathit{u} \right)=\mathit{d}, $ | (1) |
$2)\ \forall \left( u, d \right)\left( \left( u, d \right)\in m\wedge p\left( u \right)\in P \right)\to {\rm{acce}}\left( \mathit{u} \right)=\mathit{d}, $ | (2) |
定义4??状态转移的安全性。当且仅当
$ \begin{align} &\left( \forall \psi \right)\left( \forall \theta \right)\left( \forall m \right)(\left( \psi \in \mathit{\Psi } \right)\wedge \left( \theta \in \mathit{\Theta } \right)\wedge \left( m\in M \right)\wedge \\ &\left( \psi \left( \theta, m \right)=m \right)\wedge (\rm{safe}\left( \mathit{m} \right)))\to (\rm{safe}\left( \mathit{m} \right)). \\ \end{align} $ |
定义5??系统安全性。当且仅当初始状态m0是安全的,且状态转移规则是安全保持时,系统Σ是安全的。
4.3 安全性证明定理1??系统Σ的状态转移规则是安全保持的。
证明:第一步,展开定义3。
对于云计算环境中的DACRA模型,用户u没有授权或授权不成功的情况有4种:1) u没有认证成功:(u, n)?UN。2)实体属性导致所授权不成功:(n, atro(u.a∧n.a∨r.t∨r.l) ?UA。3)给角色分配权限未成功导致授权不成功。4)安全等级导致授权不成功:u.s<d.s∨p=0∨p=wr(u.s=d.s)。因此,式(1)展开:
$\urcorner \exists \left( u, d \right)\left( \left( u, d \right)\left( u, d \right)\in m\wedge \left[\begin{align} &\left( u, n \right)\notin {{\rm{UN}}}\vee (p, {\rm{atro}}\left( d.a \right))\notin {{\rm{PA}}}\vee \\ &(u, {{\rm{atro}}}\left( u.a\wedge n.a\vee r.t\vee r.l \right))\notin {\rm{UA}}\vee \\ &(u.s<d.s\vee \ p=0\vee p={\rm{wr}}\left( u.s=d.s \right)) \\ \end{align} \right] \right)\\\to {\rm{acce}}\left( u \right)=d.$ | (3) |
$\forall \left( u, d \right)\left[\left( u, d \right)\in m\wedge \left[\begin{align} &(p, {\rm{atro}}\left( d.a \right))\in {\rm{PA}}\wedge \\ &(u, {\rm{atro}}\left( u.a\wedge n.a\vee r.t\vee r.l \right))\in {\rm{UA}}~ \\ \end{align} \right] \right]\to {\rm{acce}}\left( u \right)=d.$ | (4) |
F1、F2、F3:由F1得R′=R∪{r},由F2得R′=R\{r}∪{r′},由F3得R′=R\{r},这3个操作的对象都是和u已分配角色无关的角色,对于定义3来说是满足的,即是安全保持的。
F4:由F4得UA′=UA∪{(u, r)},从系统Σ中任选一对(u, r)?UA,得
$\begin{array}{l}\left. \begin{array}{l}\left( {u,r} \right) \notin {\rm{UA}} \notin u \in U \wedge r \notin R\\{\rm{UA'}} = {\rm{UA}} \cup \left\{ {\left( {u,r} \right)} \right\} \Rightarrow R' = R \cup \left\{ r \right\}\end{array} \right\} \Rightarrow \\\;\;\;\;\;\;\;u \in U \wedge r' \in R \Rightarrow \\(n,{\rm{atro}}\left( {u.a \wedge n.a \vee r.t \vee r.l} \right)' ) \in {\rm{UA}}\Rightarrow\\\forall \left( {u,d} \right)\left( {u,d} \right) \in m' \wedge ((n,{\rm{atro}}(u.a \wedge \\\;\;\;\;\;n.a \vee r.t \vee r.l)' ) \in {\rm{UA}}) \to \\\;\;\;\;\;\;\;{\rm{acce}}\left( u \right) = d.\end{array}$ |
F5:由F5得UA′=UA\{(u, r)},从系统Σ中任选一对(u, r)∈UA,得
$\begin{array}{l}\left. \begin{array}{l}\left( {u,r} \right) \in {\rm{UA}} \Rightarrow u \in U \wedge r \in R\\{\rm{UA'}}={\rm{UA}}\left\{ {\left( {u,r} \right)} \right\} \Rightarrow R' = R\left\{ r \right\}\end{array} \right\} \Rightarrow \\\;\;\;\;\;\;\;\;\;u \in U \wedge r' \notin R \Rightarrow \\(n,{\rm{atro}}\left( {u.a \wedge n.a \vee r.t \vee r.l} \right)' ) \notin {\rm{UA}} \Rightarrow \\\left\urcorner \exists ( {u,d} \right)\left( {u,d} \right) \in m' \wedge ((n,{\rm{atro}}\\\left( {u.a \wedge n.a \vee r.t \vee r.l} \right)' ) \notin {\rm{UA}})\to\\\;\;\;\;\; {\rm{acce}}\left( u \right) = d.\end{array}$ |
F6:由F6得PA′=PA∪{(p, r)},从系统Σ中任选一对(p, r)?PA,得
$\begin{array}{l}\left. \begin{array}{l}\left( {p,r} \right) \notin {\rm{PA}} \notin p \notin P \vee r \notin R\\{\rm{PA'}} = {\rm{PA}} \cup \left\{ {\left( {p,r} \right)} \right\} \Rightarrow \\\left( {R' = R \cup \{ r\} } \right) \wedge \left( {P' = P \cup \{ p\} } \right)\end{array} \right\} \Rightarrow \\p' \in P \wedge r' \in R \Rightarrow (p' ,{\rm{atro}}\left( {d.a} \right)) \in {\rm{PA}} \Rightarrow \\\forall \left( {u,d} \right)(\left( {u,d} \right) \in m' \wedge ((p' ,{\rm{atro}}\left( {d.a} \right)' ) \in {\rm{PA}}) \to \\\;\;\;\;\;\;\;{\rm{acce}}\left( u \right) = d.\end{array}$ |
F7:由PA′=PA\{(p, r)},从系统Σ中任选一对(p, r)∈PA,得
$\begin{array}{l}\;\;\;\left. \begin{array}{l}\left( {p,r} \right) \in {\rm{PA}} \Rightarrow p \in P \wedge r \in R\\{\rm{PA'}} = {\rm{PA}}\left\{ {\left( {p,r} \right)} \right\}\\ \Rightarrow \left( {R' = R\{ r\} } \right) \vee \left( {P' = P\{ p\} } \right)\end{array} \right\} \Rightarrow \\p' \notin P \vee r' \notin R \Rightarrow (p' ,{\rm{atro}}\left( {d.a} \right)) \notin {\rm{PA}} \Rightarrow \\\;\;\;\;\;\;\left\urcorner \exists ( {u,d} \right)(\left( {u,d} \right) \in m' \wedge \\\;\;\;\;((p' ,{\rm{atro}}\left( {d.a} \right)' ) \notin {\rm{PA}}) \to \\\;\;\;\;\;\;\;\;\;\;\;\;{\rm{acce}}\left( u \right) = d.\end{array}$ |
综上,F1~ F7操作函数即系统Σ的状态转移规则都是安全保持的。
定理2??系统Σ的初始状态m0是安全的。
证明:系统Σ的初始状态m0=(G1=Φ, G2=Φ),很显然,将Φ代入定义3,成立,所以系统Σ的初始状态m0是安全的。
定理3??DACRA模型是安全的。
证明:根据定义5、定理1和定理2,可得系统Σ的状态转移规则是安全保持的,并且其初始状态m0也是安全的,所以系统Σ是安全的,DACRA模型也是安全的。
5 结果分析为了更直观、简洁地分析和对比DACRA模型与其他访问控制模型的能力、性能及安全性,本文选取13个访问控制模型,从10个方面的指标进行了定性的比较,如表 3所示。可以看出,DACRA模型因为涉及属性的管理,故其管理的复杂程度处于中等,其余各个指标均处于最优,并且能够适应云计算环境中多种不同维度要求,最大限度地模拟了真实云计算环境,因此该模型能够完全适应云计算复杂、动态、安全性要求高的环境,来对数据进行访问控制。
表 3 访问控制模型综合分析对比
模型 | 主客体属性 | 时间属性 | 位置属性 | 多租户 | 云计算 | 授权的灵活动态性 | 管理复杂程度 | 可扩展性 | 多级安全控制 | 模型安全性 |
ARBAC97[2] | 不支持 | 不支持 | 不支持 | 不支持 | 不适用 | 低 | 低 | 中 | 不支持 | 低 |
ABAC[7] | 支持 | 不支持 | 不支持 | 不支持 | 不适用 | 中 | 低 | 高 | 不支持 | 低 |
文[9] | 支持 | 不支持 | 不支持 | 不支持 | 不适用 | 中 | 高 | 中 | 不支持 | 低 |
GTRBAC[10] | 不支持 | 支持 | 不支持 | 不支持 | 适用 | 高 | 中 | 高 | 不支持 | 中 |
LRBAC[11] | 不支持 | 不支持 | 支持 | 不支持 | 不适用 | 中 | 中 | 高 | 不支持 | 低 |
ARBAC[12] | 支持 | 支持 | 支持 | 不支持 | 适用 | 低 | 中 | 中 | 不支持 | 低 |
ABAC[13] | 不支持 | 支持 | 支持 | 不支持 | 适用 | 高 | 低 | 中 | 支持 | 中 |
CCACSM[14] | 不支持 | 不支持 | 不支持 | 不支持 | 适用 | 高 | 中 | 高 | 支持 | 高 |
CT-ABAC[15] | 支持 | 不支持 | 不支持 | 不支持 | 适用 | 高 | 中 | 高 | 支持 | 中 |
文[16] | 支持 | 不支持 | 不支持 | 支持 | 适用 | 高 | 高 | 高 | 不支持 | 低 |
MT-RBAC[17] | 不支持 | 不支持 | 不支持 | 支持 | 适用 | 高 | 低 | 高 | 不支持 | 低 |
S-RBAC[18] | 不支持 | 不支持 | 不支持 | 支持 | 适用 | 中 | 高 | 中 | 不支持 | 低 |
DACRA | 支持 | 支持 | 支持 | 支持 | 适用 | 高 | 中 | 高 | 支持 | 高 |
表选项
6 结论本文针对传统的访问控制模型不适应新的云计算平台这一缺点,提出一种基于角色和属性的云计算数据访问控制模型DACRA。分析了云计算访问控制模型存在的不足,通过给各个实体引入属性,使用户能够通过自身和所在租户的属性以及云平台自身的状态得到应有的角色,从而访问不同属性的数据,同时对DACRA进行了安全性证明和综合分析。结果表明:该模型能够实现用户对云平台中数据的动态、安全、细粒度的访问控制。下一步的工作中,一方面将基于Openstack开源云平台设计和实现一个DACRA原型系统,从实现层面对所设计的方案进行安全和性能方面更全面的评估验证;另一方面,尝试将DACRA与属性基加密结合起来,设计更完善的云计算访问控制系统。
参考文献
[1] | Sandhu R, Coyne E J, Feinstein H L, et al. Role-based access control models[J]. IEEE Computer, 1996, 29(2): 38–47. DOI:10.1109/2.485845 |
[2] | Sandhu R, Bhamidipati V, Munawer Q. The ARBAC97 model for role-based administration of roles[J]. ACM Trans on Information and System Security, 1999, 2(1): 105–135. DOI:10.1145/300830.300839 |
[3] | Gedare B, Rahul S. Hardware-enhanced distributed access enforcement for role-based access controls[C]//SACMAT'14. London, Canada:ACM, 2014:5-16. |
[4] | Wouter K, Victor E. Sorting out role based access control.[C]//SACMAT'14. London, Canada:ACM, 2014:63-74. |
[5] | 王于丁, 杨家海, 徐聪, 等. 云计算访问控制研究综述[J]. 软件学报, 2015, 26(5): 1129–1150.WANG Yuding, YANG Jiahai, XU Cong, et al. Survey on access control technologies for cloud computing[J]. Journal of Software, 2015, 26(5): 1129–1150. (in Chinese) |
[6] | Thomas P, Jean B, Jatinder S, et al. Data-centric access control for cloud computing[C]//SACMAT'16. Shanghai, China:ACM, 2016:81-88. |
[7] | Eric Y, Jin T. Attributed based access control (ABAC) for web service[C]//Proceedings of the IEEE International Conference on Web Services. Orlando, FL, USA:IEEE, 2005:561-569. |
[8] | Jin X, Krishnan R, Sandhu R. A unified attribute-based access control model covering DAC, MAC, and RBAC[C]//The 26Annual IFIP WG 11.3 Conference on Data and Applications Security and Privacy. Berlin, Germany:Springer, 2012:41-55. |
[9] | Huang J W, David M N, Rakesh B, et al. A framework integrating attribute-based policies into role-based access control[C]//SACMAT'12. Newark, New Jersey:ACM, 2012:187-199. |
[10] | Joshi J, Bertino E, Latif U, et al. A generalized temporal role-based access control model[J]. IEEE Trans on Knowledge and Data Engineering, 2005, 17(1): 4–23. DOI:10.1109/TKDE.2005.1 |
[11] | Ray I, Kumar M, Yu L. LRBAC:A location-aware role-based access control model[C]//Proc of the Second Int Conf on Information Systems Security. Berlin, Germany:Springer, 2006:147-161. |
[12] | Ei E M, Thinn T N. The privacy-aware access control system using attribute-and role-based access control in private cloud[C]//20114th IEEE IC-BNMT. Shenzhen, China:IEEE, 2011:447-451. |
[13] | 李凤华, 熊金波. 复杂网络环境下访问控制技术[M]. 北京: 人民邮电出版社, 2015.LI Fenghua, XIONG Jinbo. Access Control Technology for Complex Network Environment[M]. Beijing: Posts & Telecom Press, 2015. (in Chinese) |
[14] | 林果园, 贺珊, 黄皓, 等. 基于行为的云计算访问控制安全模型[J]. 通信学报, 2012, 33(3): 59–66.LIN Guoyuan, HE Shan, HUANG Hao, et al. Access control security model based on behavior in cloud computing environment[J]. Journal on Communications, 2012, 33(3): 59–66. (in Chinese) |
[15] | 常玲霞, 王凤英, 赵连军, 等. CT-RBAC:一个云计算环境下的访问控制模型[J]. 微电子学与计算机, 2014, 31(6): 152–157.CHANG Lingxia, WANG Fengying, ZHAO Lianjun, et al. CT-RBAC:An access control model in cloud computing[J]. Microelectronics & Computer, 2014, 31(6): 152–157. (in Chinese) |
[16] | Xin J, Ram K, Ravi S. Role and attribute based collaborative administration of intra-tenant cloud iaas[C]//10th IEEE International Conference on Collaborative Computing:Networking, Applications and Worksharing. Miami, FL, USA:IEEE, 2014:261-274. |
[17] | Bo T, Qi L, Ravi S. A mulit-tenant RBAC model for collaborative cloud services[C]//2013 Eleventh Annual Conference on Privacy, Security and Trust (PST). Tarragona, Spain:IEEE, 2013:229-238. |
[18] | Dancheng L, Cheng L, Qiang W, et al. RBAC-based access control for saas systems[C]//20102nd International Conference on Information Engineering and Computer Science. Wuhan, China:IEEE, 2010:1-4. |
[19] | Li N, Tripunitara M. Security analysis in role based access control[J]. ACM Trans on Information and System Secruity, 2006, 9(4): 391–420. DOI:10.1145/1187441 |
[20] | 王婷. 面向授权管理的资源管理模型研究[D]. 郑州: 中国人民解放军信息工程大学, 2011. WANG Ting. Research on Resource Management Model Oriented to Authorization Management[D]. Zhengzhou:PLA Information Engineering University, 2011. (in Chinese) http://cdmd.cnki.com.cn/Article/CDMD-90008-1012325008.htm |