面向业务流程访问控制策略及决策优化方法

2013-07-19 08:43商铮张斌
计算机工程与应用 2013年19期
关键词:访问控制业务流程委托

商铮,张斌

1.解放军信息工程大学电子技术学院,郑州 450004

2.河南省信息安全重点实验室,郑州 450004

面向业务流程访问控制策略及决策优化方法

商铮1,2,张斌1,2

1.解放军信息工程大学电子技术学院,郑州 450004

2.河南省信息安全重点实验室,郑州 450004

1 引言

业务流程是为达到特定的价值目标而由不同的人共同完成的一系列活动,它们依照一定的业务逻辑和顺序依次执行。业务流程的应用使得跨地区、跨组织的业务协作成为可能,其访问控制作为业务流程安全的基本问题,一直是业务流程管理领域研究的热点。

业务流程的开放性、协作性和分布式使其对访问控制策略的要求较高,策略必须具备通用性和灵活性才能保证跨组织协同应用的安全实施。文献[1]利用OASIS标准XACML(Extensible Access Control Makeup Language)实现业务流程的访问控制,具备通用性,但是没有考虑权限委托的情况;文献[2]基于XACML提出一种描述委托策略的方式,但这种方法增加了管理策略和管理请求,委托策略的实施相对复杂,且尚未考虑业务流程的状态对策略判定的影响;文献[3]提出了一种基于策略树裁减的决策优化方法,能够根据请求的类型裁减原始策略树,减少策略决策所需的时间,但是无法解决无效策略数量过多或委托策略比例过大时策略决策耗时的问题。

业务流程的访问控制策略需要在支持委托、支持流程活动和提高决策效率等方面进行研究。本文提出一种适应于业务流程的访问控制实施框架,对XACML的策略模式进行了扩展,使其能够描述委托策略,实现流程策略与业务流程状态的关联,并且提出了两种策略决策优化方法提高策略决策效率。

2 面向业务流程的访问控制策略实施框架

XACML的核心标准提出了一种访问控制策略实施框架,由策略执行点、策略决策点、策略信息点、策略管理点和上下文处理器等组件组成。该框架只描述策略实施的基本过程,没有针对业务流程的特点进行优化,不能根据业务流程的执行状态对流程的策略进行管理,无法基于流程的状态实施访问控制。本文对上述框架进行了扩展,提出了一种面向业务流程的访问控制策略实施框架,如图1所示。

图1 业务流程访问控制实施框架图

为保证业务流程状态与访问控制决策的相关性,本文在基本框架中引入了业务流程管理组件,该组件主要由三个部分组成:流程执行引擎、流程策略管理点和流程状态管理点。流程执行引擎根据业务流程执行代码中制定的业务过程为业务流程的运行提供支持,选择合适的活动执行,改变流程的状态;流程策略管理点负责管理与活动相关的访问控制策略,为活动的运行选择合适的策略;流程状态管理点根据流程的运行状态修改流程中的相关参数,为策略信息点提供状态信息,作为访问控制决策条件参与访问控制决策。

框架的主要工作流程如下:

(1)流程执行引擎解析业务流程的代码(如BPEL文件等),并启动业务流程实例,当流程中一个活动运行完毕进入另外一个活动时,流程执行引擎通知流程状态管理点和流程策略管理点当前流程的状态变化;

(2)用户向策略执行点发送访问请求;

(3)策略执行点验证请求的合法性,将该请求交由策略决策点进行决策;

(4)策略决策点从策略信息点获取当前上下文中用户、服务和环境的属性;

(5)策略管理点根据流程状态和上下文中的实体属性从策略库中选取匹配的策略,交由策略决策点进行决策;

(6)策略决策点根据所获得的策略,对是否接受请求进行判定,并将结果返回策略执行点;

(7)策略执行点收到判决结果,决定用户能否访问流程中的服务并返回结果。

3 面向业务流程的策略模式

XACML核心标准的策略模式不支持委托策略的描述,无法实现流程状态与流程策略的关联,不能较好地适应业务流程的访问控制要求。本文增加了委托策略,将XACML访问控制策略的自然语义描述为“(某主体宣称),在流程的某个活动中,某主体以某种方式访问资源”。面向业务流程的策略模式如表1所示:使用<xacml:PolicyIssuer>描述委托策略的委托者;<xacml:Condition>描述业务流程的任务条件;<xacml:Subject>描述访问控制策略的主体或委托策略的受托人;<xacml:Resource>描述客体;<xacml:Environment>描述环境;<xacml:Action>描述访问方式;<xacml:Obligations>作为描述可选项,描述策略执行点除了权限允许和拒绝之外的操作。

表1 业务流程策略模式

