APP下载

一种基于属性和任务的工作流访问控制模型

2015-05-25杨琳杰王泽芳

西南科技大学学报 2015年3期
关键词:细粒度访问控制用户

杨琳杰 袁 平 王泽芳

一种基于属性和任务的工作流访问控制模型

杨琳杰 袁 平 王泽芳

(西南科技大学计算机科学与技术学院 四川绵阳 621010)

针对传统的访问控制模型在支持细粒度授权和访问控制灵活性上的不足,提出了一种基于属性和任务的工作流访问控制模型,并给出了模型中元素、关系的形式化描述。新模型保留了任务驱动的特点,同时又引入了属性概念,采用基于实体属性而不是基于身份的授权机制,可提供动态的、细粒度的访问控制。采用XACML技术实现模型的访问控制方案,使得访问控制模型具有良好的灵活性、扩展性。

访问控制 工作流 属性 任务

工作流是一类能够全部或者部分自动执行的业务过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递和执行。随着工作流技术的日趋成熟,工作流系统的安全性问题变得日益突出。工作流系统的安全问题主要包括认证、授权、访问控制、审计、数据保密性、数据完整性、抗抵赖性、可用性等。其中访问控制是提高工作流系统安全的重要机制之一。

一个完善的工作流访问控制模型不仅要考虑普通系统的静态职责分离和最小权限,还应该考虑以下几点:(1)工作流任务的执行必须在特定的时间段内完成,并且授权有效时间与任务执行时间尽可能同步。(2)工作流是由一组相关任务组成,他们需要特殊的访问控制技术来保证业务过程执行的安全。比如,一个业务过程由开支票和支票审核两个任务组成,访问控制技术必须保证用户不能审核自己所开的支票。(3)实际应用中的安全策略是复杂多样的,需要有丰富的语义来表达和描述这些策略。

基于角色的访问控制模型(Role-Based Access Control,RBAC)[1]通过对用户分配角色,再对角色赋予权限来达到访问控制的目的,主要缺点是不具有动态性,不能实现动态的访问控制。1993年,Thomas和Sandhu提出了基于任务的访问控制模型(Task-Based Access Control,TBAC)[2],从任务的角度来建立访问控制模型和实现安全机制,提供动态实时的安全管理,但任务的分配和管理过程比较繁琐。邢光林等人提出了基于角色和任务的工作流访问控制模型[3],该模型在用户和任务之间引入角色,通过用户-角色-任务-权限这样的结构来实现访问控制,但在权限的动态管理和访问细粒度上存在不足。在此基础上,文献[4]引入了上下文,可以很好地控制用户和任务的执行环境,但却没有考虑任务自身的状态。文献[5]根据任务的状态授予用户权限,并且引入了任务上下文和时间限制,加强了对权限的管理。

以上模型都是基于角色的访问控制模型,采用基于角色的授权机制,在授权过程中只考虑了用户角色对权限的影响,忽略了用户的其他属性,例如安全级别、年龄等;缺乏与现实环境之间的联系,模型中的环境因素都是提前设定固定不变的,访问权限不能随着环境的变化而变化;模型中存在多种约束和条件,这些约束和条件的表达方式不能统一,而且语义匮乏。

基于上述分析,为了更好满足工作流系统灵活性授权的需求,本文提出了一种基于属性和任务的工作流访问控制模型ATBAC(Attribute-Task Based Workflow Access Control),并结合XACML技术(eX-tensible Access Control Markup Language,可扩展的访问控制标记语言)对模型进行实现。

1 基于属性和任务的访问控制模型

ATBAC模型如图1所示。模型的基本思想是: ATBAC模型结合了TBAC模型和基于属性的访问控制模型[6-7](ABAC)的思想,既满足了工作流系统任务动态授权的需求,又实现了基于属性级的细粒度的访问控制。新模型改变了传统模型的授权机制,采用基于实体属性的授权方式,能够根据用户的不同属性对用户的访问能力进行细粒度的控制,并且引入了环境因素(不仅包括历史记录、访问时间,还包括系统的安全状态、服务器的访问率等),更符合实际应用的需求。

1.1 模型相关概念

(1)属性(ATT):属性是指实体和访问控制相关的特征或信息。属性ATT表示为二元组(ID,dom),其中ID为属性唯一标识符,dom表示属性值域。

图1 ATBAC模型Fig.1 ATBAC model

