基于BPMN扩展的安全约束工作流模型
2018-03-20严张凌
严张凌,代 茂,彭 強
(1.四川大学锦城学院,四川 成都 611731;2.四川大学网络教育学院,四川 成都 610065)
1 概 述
流程感知信息系统用于控制和监视业务活动,典型的系统包括工作流管理系统、企业战略资源调配系统和客户关系管理系统等[1]。在构建一个安全的流程信息系统时要考虑很多的安全问题,包括身份认证、授权、访问控制、数据完整性、审计、不可抵赖和可管理性等[2]。文中重点讨论访问控制问题。
工作流扭转的一个经典模型是Petri网,将权限与Petri网结合是流程感知信息系统研究的一个方向[3-4]。在传统的信息系统的访问控制领域,RBAC模型应用最为广泛,它是20世纪90年代迅速发展起来的用于大规模系统中管理和实施安全的一种技术。其中Ravi Sandhu提出的RBAC96模型[5]最为经典,后经美国国家标准与技术研究院(the national institute of standards and technology,NIST)进行了标准化[6],分为4个部件模型:基本模型RBAC0、角色分级模型RBAC1、角色限制模型RBAC2和组合模型RBAC3。RBAC的基本概念就是把权限与角色关联,通过为用户分配合适的角色而获得相应的权限,如图1所示。
图1 RBAC模型结构
RBAC模型的优点是通过角色能够表达企业内部组织和人员之间的复杂关系,用户能够灵活地在不同角色(职位)之间切换,从而便于授权管理[7]。但RBAC中的权限是资源和操作组合,它与工作流中以任务为中心的模型不太吻合,所以Thomas等提出了基于任务的访问控制(task-based access control,TBAC)模型[8],其主要思想是通过授权步机制解决工作流运行过程中活动实例与用户权限的同步问题,每个活动对应一个授权步。TBAC采用面向任务的观点,从任务的角度来建立安全模型和实现安全机制。在这个模型中,权限分配给任务,任务再分配给角色,在任务处理过程中提供动态的、实时的安全管理[9]。
TBAC模型虽然较好地提供了工作流中的安全模型,却与企业信息系统中普遍采用的RBAC模型不兼容,造成取舍困难。对此,邢光林等提出了基于任务和角色工作流改进模型(task role-based controllability,TRBC)[10-11];孙军红等[12]也对该模型进行了扩展与研究,其主要组成部件如图2所示。
图2 基于角色和任务的工作流访问控制模型
其基本思想是:角色和权限不直接挂钩而是通过任务把角色和权限联系在一起,然后给用户指派合适的角色,用户通过所指派的角色获得可以执行的任务,然后在执行某个任务的某个具体实例时获得该任务所允许访问的客户的权限,这样更方便权限粒度的控制和管理[12]。
TRBC模型结合了RBAC中的角色与TBAC中的任务两个核心概念,将RBAC中的权限与角色的绑定移到了与任务绑定,然后将任务分配给角色。对于任务成为了授权中必不可少的一环,这样虽然对于工作流是可行的方法,但却忽略了工作流之外的信息系统的权限控制需求,限制了该模型的使用范围。
文中从信息系统中的资源分配入手,通过定义工作流与信息系统边界,保证信息系统的权限控制模型在工作流引擎中发挥相同的控制作用,而避免了TBAC那样在工作流引擎中单独定义权限控制模型,使得RBAC模型在工作流引擎内外达到统一。
2 基于角色的安全约束工作流模型
在企业组织机构中的角色概念特别适合于进行细粒度的授权控制,所以基于角色的访问控制受到了特别重视[13]。现在,一般普遍接受的安全工作流系统要满足如下策略[14]:
访问控制:能够控制特定角色访问指定资源或对该资源进行特定操作。
职责分离原则:遵循不相容职责相分离,实现合理的组织分工,工作流程必须由一个以上的角色完成。
最小特权原则:工作流中用户在执行具体的任务实例时,只能访问该任务所允许操作的资源。
下面将讨论这些策略是如何被建模以及如何在工作流驱动的信息系统中被遵循的。
2.1 安全约束的形式化描述
为了给出安全约束的形式化描述,首先定义用户角色关联和任务角色关联的形式化描述。任务角色关联需要解决的是对一个特定角色,如何选择特定的某一个或某些角色来执行,然后通过用户角色分配机制将该任务定位到某个特定的用户。
将任务关联到一个角色集合是该安全约束工作流模型中最基础的一步,其形式化描述如下:
T={ti|i=1,2,…,l}是一个任务实例集,一个任务实例是某个任务的动态表示。
R={ri|i=1,2,…,m}是一个角色集。
(R,<)表示对R中的元素进行比较,该比较实际上表示的是角色的分级层次。设r1,r2∈R,r1 U={ui|i=1,2,…,n}是一个用户集,表示系统中各个特定的用户集合。 TR⊆(T×R)表示任务与角色之间多对多的关联关系。 UR⊆(U×R)表示用户与角色之间多对多的关联关系。 R(t)={rm∈R:∃(tl,rm)∈TR(t)}表示被授权能够执行任务tl的特定角色集。 U(t)={un∈U:∃(un,rm)∈UR,rm∈R(t)}表示被授权能够执行任务tl用户集。 通过以上定义得出结论,通过任务、角色和用户之间的两个多对多关联,已可以将任务tl具体指定给一个潜在用户集U(t)。当该任务tl被实例化时,潜在用户集U(t)的所有用户均可见任务tl,直到某一个用户un对tl声明已占有该任务(即准备执行该任务)。一旦用户声明后,任务实例tl与un就表现为一对一的关系。 OP={opi|i=1,2,…,o}表示操作集,表示对信息系统资源的动作。 RES={resi|i=1,2,…,p}表示资源集,表示系统中的资源,也是安全约束模型中需要保护的目标对象。 P={pi|i=1,2,…,q}表示权限集,其中pi=(opi,obji)。 RP={rpi|i=1,2,…,r}表示角色的权限集。 UAP(n)={pn∈P:,∃(un,rm)∈UR,(rm,pq)∈RP}表示用户un的权限集,首先通过用户与角色的关联获取所有角色,再通过角色与权限的关联获取这些角色的所有权限,然后作并运算得到该用户的所有权限。 需要注意的是,为了满足最小特权原则,UAP(n)不能直接作为工作流运转过程中的权限判断依据,因为它对于完成任务而言太大了,其中可能包含了完成该任务所不需要的权限。例如,某出版社的发文工作流,总经理在审稿人员缺席的情况下可以代为审稿,UAP(总经理)>UAP(审稿员甲),此时就破坏了最小特权原则。因此,还需要定义下面这个与任务关联的权限集: UTP(t)={pq∈P:,∃(rm,pq)∈RP,(tl,rm)∈TR(t)}表示用户un在执行任务tl时的角色对应的权限集。由以上定义可以推出:UTP(t)⊆UAP(t)。 工作流建模已被许多语言进行了定义,其中BPMN是被大家广为接受的一种容易理解且语言丰富的建模符号,由于易于扩展,许多学者从安全角度对其进行扩展,以便表达特定的安全需求。其中较为知名的有文献[14]中安全需求模型的BPMN扩展和文献[15]中的安全BPMN模型。 根据前文的形式化定义,要想在工作流模型中对安全约束进行建模,就属于在展现人工任务的同时展现附于其上的角色集。另外,为了实际操作方便,在元模型中还对人工任务进行了分组,以便简易快速地表示一群拥有相同权限的任务。在BPMN元模型[16]的基础上,为其增加安全约束来表达前文的形式化描述。扩展的BPMN元模型如图3所示。 图3 扩展的BPMN元模型 一个活动从通常意义上来说就是一次特定的任务,只是在这些任务中有一个特殊的属于用于标识该任务是否为人工任务,通常人工任务都是阻塞型的,即流程一旦执行到该步骤将会被挂起直到明确地被推进。 任务的分组在本质上并不影响流程的正常运行,组仅仅是用来简化为一系列任务定义和描述安全约束的目的。组可被用于部件、泳道和各种任务。把多个任务实例或循环的任务作为一个组后,即可把它当作一个任务来对待,以此来简化设计和展现形式。 在企业信息系统中,合同的签订是一个重要且典型的工作流应用场景,该实例来自某电力企业内部信息系统中的合同签订流程(见图4),涉及3个角色:合同谈判人、项目管理办公室和分管领导。 系统的安全策略为: (1)合同谈判人只能对合同进行拟稿和提交工作,且只能看到自己提交的合同; (2)项目管理办公室可对提交的合同初稿进行审核,主要是对单价、数量和总金额的审核; 图4 合同签订流程 (3)分管领导只能看到自己分管的部门下属员工提交的合同,并且这些合同必须经过项目管理办公室的审核,分管领导可以进行审批以使合同生效。 上述流程用文中的安全约束模型描述如下: R={合同谈判人,项目管理办公室,分管领导,出纳} RES={合同,合同附件,票据} OP={新增,读取,删除,修改,审核,签订} P={(新增,合同),(读取,合同),(删除,合同),(修改,合同),(审核,合同)(签订,合同),(新增,附件),(读取,附件),(修改,附件),(签订,附件),(新增,票据),(读取,票据),(删除,票据),(修改,票据),(审核,票据)} 假设u1=张三,UR(u1)={项目管理办公室,出纳},则: UAP(审核)={(读取,合同),(审核,合同),(读取,票据),(删除,票据),(修改,票据),(审核,票据)} UTP(审核)={(读取,合同),(审核,合同)} 通过UAP可以发现,RBAC模型能很好地为用户关联到具体权限,但由于RBAC模型未对用户同时扮演的角色数量作限制,所以若直接在工作流中使用RBAC则会造成权限超过流程所要求的权限,违反了最小特权原则。但是,通过前文所述的任务与角色的关联,并加上UTP限制,可以减小用户在流程运行中所需要的权限,从而有效地进行安全约束。 工作流的安全约束模型是当前WFMS研究的一个重要课题,如何在安全性和可操作性间取得平衡是一个难点。在分析了面向信息系统的传统RBAC模型,面向工作流的TBAC模型和二者的改进TRAC模型的基础上,提出了一种更为简便的RBAC应用模型,使得信息系统中的RBAC与工作流的安全约束达到了统一。然而,在元模型的扩展上,目前使用的是注释的子类形式,缺乏有效的验证机制,期望在BPMN 2.0中加以改进。 [1] RUSSELL N,VAN DER AALST W M P,TER HOFSTEDE A H M,et al.Workflow resource patterns:identification,representation and tool support[C]//Proceedings of the 17th international conference on advanced information systems engineering.Berlin:Springer-Verlag,2005:216-232. [2] LI S,KITTEL A,JIA D,et al.Security considerations for workflow systems[C]//Network operations and management symposium.[s.l.]:IEEE,2000:655-668. [3] 张 亮,姚淑珍.一种新的基于Petri网的分层工作流过程模型[J].计算机集成制造系统,2006,12(9):1367-1373. [4] 沈 满,赵嵩正,刘 婧.依据角色权限的审批工作流模型构建[J].计算机工程与应用,2015,51(4):235-239. [5] SANDHU R S,COYNE E J,FEINSTEIN H L,et al.Role-based access control models[J].Computer,1998,29(2):38-47. [6] FERRAIOLO D F, SANDHU R, GAVRILA S, et al. Proposed NIST standard for role-based access control[J].ACM Transactions on Information and System Security,2001,4(3):224-274. [7] 徐 宏,邰伟鹏.面向工作流的RBAC模型研究[J].计算机工程与设计,2012,33(4):1295-1299. [8] THOMAS R K, SANDHU R S. Proceedings of the IFIP TC11 WG11.3[C]//Eleventh international conference on database security XI:status and prospects.[s.l.]:[s.n.],1998:166-181. [9] 杨勇虎,刘振宇.工作流中TBAC权限控制模型的扩展与UML描述[J].计算机系统应用,2008,17(8):34-37. [10] 邢光林,洪 帆.基于角色和任务的工作流访问控制模型[J].计算机工程与应用,2005,41(2):210-213. [11] 周 炜.具有时空约束的TRBAC模型在OA中的应用[J].网络安全技术与应用,2014(8):116-117. [12] 孙军红,李 娟.一种基于任务和角色的工作流访问控制模型[J].计算机工程与应用,2008,44(30):21-23. [13] AHN G,SANDHU R.Role-based authorization constraints specification[J].ACM Transactions on Information and System Security,2000,3(4):207-226. [15] ACHIM D B,GERO L,ISABELLE H,et al.SecureBPMN:modeling and enforcing access control requirements in business processes[C]//Proceedings of the 17th ACM on access control models and technologies.New York,NY,USA:ACM,2012:123-126. [16] KALNINS A,VITOLINS V.Use of UML and model transformations for workflow process definitions[C]//Baltic DB & IS.[s.l.]:[s.n.],2006:3-15.2.2 安全约束的元模型
3 实例及安全性分析
4 结束语