在业务流程中,策略与流程活动的关系应当是多对一的,即每个流程活动可以有多个策略,而每条策略只能对应一个活动。如果不指定每条策略所对应的活动,那么在进行某一活动的策略匹配时,需要匹配所有策略,这样增加了时间开销,并且流程活动处于非执行状态时,用户通过匹配策略,依然可能获得权限,不能保证最小特权原则的实施。在表1所示的策略模式下,每条策略都通过<xacml:Condition>与流程相关联,在评估策略规则时,首先判定当前业务流程实例的运行状态,如果当前运行的活动与<xacml:Condition>中定义的活动相同,那么<xacml:Condition>的评估结果就为True,否则为False。当评估结果为True且<Target>中的内容与请求相符时,用户获得<Effect>中的权限;而当评估结果为False时,返回结果NotApplicable,用户无法获得权限。另外,该策略模式引入了<PolicyIssuer>元素,用于表示策略的发布者,即权限的委托者,该元素是策略的可选项,如果一条策略中包含<PolicyIssuer>元素,则该策略为委托策略,否则为访问策略。

根据上述定义,一个典型的业务流程访问控制策略表示如下:

4 业务流程访问控制策略决策优化方法

在进行访问控制决策时,策略决策单元需要对整个策略集进行查找,当策略规则数量众多时,无效策略的数量也随之增加,可能会引起拒绝服务攻击[3]。本文提出逐步裁减法和信任关联法,分别通过减少策略元素的比对次数和减少策略匹配的次数来提高策略决策的效率。

4.1 逐步裁减法

当用户提出访问请求后,策略决策点根据请求中主体、客体和上下文等信息,与策略集的各个策略逐一匹配,策略集中的策略必须满足一些条件才能作为有效策略与请求匹配,下面给出相关策略的定义。

定义1(相关策略)如果策略中的<Condition>评估结果为True,且<Target>中描述的内容与请求相符,则称这条策略为相关策略,否则称为无关策略。

由于策略集中可能存在大量无关策略,策略匹配的效率受到了很大的影响,本文提出一种策略逐步裁减方法,其裁减过程如下:

(1)将请求分解为五个部分,分别为<Condition>、<Subject>、<Object>、<Environment>和<Action>。

(2)将请求中的<Condition>的内容与各个策略中的<Condition>逐一进行比对,如果内容相符,则保留该策略;否则从策略集中将该策略裁减形成新的策略集。

(3)依次比对元素<Subject>、<Object>、<Environment>和<Action>,每次比对的策略集都是上次比对裁减后形成的新策略集。

(4)最后一次比对后,策略集裁减完毕,裁减的结果为相关策略集。

下面举例说明裁减的过程。

某网站订单处理业务流程主要包括三个业务活动,每个用户在业务活动中的权限是不同的,其策略集如图2所示。假设当业务流程运行到业务活动1时,某业务部员工向订单查询服务提出访问请求,按照上述的策略裁减方法对图2所示的策略集进行比对和裁减,裁减结果如图3所示。在比对<condition>元素时,由于Rule4、Rule5、Rule6、Rule8和Rule9中<condition>所定义的业务活动不是业务活动1,因此将它们作为无效策略进行裁减,这些规则在下次比对时,将不再出现;同理,比对<Subject>时,裁减Rule3和Rule7,比对<Object>时,裁减Rule2。逐步裁判法所得的最终策略树如图3(d)所示。

逐步裁减法通过对策略逐步裁减,实现了无关策略的消除,克服了现有方法PathStack和TwigStack等在匹配过程中产生大量无效结果的缺点。假设策略集中共有n个叶子节点,匹配每个节点的时间为t,那么原有方法的匹配时间为5nt。采用逐步裁减法后,每次比对裁减后策略集中的节点数目都在减少,设每次策略裁减后策略集中叶子节点的数量分别为n1、n2、n3和n4,那么匹配时间变为nt+n1t+n2t+n3t+n4t,由于n≥n1≥n2≥n3≥n4,则5nt≥nt+n1t+n2t+n3t+n4t,逐步裁减法减少了策略元素比对的次数,提高了策略匹配的效率。

图3 策略树逐步裁减过程

4.2 信任关联法

由于在XACML核心标准中没有委托策略,所有的策略都是可信的。由于委托者只能将自己的全部或者部分权限委托给受托者,只有在委托者具备权限的基础上才能实施委托,因此委托策略可信与否取决于委托者是否具备权限,下面给出可信策略的定义:

定义2(可信策略)如果一个策略中不包含<PolicyIssuer>元素,那么该策略是可信的;如果策略中包含<PolicyIssuer>元素,且<PolicyIssuer>元素所指示的用户具备<Target>元素中所描述的权限,那么该策略为可信策略,否则为非可信策略。