(2)属性表达式(AE):是一个三元组,表示为: (attr,op,value),其中attr表示属性变量,value表示属性变量值,op为关系运算符,op∈{<,≤,≠,≥,>}。例如某一用户属性表达式{age>35},用户属性变量为age,“>”是关系表达式运算符,属性变量值为35。

(3)规则:一个策略可以和多条规则相关联。规则是由条件(Condition)、结果(Effect)和目标(Target)组成。目标是由全部实体组成的一个属性集合,条件是一个属性表达式,Effect是条件合取的结果,Effect∈{Permit,Deny}。表示为:

Rule:=Condition1∧Condition2∧...Conditionn(n≥1)→Effect

(4)策略:是由一个或若干个访问控制规则构成的非空有限集合,用Policy表示,∃pi∈Policy(i∈N)。

1.2 模型的基本元素及关系

(1)用户。用U表示一个用户集合,用ui(1≤i≤n)表示用户集合U中的一个用户,即∃ui∈U,U={u1,u2,…,un}。

(2)任务T。任务是分配给某一组织或个人作为其部分职责,并按一定流程完成的工作。一个任务可以包含多个子任务,T={t1,t2,…,tn}。每个任务只能在规定的时间段内执行。Ts,Te分别代表任务的开始时间和结束时间。为任务设置一个生命周期L=|Ts-Te|,如果在规定的时间段内没有完成任务,则将任务所拥有的权限挂起。

(3)权限P。权限是用户对资源进行访问的许可。

(4)实体属性:用户属性(User Attribute,UA)用来描述访问用户的安全特性,如角色、部门、职称等;任务属性(Task Attribute,TA)是对任务的特征进行描述,如任务名称、类型、状态、时间等;环境属性(Environment Attribute,EA)是指访问请求过程中上下文环境的描述,如 IP、时间、CUP的利用率等。ATT(U),ATT(E),ATT(T)分别表示主体U,任务T和环境E的属性赋值关系。则有:

ATT(U)⊆UA1×UA2×UA3...×UAk(1≤k≤K)

ATT(E)⊆EA1×EA2×EA3...×EAm(1≤m≤M)

ATT(T)⊆TA1×TA2×TA3...×TAn(1≤n≤N)

(5)用一个基于u,t,e的函数来判断主体U能否在环境E的条件下执行任务T。

Rule:can_access(u,e,t)←f(att(u),att(e),att(t))函数根据u,t,e的属性值进行判断,如果返回true则允许访问;返回false则拒绝访问。

(6)任务状态。任务实例是任务的一次执行过程。任务执行过程中会动态的改变状态,状态的改变会引起访问策略的改变,从而引起权限的变化。状态包括:睡眠、就绪、挂起、运行、完成。睡眠状态指任务未被激活;就绪状态指任务的合法条件已经满足,完成了准备工作;执行状态指任务被激活正在运行;挂起状态指任务激活时由于各种原因而被暂停运行;完成状态指任务执行完毕[8]。如图2所示。

图2 状态转换图Fig.2 State transition diagram

(7)用户与属性是多对多的关UAA⊆U×ATT,一个用户可以拥有多个属性,一个属性可以归多个用户所有,assigned-u(att)={u∈U,att∈ATT|(u,att)∈UAA}。

(8)环境与属性多对多关系EAA⊆E×ATT,一个环境实体可以拥有多个属性,而每种属性可以被多个环境实体同时拥有,assigned-e(att)={e∈E,att∈ATT|(e,att)∈EAA}。

(9)属性和任务关系是多对多AT⊆T×ATT。一个任务可以具有多种属性,而每种属性又可以分配多个任务,assigned-t(att)={t∈T,att∈ATT|(t,att)∈AT}。

(10)权限分配PT⊆P×T,权限与任务之间是多对多的关系。权限包括资源和操作,当用户执行任务时,用户也就获得了与任务相关的资源和操作,执行完后,权限也被收回,通过任务来实现权限的动态授予和撤销,assigned-p(t)={p∈P,t∈T|(p,t)∈PT}。

1.3 模型安全约束

(1)依赖约束。在工作流执行过程中,任务之间存在着依赖约束关系,影响着访问控制策略的制定,进而影响权限的改变。模型中定义可能存在的依赖关系如下:

同步依赖:对于任务集T中任意2个任务T1和T2,T1和T2需要同时进入激活状态。

