马 晓, 王凤英, 常玲霞
(山东理工大学 计算机科学与工程学院, 山东 淄博 255049)
PRBAC:一种基于角色的起源访问控制模型
马晓, 王凤英, 常玲霞
(山东理工大学 计算机科学与工程学院, 山东 淄博 255049)
摘要:为了更好地利用数据起源对其它数据进行访问控制,建立了一种基于角色的起源访问控制模型(PRBAC).该模型以基于起源的访问控制模型(PBAC)和基于角色的访问控制模型(RBAC)为基础,划分了作为访问控制基础的依赖关系列表,并引入RBAC中角色集的概念,给出了具体的访问控制算法.分析结果表明PRBAC能解决基于起源的访问控制模型中授权管理不灵活、系统运行效率低和访问控制策略不够安全等问题.
关键词:起源; 访问控制; PBAC; RBAC; 依赖关系列表; PROV
起源,可以通俗的定义为数据对象的来源记录以及影响和致使该数据对象任何特定状态的处理过程[1].我们将起源定义为由实体、活动和代理参与的,能生成一系列数据和事物的信息.
数据起源的首次应用是在社区数据库中,随着时间的推移,数据起源逐渐在许多其他计算机科学应用中发挥作用,如语义网[2]、工作流[3-4]、云计算[5]、无线传感器网络[6]以及生物医学[7]等.随着数据起源在应用系统中的重要性不断增加,系统中安全起源问题以及可信度问题也随之产生.Hasan等人在文献[8]中讨论了起源安全的各个方面,大部分工作主要是考虑安全起源面临的问题和挑战以及如何保护起源数据,并且指出了安全起源数据应该满足完整性、可用性和机密性.安全起源方法主要有建立提供细粒度访问控制的策略语言且允许生成起源图任意长度的路径查询表达式[9],以及通过增加安全组件来建立或改进安全起源模型[10]等.
总之,虽然近几年来安全起源一直被研究,但是利用数据起源对基础数据进行访问控制的相关著作却很少.Jaehong Park[11]等人是首个利用起源数据实现对其他数据进行访问控制的,他们首先定义了基于起源的访问控制模型族结构(PBAC),然后,进一步提出了一个基于起源的访问控制基本模型(PBACB)及其可能的扩展模型.该模型族通过使用OPM(开放起源模型)确定的因果依赖(causality dependency)建立了一种新的策略规范和访问评估方法,有助于实现在传统访问控制模型中不可用的附加功能,比如基于来源的控制和对象版本管理等.但是,PBAC模型也存在一些缺陷:一方面文中使用OPM来捕获依赖关系,概念描述过于笼统,对起源图缺乏更细粒度的描述.另一方面,PBAC模型在实际应用中没有考虑到不同用户的需求,授权不够灵活,并且在系统效率和安全控制方面还不够完善.
为了解决上述问题,本文使用W3C标准下的PROV数据模型[12]来捕获基本的起源数据,结合RBAC机制对相关概念进行角色细化,提出了一个基于角色的起源访问控制模型PRBAC.该模型在处理不同代理用户请求及简化授权管理的同时,提供更加具体和细粒度的访问控制策略.
1PRBAC模型
1.1PRBAC核心组件
PRBAC模型主要是在PBAC的基础上进行了改进和扩展,其核心组件主要包括代理用户(acting users)、操作实例(action instances)、对象(objects)、起源数据(provenance data)、策略(policies)、依赖关系列表(dependencylists)、角色(roles)以及访问评估函数(access evaluation)等.PRBAC具体的模型架构如图1所示.
图1 PRBAC核心组件
1.2PRBAC模型定义
在前面确定的核心组件的基础上,PRBAC模型的定义如下:
(1) 代理用户集:AU={aui|i=1, 2, …,n},代理用户是对数据对象发起访问请求的人.
(2) 操作实例集:A={ai|i=1, 2, …,n},操作实例是由用户发起的对数据对象的访问.
操作实例集对应着操作类型集:AT={ati|i=1, 2,…,n};
假设系统可以从给定的操作实例中获得操作类型.
(3) 数据对象集:O={oi|i=1, 2, …,m},数据对象是被用户访问的资源数据.
(4) 访问请求集:Re={rei|i=1, 2, …,n}⊆AU×A×O,一个请求包含一个代理用户、一个操作实例和一组要访问的数据对象.
(5) 起源数据PD形成一个有向图,且形式上表示为一个三元组
VP=AU∪A∪O,是参与系统事务的代理用户、操作实例和对象实体的有限集,且表示为顶点;
DP= {‘w’}∪T∪B∪U∪G∪{‘w-1’}∪T-1∪B-1∪U-1∪G-1,是基本依赖关系类型的有限集;
EP⊆{(A×AUבw’)∪(A×O×U)∪(O×A×G) ∪(O×AU×T)∪(AU2×AU1×B)∪(AU×Aבw-1’)∪(O×A×U-1)∪(A×O×G-1) ∪(O×AU×T-1)∪(AU1×AU2×B-1)},代表依赖关系边,是起源数据中已存在的基本依赖关系的集合.
其中,G、U、T、B、G-1、U-1、T-1和B-1分别是依赖关系集‘wasGeneratedBy’、’used’、 ‘wasAttributedTo’、 ‘actedOnBehalfOf’以及其相匹配的反依赖关系集.{‘w’,‘w-1’}表示依特定角色而变化的依赖关系‘wasAssociatedWith’的集合以及它的反依赖关系集.
(6) DN,从DP集中分解出来的集合,是对象实体的依赖关系抽象名的有限集.
(7)∑是DP∪DNO中的字符术语,DPATH集的正则表达式的归纳性定义如下:
∀p∈∑,p∈DPATH;
(P1|P2),(P1·P2),P1*,P1+,
P1?∈ DPATH,
whereP1∈ DPATHandP2∈ DPATH.
(8) 依赖关系列表:DL:DN→DPATH,将每个依赖关系名dn ∈ DN映射为一个路径表达式dpath∈ DPATH.有时,也可直接视DN为一个对象依赖关系名和相应依赖关系路径列表.
(9) 策略集:P ={pi| i=1, 2, ……,n},策略是用来评估授予访问的一系列规则,这些规则用于用户授权或操作认证.策略是通过操作类型(AT)来选择定义的,而不是使用操作实例.
(10) 角色集:R ={ri| i=1, 2, ……,n},角色是指用户在系统内可执行的操作的集合.不同的用户依据其职能和责任被赋予相应的角色.如:
R1:医生可以诊断病情、开具入院证明以及开出医嘱.
R2:护士可以对病人进行护理体检,执行医嘱并填写护理记录;不能诊断病情.
…
Rn:医疗安全委员会管理员,可以定期查看医嘱和护理记录;不能诊断病情.
(11)UserAuthorization:用户授权,明确了请求者的请求是否合格.
ActionValidation: 操作认证,明确了对数据对象的请求操作是否应该被执行.
(12) 访问评估函数(AE),针对请求操作的类型,通过使用依赖列表DL,策略P以及起源数据PD来评估一个请求,做出用户授权和操作认证的决策,并返回一个布尔值.
(13)γ:AT→P,是一个动作类型到一个策略的映射.
1.3PRBAC访问控制过程
表1中的算法(Algorithm)详细说明了PRBAC的实现过程:用户发起请求后,系统先根据角色集R判断用户对应的某一角色ri;查找该角色对应的依赖列表DLi;解析该操作类型,来选择合适的策略;提取所有和该操作相关的依赖名和依赖路径表达式,并将其简化;执行查询,利用查询结果做授权决策.
表1访问控制算法
2PRBAC模型分析
系统中已经存在的数据起源信息至少引出了两个和安全相关的问题,一个是数据起源是如何被用于提高系统的安全性的;另一个是如何保护那些可能比数据自身更加敏感的数据来源,即安全起源问题[11].近年来数据起源相关访问控制文献主要侧重于研究后者:保护数据来源问题上.我们在PROV起源模型和RBAC基础上,改进了PBAC访问控制基本模型,提出了一个基于角色的起源访问控制模型PRBAC,该模型利用PROV起源图捕获因果依赖,强调前一目的,即如何利用数据起源对基础数据进行访问控制.
尽管PBAC基本模型[11]是首个利用起源数据对其他数据进行访问控制的模型,且该模型能够支持那些用传统访问控制方法不容易实现的特性,比如,基于系谱信息、基于数据的过去使用以及基于版本管理信息的控制等.但是它在具体的实际应用系统中还存在一些缺陷,还需要进一步改进.
(1)PBAC模型使用的是OPM起源模型获取的起源信息,虽然OPM能表达比较复杂的起源关系,但是其概念过于笼统,不能表达更多的细节.而W3C标准下的PROV模型除了能表达更多的组件间的关系(3个类,7个关系),捕获更多的起源信息之外,还设计了用于支持起源更高级应用的扩展结构,极大地丰富了描述起源的细节信息,更便于细粒度的起源描述,可操作性强.
(2)PBAC模型的访问评估虽然包括用户授权和操作认证两个方面,但是在具体的应用实例中存在缺陷.一方面,用户授权是根据查询该用户以前是否有过规定的操作而确定,且往往必须是同一用户.而实际系统中会有不同用户进行同一活动的需求,比如医院医嘱信息管理系统,A医生和B医生可以对同一病人写医嘱,并且两份医嘱是不能相互替换的.另一方面,某一操作是否被执行(操作认证)是根据要访问的对象实体以前是否被操作过来决定,而不管请求用户是谁,只要有相应的访问过该实体的操作就可以通过请求,这很容易造成越权访问.比如,只有查看过的医嘱才可以被修改,那么系统就会检查该医嘱之前是否被查看过,而不管是谁发出的修改请求.但是,事实是只有医生才可以修改医嘱信息,护士不能修改.为了解决这两个问题,我们的模型引入了RBAC机制,提出了一种新的访问评估策略.
(3)PBAC模型的作用原理是根据操作类型查找依赖列表DL和相应的起源数据PD,然后制定相应的策略进行访问评估.但是这样做的缺点是:用户每进行一次访问或者不同的用户进行不同的访问时都需要查找一次该用户的操作,同时也都需要遍历一次起源图.而引入RBAC后,该机制通过加入角色的概念,把具有相同权限的用户归为同一角色,这样隔离了用户与权限的同时,相比用户的变动来说,角色的变动要少得多,从而简化了用户的授权管理,提高了系统的运行效率.
由以上分析和比较可以看出,本模型是结合实际应用的要求而进行改进的,它更贴近现实,可以很好的应用到实际系统中.PRBAC模型是在PBAC基本模型的基础之上,引入了RBAC中角色集Roles元素,将拥有相同操作权限的用户归为同一角色,同时将该角色对应的操作类型在依赖列表中进行划分,使角色集(Roles)与依赖列表(DL)一一对应,这样不仅在很大程度上简化了模型的授权管理、提高了系统运行效率,也给系统提供了更加安全的访问控制策略.
3PRBAC模型应用举例
建立了PRBAC模型后,本文以医院的医嘱信息管理系统为例,具体地阐述一下该模型的访问控制实现过程.
随着科学技术的不断发展,现在大多数医院己经启用了医院信息管理系统,医嘱管理系统便是其中之一.医嘱是医生根据病情和治疗的需要下达给护士的医疗指令,医嘱内容包括病人相关信息、各种检查、药物名称及用法、时间和执行护士等.在医院中,用户的数量有很多,但是用户的职位是比较固定的,同时职位所对应的权限也是比较固定的,这里的职位即为角色.
医嘱管理系统的用户主要是医生、护士和医疗委员会,相应的操作权限为:只有医生才能诊断病情、开具入院证明以及开出医嘱;护士可以对病人进行护理体检,执行医嘱并填写护理记录;医疗委员会管理员可以查看医生、护士和病人的相关信息;医生和护士都可以查看医嘱信息;护士和医疗委员会管理员不能诊断病情;其他用户不能查看医嘱信息.
通常,系统会为每一个用户的操作类型都维护一个单独的访问控制策略,比如,我们有以下策略:医生只有诊断病情后才可以开出医嘱.在上述情景中,医生、护士和医疗委员会分别对应模型中的角色集R1,R2和R3,他们各自映射的依赖列表分别为DL1,DL2和DL3.(这里假设用户都已经注册过,且以医生开医嘱为例)具体的访问控制过程如下.
(1)当某用户发起一个请求时,系统先根据角色集R判断用户的角色,如果是医生,则转步骤2;如果是护士转步骤6,如果是医疗委员会则转步骤7,否则,拒绝访问请求.
(2)根据R1去查找医生对应的依赖列表DL1,然后解析该操作类型,来选择合适的策略.
(3)从包含在策略集中的规则中,提取所有的和该操作相关的依赖名和依赖路径表达式,并最终将其简化为基本的直接依赖关系边的路径表达式.
(4)执行嵌入在这些路径表达式中的查询操作,查询存储的起源数据三元组,看该医生是否有相应活动.
(5)利用查询结果做授权决策.如果该医生诊断过病情,那可以授权开出医嘱;没有诊断过病情,则拒绝其开出医嘱的访问请求.
(6)根据角色集去查找护士对应的依赖列表,然后解析操作类型,选择合适的访问策略.
(7)同理,根据角色集去查找医疗委员会对应的依赖列表,然后解析操作类型,选择合适的访问策略.
4结束语
PRBAC模型以PBAC模型为基础,引入了RBAC中角色集的概念,并将PBAC模型中作为基础的依赖列表进行划分,使其与角色集一一对应,提出了一种基于起源的角色访问控制方法,并给出了相应的访问控制算法.该方法继承了PBAC和RBAC的优点,在满足那些用传统访问控制方法不容易实现的特性的同时,也简化了模型的授权管理、提高了系统的运行效率,给系统提供了更加安全的访问控制策略.下一步的研究工作是对该模型的优化和应用研究.
参考文献:
[1]Nguyen D, Park J, Sandhu R. Integrated provenance data for access control in group-centric collaboration[J]. Information Reuse and Integration (IRI), 2012 IEEE 13th International Conference on, 2012, 330(5):255-262.
[2]Narock T, Yoon V, March S. A provenance-based approach to semantic web service description and discovery[J]. Decision Support Systems, 2014(64):90-99.
[3]Madougou S, Shahand S, Santcroos M,etal. Characterizing workflow-based activity on a production e-infrastructure using provenance data[J]. Future Generation Computer Systems, 2013, 29 (8):1931-1942.
[4]Girish J, Arun G, Gintaras R. A workflow modeling system for capturing data provenance[J]. Computers and Chemical Engineering, 2014(67):148-158.
[5]Li J, Chen X F, Huang Q,etal. Digital provenance: Enabling secure data forensics in cloud computing[J]. Future Generation Computer Systems, 2013(37):259-266.
[6]Alam S M I, Fahmy S. A practical approach for provenance transmission in wireless sensor networks[J]. Ad Hoc Networks, 2014(16):28-45.
[7]Curcin V, Miles S, Danger R,etal. Implementing interoperable provenance in biomedical research[J]. Future Generation Computer Systems, 2014(34): 1-16.
[8]Hasan R, Sion R, Winslett M. Introducing secure provenance:problems and challenges[C]// Henson V. Proceedings of the 2007 ACM workshop on Storage security and survivability, StorageSS’07. New York, NY, USA: ACM, 2007: 13-18.
[9]Cadenhead T, Khadilkar V, Kantarcioglu M,etal. A language for provenance access control[C]//Sandhu R. Proceedings of therst ACM conference on Data and application security and privacy. San Antonio, TX, USA: ACM, 2011: 133-144.
[10]刘通,王凤英.基于OPM的安全起源模型[J].计算机应用研究, 2013, 30(10):3 118-3 119.
[11]Park J, Nguyen D, Sandhu R. A provenance-based access control model[C]//PST. Proceedings of the 10th IEEE Conference on Privacy, Security and Trust. Paris, France: IEEE, 2012:137-144.
[12]Moreau L, Missier P. PROV-DM: The PROV Data Model[EB/OL].(2013-03-12) [2013-04-30]. http://www.w3.org/TR/REC-prov-dm-20130430/.
[13]Sandhu R, Coyne E, Feinstein H,etal. Role-based access control models[J]. Computer Journal, 1996, 29 (2):38-47.
(编辑:姚佳良)
PRBAC:A role-based provenance access control model
MA Xiao, WANG Feng-ying, CHANG Ling-xia
(School of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China)
Abstract:This paper proposes a novel role-based provenance access control model(PRBAC)to better utilize provenance data to control access to the other data. The model is built on provenance-based access control (PBAC) and role-based access control (RBAC). And this scheme divided the dependency list as a foundation of access control, introduced the notion of role in role-based access control and gave out the access control algorithm. The analysis results indicate the proposed model can solve the issues that the authorization management is not flexible, the system has low access efficiency and access control policy is not secure enough, and other problems.
Key words:provenance; access control; PBAC; RBAC; dependency list; PROV
中图分类号:TP393
文献标志码:A
文章编号:1672-6197(2016)02-0018-05
作者简介:马晓,女, maxiao886@126.com; 通信作者: 王凤英,女, wfy@sdut.edu.cn
基金项目:国家自然科学基金项目(61473179); 山东省科技发展计划(2013GGX10116); 山东省自然科学基金项目(ZR2013FM013)
收稿日期:2015-03-16