文献[2]将策略进行了分类,引入了管理策略和访问策略,其中管理策略用于指定用户可以委托权限的范围,策略判定时,如果匹配的策略是一条非可信策略,则建立一个策略请求,通过匹配与该请求相符的管理策略来判断策略是否可信。这种方法增加了策略的类型和数量,且需要建立管理请求。本文提出一种基于权限检查的方法,当与访问请求匹配的策略是一条委托策略时,不能立即判定请求,应先判定<PolicyIssuer>中指示的用户是否具备权限,需要重新在策略集中查找一条策略,该策略指示<PolicyIssuer>中指示的用户具备权限。该方法与文献[2]的方法相比,无需增加策略的类型,无需提出管理请求,而是通过重新生成访问请求判定策略的发布者是否具备权限。

假设一个用户的请求如下:

该请求表示一个角色为“teacher”的用户请求以“read”的方式访问资源“document No.123”。如果与这个用户请求匹配的策略是一条委托策略,该策略中元素<PolicyIssuer>的值为用户Alice,需要重新生成一个访问请求,格式如下:

定义3(源策略)根据一个非可信策略的<PolicyIssuer>元素重新提出访问请求,与该请求匹配的策略是该非可信策略的源策略。

如果一条委托策略的源策略依然是一条委托策略,则需继续构造新的访问请求,直到匹配到一条访问策略,如果最后未匹配到访问策略,那么与初始请求匹配的委托策略不能作为允许或拒绝用户请求的依据。判定一个策略是否可信的过程相当于委托链的追溯过程,如果找到了原始委托者且该委托者具备请求的权限,那么策略是可信的。

本文提出一种为委托权限指示信任来源的方法,该方法在<Target>中添加一个元素<TrustSource>,其取值可能为None、Indeterminate或源策略ID。None表示策略不可信;Indeterminate表示策略的可信性不确定;而如果<Trust-Source>的值为源策略ID,且源策略是可信的,那么该策略就是可信的。

在策略匹配时,如果匹配到的策略<TrustSource>的值为None,则将该策略裁减;如果<TrustSource>的值为源策略的ID,则需要验证源策略的可信性,如源策略是可信的,则无需再匹配策略;如果源策略不存在或不可信,或者<TrustSource>的值为Indeterminate,则需要重新提出一个请求,验证原始策略的可信性;如果验证的结果是可信的,则将<TrustSource>的值置为源策略ID,如验证的结果是不可信的,则将<TrustSource>的值置为None。增加信任关联后,如果与访问请求匹配的策略是一条委托策略,则该委托策略的可信与否完全取决于它的源策略是否可信,不需要重新生成访问请求并进行策略匹配,极大地提高了策略决策的效率。

为了验证信任关联法的性能,本文测试了该方法在公文处理业务流程中的应用。通过在公文处理业务流程中提交拟稿、修改、签署、审核和公示等活动的Web服务上设立策略执行点,并制定公文处理的访问控制策略,分析在增加了信任关联方法后,策略决策的效率。实验采用Java-based XACML editor编写策略,采用XACML.NET的策略评估引擎实现策略决策,使用.NET中System.Xml命名空间下的查询函数编写策略查找代码,实现信任关联方法。测试中,由于各个活动安全需求不同,其策略的组成也不一样。其中签署活动安全需求较高,其策略中不包含委托策略,全部是访问策略,而提交拟稿活动和修改活动中委托策略的比例较高。测试中假定所有的委托策略都是可信的,且<TrustSource>元素的值都指向源策略ID。

测试方法如下:

(1)随机生成一条可被匹配的访问请求。

(2)如果匹配该请求的是访问策略,则直接判定该请求,如果匹配该请求的是委托策略,则使用两种方法进行对比。原方法重新生成新的访问请求,并进行策略匹配,直到找到一条访问策略,并判定请求。信任关联法获取源策略ID,根据源策略的可信性选择是否允许请求。

(3)重复以上实验100次,并取策略决策时间的平均值。

测试结果如图4所示。

图4 信任关联法时间性能对比

由于在提交拟稿和公文修改活动中委托策略的比例较大,策略决策时匹配到委托策略的概率也较大。原方法在匹配到委托策略时,需要再次进行策略匹配以验证策略的可信性。再匹配的结果仍有很大的概率为委托策略,可能需要多次策略匹配,直到匹配到一条访问策略为止。如果采用信任关联法,当匹配到委托策略时,无需再次匹配策略,直接通过验证源策略的可信性来判断委托策略的可信性。在以上两个活动中,信任关联法能够减少策略匹配的次数,显著提高策略决策的效率。在公文审核和公文公示活动中委托策略的比例较小,公文签署活动中没有委托策略,出现多次策略匹配的概率较小,两种方法在这些活动中所消耗的时间基本相同。以上分析说明,当策略集中委托策略数量较多时,信任关联法能够提高委托策略的决策效率,在一定程度上满足了业务流程访问控制决策实时性的要求。