顺序依赖:对于任务集T中任意2个任务T1和T2,T1<T2,T2只有在T1完成之后才能被激活。

互斥依赖:对于任务集T中任意2个任务T1和T2,不能同时被激活。

(2)时间约束,为了防止用户拥有权限的时间过长,避免恶意用户在执行任务的过程中攻击和破坏系统,给任务增加了时间限制。

生命周期为L,timemax表示任务激活后执行的时间,如果执行时间超出生命周期,则将收回权限。

(3)静态职责分离约束,是指在为用户分配属性时,属于冲突属性集(CA)的两个或多个属性不能分配给冲突用户(CU)中的一个或多个。冲突用户指的是拥有足够权利并极有可能合伙欺诈的两个用户,一般而言,有亲戚、亲密朋友或利益关系等有可能合伙欺诈的用户均是冲突用户。

(4)动态职责分离,同一个任务在同一时间不能分配给具有互斥属性的两个用户。

2 ATBAC模型的实现

2.1 模型的体系结构

XACML[9]是由结构化信息标准促进组织(OASIS)定义的安全标准,用于描述应用系统的访问控制策略以及访问控制决策请求/响应信息。XACML符合XML规范,具备可扩展性,支持参数化的策略描述和多样化的策略组合,具有很强的访问控制策略描述能力。在模型中授权函数会将请求中的属性与策略规则中的属性进行比较,最终生成一个许可或拒绝决策。基于XACML实现的ATBAC模型的体系结构[10]如图3所示。

XACML主要功能模块有策略执行点(Policy-EnforcementPoint,PEP)、上下文处理器、策略信息点(PolicyInformationPoint,PIP)、策略决策点(PolicyDecisionPoint,PDP)、策略管理点(PolicyAdministration-Point,PAP)等。策略管理点PAP定义策略和策略集,供PDP使用;策略执行点PEP利用XACML语言建立一个基于属性的访问控制请求,发送给PDP;策略决策点PDP根据策略来判断用户请求,决定是否允许访问;策略信息点PIP负责提供授权决策所需要的实体属性;上下文处理器是将本体请求转化为XACML的规范格式[10]。

2.2 模型的工作流程

模型在工作流系统中工作过程[11]如图4所示。

图3 基于XACML的ATBAC模型体系结构图Fig.3 Structure chart of ATBAC model system based on XACML

图4 ATBAC模型工作过程Fig.4 Working process of ATBAC model

用户要完成一个任务必须获得任务中包含的各种权限和资源。用户向系统提出访问请求,首先对用户进行身份验证。如果是合法用户,则查找请求的资源或任务,没有找到,则拒绝请求。如果找到相应资源或任务,将用户相关信息和请求信息发送到策略执行点PEP;PEP根据请求查找相关属性建立一个基于属性的访问控制请求AAR,AAR中包括用户属性、环境属性和任务属性。然后,PEP将AAR传递给策略判决点PDP。PDP根据请求查询访问控制策略,对AAR进行判定。如果为TRUE,给用户授权;如果为FALSE,请求失败。

3 与传统模型对比

基于角色的访问控制模型是目前比较常用的一种模型,本节通过一个示例,对ATBAC和基于角色和任务的访问控制模型(TRBAC)[4]进行比较。

假定在办公自动化系统中,有一个发文的工作流,该工作流由4个任务(Task)组成:拟稿、审稿、核稿、稿件签发。假设该系统中用户U拥有安全等级Level(u)和类型Type(u)两种属性,按工龄可以分为一级和二级;按类型分为:员工(General),科长(Chief),处长(Director)。系统中的任务也有两种属性,按照保密等级分为重要任务(Secrecy)和一般任务(Free),按照发布时间可以分为新任务(New)和旧任务(Old)。

假如有一条访问控制策略规定,只有安全等级为2的处长才能执行新的重要的拟稿任务,根据ATBAC模型和XACML定义以下策略就可以进行访问控制:

Rule1:(Type(u)=director)∧(Level(u)=2)

Rule2:(Task(t)=new task)∧(Task(t)=Secrecy)(Task(t)=拟稿)

Policy1:Rule1∧Rule2

在TRBAC模型中,根据用户属性和属性取值定义6种角色,根据任务的属性和属性值把任务分成4类,然后进行授权,授权过程如图5所示。

角色分配是给用户分配角色,任务分配是当任务建立时为任务分配执行任务的角色。如果用户拥有的角色和任务指定的角色一样时,用户可以执行该任务。

基于上述授权方式,当用户属性和任务属性不断增加时,角色和任务的数量将呈几何倍数增长,而ATBAC模型没有角色这一中介,因此不需要定义大量的角色和权限。

另外,基于角色和任务的访问控制模型没有考虑环境因素,如果上例中的策略再增加一条规则:所有任务只能在8:00到20:00之间才能访问,TRBAC模型需要修改数据库或者在业务逻辑代码中进行判定,而ATBAC模型只需定义如下策略即可对访问时间进行限制。

Rule3:(CurrentTime(e)≥8:00)∧(CurrentTime (e)≤20:00)

Policy2:Rule1∧Rule2∧Rule3

图5 TRBAC模型授权过程Fig.5 Authorization process of TRBAC model

4 结束语

针对现有模型在工作流系统中应用上的不足,提出了一种基于属性和任务的工作流访问控制模型。在基于任务的访问控制模型的基础上,引入属性概念,实现了基于属性的细粒度的访问控制。引入环境属性,使模型更符合实际应用。将XACML与ATBAC结合起来,解决了普通模型中策略表达不足的缺点,提供了更灵活的访问控制策略。与其他的访问控制模型相比,该模型具有灵活性、动态性以及扩展性,能够细粒度地进行动态访问授权。

[1] 毛碧波,孙玉芳.角色访问控制[J].计算机科学,2003,30(1):121-123,89.

[2] THOMAS R K,SANDHU R S.Task based authorization controls(TBAC):A family of models for active and enterprise- oriented authorization management[C].Proceedings of the IFIPW G11.3 Workshop on Database Security,1997.166-181.

[3] 邢光林,洪帆.基于角色和任务的工作流访问控制模型[J].计算机工程与应用,2005,(2):210-213,222.

[4] 朱州,张沪寅.一种基于T-RBAC的上下文相关访问控制模型[J].武汉大学学报:理学版,2009,(2):216-222.

[5] 冯俊,王箭.一种基于T-RBAC的访问控制改进模型[J].计算机工程,2012,(16):138-141.

[6] YUAN E,TONG J.Attributed based access control (ABAC)for web services[C].Web Services,2005.ICWS 2005.Proceedings.2005 IEEE International Conference on.IEEE.

[7] 李晓峰,冯登国,陈朝武,等.基于属性的访问控制模型[J].通信学报,2008,(4):90-98.

[8] 许芳园,郭银章.基于TRBAC的协同设计动态访问控制[J].计算机工程,2010,(21):143-145.

[9] 沈海波,洪帆.Web服务中结合XACML的基于属性的访问控制模型[J].计算机应用,2005,(12):49-51,60.

[10]文俊浩,曾骏,张志宏.SOA中基于属性的访问控制安全策略[J].计算机科学,2010,(9):147-150.

[11]钟将,侯素娟.开放网络环境中基于属性的通用访问控制框架[J].计算机应用,2010,(10):2632-2635,2640.

Workflow Access Control Model Based on Attribute-task

YANG Lin-jie,YUAN Ping,WANG Ze-fang

(School of Computer Science and Technology,Southwest University of Science and Technology,Mianyang 621010,Sichuan,China)

Because of the lack of support for fine-grained authorization and flexible access control in traditional access control model.This paper presents workflow access control model based on attribute-task,and gives the formal description of the elements and relationship of the model.The model retains the feature of task-driven,while the introduction of the concept of property.The model adopted the authorization mechanism based on subject entity attributes,but not use identity.This mechanism can resolve administrative scalability problem and provide fine-grained access control.Furthermore,using the XACML technology achieve model access control scheme,making access control model has good flexibility and scalability.

Access control;Workflow;Attribute;Task

TP393

A

1671-8755(2015)03-0071-05

2015-06-04

西南科技大学研究生创新基金资助项目(14ycxjj0060)。

杨琳杰,女,硕士研究生。通讯作者:袁平(1963—),男,博士,教授,研究方向为网络与信息安全。E-mail:1054514191@qq.com

猜你喜欢

细粒度访问控制用户
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
一种跨策略域的林业资源访问控制模型设计
基于SVM多分类的超分辨图像细粒度分类方法
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计
ONVIF的全新主张:一致性及最访问控制的Profile A
关注用户
动态自适应访问控制模型
关注用户
关注用户