5 结论

针对业务流程的访问控制策略需求,提出了一种扩展的访问控制策略执行框架,并对XACML策略的自然语义进行扩充,使其能够描述委托策略,并且与流程中的活动相关联。由于在策略集中可能存在大量策略,并且委托策略的可信性需要验证,会大大影响策略匹配的效率,本文提出两种策略决策优化方法,其中逐步裁减法能够减少策略元素比对次数,信任关联法可建立策略可信链,减少策略匹配的次数。本文方法可为业务流程提供灵活、可委托、与流程状态相关的访问控制策略,能较好地满足业务流程的访问控制需求。

[1]Paci F,Bertino E,Crampton J.An access control framework for WS-BPEL[J].International Journal of Web Services Research,2008,5(4):20-43.

[2]Rissanen E,Lockhart H,Moses T.XACML3.0 administrative policy[EB/OL].(2009-04)[2012-01].http://www.oasis-open.org/ committees/tc-home.php?wg_abbrev=xacml.

[3]李晓峰,冯登国,何永忠.XACML Admin中的策略预处理研究[J].计算机研究与发展,2007,44(5):729-736.

[4]李晓峰,冯登国,徐震.基于扩展XACML的策略管理[J].通信学报,2007,28(1):103-110.

[5]OASIS.Extensible Access Control Markup Language(XACML)V3.0[EB/OL].(2009-04)[2012-01].http://docs.oasis-open.org/ xacml/3.0/xacml-3.0-core-spec-cd-1-en.pdf.

[6]刘晓玲,汤庸,冀高峰,等.基于TBAC的BPEL访问控制技术研究[J].计算机科学,2007,34(2):132-136.

[7]叶春晓,韩永征,胡海波.“Chinese Wall”安全策略中的委托研究[J].计算机工程与应用,2011,47(29):121-123.

[8]叶春晓,吴中福,符云清,等.基于属性的扩展委托模型[J].计算机研究与发展,2006,43(6):1050-1057.

SHANG Zheng1,2,ZHANG Bin1,2

1.Institute of Electronic Technology,PLA Information Engineering University,Zhengzhou 450004,China
2.Henan Province Key Laboratory of Information Security,Zhengzhou 450004,China

By analyzing the requirements of access control for business process,an extended enforcement framework that supports policy management based on state of business process is proposed.By introducing element<PolicyIssuer>and defining semantic of element<Condition>in policy schema,access control policy and delegation policy can both be described and least privilege at task level can be achieved.In order to reduce time cost of policy decision in case that numbers of unrelated policies and delegation policies are large,two methods which can reduce the numbers of matching policies and policy elements are proposed.

Extensible Access Control Makeup Language(XACML);access control;business process;policy;delegation

在分析业务流程访问控制策略需求的基础上,对经典的XACML策略实施框架进行了扩展,提出一种能够根据业务流程执行状态管理策略的实施框架。通过在策略模式中引入<PolicyIssuer>元素和定义<Condition>元素的语义,使其能够描述访问策略和委托策略,并支持任务级最小特权的实现。给出了两种策略决策优化方法,针对策略集中无效策略数量过多的问题,采用逐步裁减法减少策略元素比对的次数,针对策略集中委托策略数量过多且需要验证可信性的问题,采用信任关联法减少策略匹配的次数,有效地提高了策略决策的效率。

XACML策略;访问控制;业务流程;策略;委托

A

TP393

10.3778/j.issn.1002-8331.1201-0053

SHANG Zheng,ZHANG Bin.Access control policy for business process and its optimal methods in policy decision.Computer Engineering and Applications,2013,49(19):83-87.

国家重点基础研究发展规划(973)(No.2011CB311801);河南省科技人才创新计划(No.114200510001)。

商铮(1986—),男,硕士研究生,主要研究领域为信息安全;张斌(1969—),男,博士,教授。E-mail:shangz302@163.com

2012-01-15

2012-04-06

1002-8331(2013)19-0083-05

CNKI出版日期:2012-06-28http://www.cnki.net/kcms/detail/11.2127.TP.20120628.1413.001.html

猜你喜欢
访问控制业务流程委托
RPA机器人助业务流程智能化
STK业务流程优化的探究
企业财务管理、业务流程管理中整合ERP之探索
ONVIF的全新主张:一致性及最访问控制的Profile A
基于财务业务流程再造的ERP信息系统构建探析
绩效评价在委托管理酒店中的应用
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
治理现代化:委托制下的权力清单制