APP下载

基于区块链的协作流程数据共享与访问控制

2022-04-24韦懿杰陈耀旺

软件导刊 2022年4期
关键词:数据文件访问控制业务流程

韦懿杰,陈耀旺

(杭州电子科技大学计算机学院,浙江杭州 310018)

0 引言

随着全球商业环境变得日益复杂和动荡,许多商业体通过加强跨组织的业务协作和资源共享来达成更多业务目标。协作业务流程执行涉及到广泛的信息与资源交换,相应的数据文件中可能包含用户的敏感信息,如果没有安全的数据共享与访问机制,用户并不愿意共享其数据。

近年来,随着数字加密货币热度越来越高,区块链作为其底层支持技术得到了广泛关注。目前已经有许多研究者将区块链技术应用于协作业务流程管理领域,允许流程参与者在链上执行或监控业务流程。但现有研究多关注流程的执行控制,缺乏数据存储和访问控制的有效方案。

1 相关研究

近年来,区块链技术由于具有去中心化、不可篡改和可追溯等特性而得到广泛关注。例如,徐倩倩将现有区块链研究划分为区块链基础理论与区块链技术在金融等领域的应用两个方面;饶东宁等分析了区块链与供应链的现状,探究了在物流供应链中引入区块链技术的应用前景;Mendling等指出使用区块链技术能够促进业务流程管理领域系统跨网络执行、监测或改进等相关研究的发展;López-Pintado等开发了基于以太坊区块链的业务流程执行引擎Caterpillar;Mercenne等在该引擎上的基础上开发了Blockchain Studio框架,该框架能够在以太坊区块链上支持基于角色的业务工作流生成和自动化;Abid等扩展了Caterpillar工具,通过将业务流程模型中的时间约束转换为智能合约代码以支持时间感知的业务流程;Ladleif等在智能合约中提供了支持时间度量的解决方案并采用准确性和信任度比较时间度量的属性,最后将该解决方案应用于业务流程执行过程中;Viriyasitavat等从“工业4.0”角度出发,提出一种基于区块链技术的自动化业务流程管理方案,能够在开放环境下支持选择和组合服务;Prybila等探索了使用比特币区块链支持业务流程执行的方案,并为该方案设计了实现原型,然而该方案没有考虑到共享数据的隐私性,且比特币编程技术的局限性也限制了该原型的功能;Sturm等基于业务流程建模标注(Business Process Modeling Notation,BPMN)过程图提出一种基于区块链的去中心化流程执行体系;唐玄昭等提出一种基于区块链的业务流程互操作框架以支持多方跨组织流程协同。

为解决传统访问控制技术中访问权限难以界定、第三方难以信任等问题,许多研究者基于区块链提出访问控制方案并取得了不少成果。例如,Maesa等提出一种基于区块链技术的访问控制方法,该方法能够发布用于表示访问资源权限的策略。此外,该学者还提出一种基于智能合约的访问控制方法,该方法结合传统访问控制技术与区块链技术,将XACML体系架构的部分功能转化为以太坊智能合约以支持防篡改的链上访问控制。Cruz等提出一个名为RBAC-SC(Role-based Access Control using Smart Contract)的智能合约访问控制方法,该方法使用以太坊智能合约作为组织角色授权的基础设施,并提出用于验证用户角色所有权的质询响应认证协议;Steichen等提出一种基于区块链的星际文件系统(Inter Planetary File System,IPFS)分布式访问控制方法,该方法解决了区块链无法存储大规模数据的缺点;López-Pintado等提出一种用于协作业务流程执行的角色绑定模型和绑定策略规范语言,同时还对该规范语言赋予petri网语义以检测绑定策略是否会发生死锁;Rondanini等提出在不同组织间建立协作与资源共享的访问控制方法,该方法在智能合约中部署一组授权策略,允许任务执行者在任务激活期间访问任务执行所需资源;Akhtar等针对分布式工作流中资源缺乏可审计的访问控制方案等问题,提出一种能够生成最优复合访问控制策略的方法并开发了基于以太坊区块链的实现原型。

目前,基于区块链的访问控制技术多为访问控制策略的链上化,没有考虑到基于区块链协作业务流程中的数据文件如何存储以及任务动态性对于访问权限的影响。针对以上问题,本文提出一个基于区块链的协作业务流程管理框架,该框架基于BPMN编排图模型支持协作业务流程的链上执行过程,同时引入IPFS实现数据的链下存储,最终通过链上存储文件哈希值和链下存储文件内容的方式缓解了区块链存储文件的压力,提高了协作业务流程数据的安全性,降低了区块链数据存储成本。此外,本文还提出一个基于任务和属性的访问控制模型(Task-Attribute-Based Access Control,TABAC),该模型能在区块链上验证资源访问者拥有的权限,为协作业务流程提供了动态、灵活、细粒度和可追溯的数据访问控制支持。

2 设计方案

2.1 协作业务流程执行引擎

为了在区块链上支持协作业务流程的数据共享与访问控制,本文提出一个基于智能合约的协作业务流程引擎,该引擎基于BPMN编排图驱动,能够在以太坊区块链上支持协作业务流程的执行。该引擎采用通用智能合约的设计方法,即设计了能够提供编排图模型数据存储和流程实例执行等功能的智能合约,合约内部包含了通用数据结构体和合约函数。该引擎的执行概念如图1所示。

Fig.1 Conceptual diagram of execution engine图1 执行引擎概念

首先需要部署通用智能合约,通过翻译器将编排图模型解析为符合通用数据结构体格式的模型数据文件,通过部署器发送交易将模型导入至通用智能合约中。随后流程创建者调用合约函数创建流程实例,完成实例创建后,按照相应的编排任务和消息状态决定如何发送消息。当消息被接收者确认后,该框架能够自动执行相应的编排任务并根据模型数据以及消息内容决定是否启用下一编排任务,直至最后一个编排任务到达已完成状态时表示该实例执行完成。

2.2 数据存储方案

协作业务流程执行过程往往会涉及到数据文件的交互与共享,而当前区块链无法在链上支持大量数据存储。针对该问题,本文在区块链上存储文件的资源地址标识符,使数据文件脱离区块链保存,访问者需要根据链上存储的资源地址标识符访问数据文件。协作业务流程执行过程中的数据文件具有隐私性和时效性。为此,本文在框架内部增加了链上文件管理合约、访问控制合约和链下IPFS代理层组件,其中文件管理合约是一个用于存储数据文件哈希值的智能合约;访问控制合约是一个用于验证资源访问者权限的智能合约;IPFS代理层用于拦截流程参与者对IPFS中存储数据文件的访问请求。在本文框架中,流程参与者不再直接与IPFS进行交互,而是通过IPFS代理层上传或下载文件。

流程参与者上传文件的时序如图2所示,当流程参与者上传文件时,IPFS代理层将调用链上访问控制智能合约以验证流程参与者是否拥有对应文件的写入权限,如果拥有该权限,IPFS代理层将使用内部保存的以太坊账户公钥加密文件,将加密后的文件上传至IPFS并将其产生的哈希值写入到文件管理智能合约中。如果流程参与者没有该文件的写入权限,IPFS代理层将拒绝流程参与者的上传文件请求。流程参与者请求下载文件的过程与上传过程类似,同样需要由IPFS代理层和链上访问控制智能合约进行权限验证。当流程参与者拥有文件的读取权限时,代理层在IPFS中检索到相应的文件资源并使用以太坊私钥解密文件,然后将解密后的文件返回给流程参与者。

Fig.2 Sequence diagram of uploading file图2 上传文件时序图

2.3 访问控制方案

基于区块链的业务流程管理相关工作的重点在于业务流程模型的执行控制,但这些工作没有考虑到协作业务流程执行过程中涉及到的数据资源访问控制问题。

本文提出的TABAC模型结合了基于任务的访问控制(Task-Based Access Control,TBAC)和基于属性的访问控制(Attribute-Based Access Control,ABAC)模型的优点,能够为数据资源提供灵活、动态的访问控制。该模型中业务流程可被分解为若干任务,任务包含任务属性,这些属性用于描述任务的特征,如任务名称、任务状态和任务类型等。用户包含用户属性,在协作业务流程环境下用户的属性可能来自多个不同的组织。TABAC模型通过用户属性和任务属性以及由这些属性组成的访问控制策略验证用户在协作业务流程执行过程中拥有的权限。

TABAC模型的访问控制策略实施过程如图3所示。资源请求者向策略执行点发送资源请求,策略执行点向策略决策点发起验证权限请求。策略决策点根据从策略管理点中获得的策略规则(属性条件表示式)和从策略信息点处获得的用户属性以及任务属性评估资源访问者是否拥有权限,然后将决策结果返回给策略执行点。当决策结果为拒绝时,策略执行点将拒绝资源请求者;当决策结果为允许时,策略执行点允许资源请求者对资源进行访问。

Fig.3 TABAC access control strategy implementation process图3 TABAC访问控制策略实施过程

在协作业务流程执行过程中,组织间缺乏信任,因此策略实施过程往往是交给可信的第三方执行,但这种方式存在单点故障引起访问控制失效、访问控制不透明和难以追溯等问题。TABAC方案支持在智能合约中验证资源访问者拥有的权限,基本思想是将用户、任务属性和访问控制策略存储于智能合约中,当用户访问资源时,根据链上存储的访问控制策略以及获取的用户属性和任务属性计算用户是否拥有资源访问权限。通过该方案,本文框架能够支持动态、灵活和细粒度的数据访问控制,且资源访问请求的决策结果均以不可篡改的交易形式存储在区块链之中,任何用户都能够对资源访问请求的执行结果进行追溯。

3 协作业务流程管理框架

本文提出的协作业务流程管理框架链上合约主要涉及属性管理合约、文件管理合约、实例合约和访问控制合约等,其结构如图4所示。以下将给出相应智能合约的定义与功能。

3.1 属性管理合约(AMC)

AMC是一个存储流程组织库OL、用户库UL和属性库AL的智能合约,即AMC={OL,UL,AL}。其中OL表示协作业务流程中的流程组织集合;UL表示参与协作业务流程的用户集合,即UL={U,U,…,U},其中U表示业务流程的参与用户;AL表示描述用户相关特征或信息的属性集合。

Fig.4 On-chain contract structure图4 链上合约结构

3.2 文件管理合约(FC)

FC是一个用于存储共享数据文件哈希地址的智能合约,由合约创建者FCC和数据文件库FL组成,即FC={FCC,FL}。其中,FCC用于记录该智能合约创建者的以太坊账户;FL表示协作业务流程中产生的共享数据文件集合,即FL={F,F,…,F},F表示协作业务流程中产生的共享数据文件。FC能在区块链上管理协作业务流程执行过程中产生的共享数据文件,并将对应数据文件的哈希值存储于链上,当资源访问者拥有共享数据文件的访问权限时,其能通过IPFS代理层和数据文件哈希值获取文件。

3.3 实例合约(IC)

IC是一个用于存储流程模型PM以及流程实例库IL的智能合约,即IC={PM,IL}。其中PM包含模型执行的控制流程逻辑,IL包含多个流程实例的执行状态与执行过程。

3.4 访问请求库(ARL)

ARL中存储着所有的资源访问请求R,即ARL={R,R,…,R}。一个资源访问请求R描述了资源访问者对资源文件发起的一次访问请求,该请求由资源访问者RU、访问资源文件RF、对资源执行的操作RA和资源访问请求结果RR组成,即R={RU,RF,RA,RR}。

资源访问者对于资源文件的每一次访问请求都会被记录到访问请求库ARL中。在资源访问请求R中,RU的实际传入值为资源访问者的以太坊账户地址,通过该地址能够在AMC中查询到该资源访问者的相关属性;RF的实际传入值为资源文件名称、实例合约地址和实例id的三元组,该三元组能够唯一标识一个业务流程实例执行过程中产生的资源文件,且通过IC地址和实例标识id能够在IC中获取对应流程实例的任务属性;RA的传入值为Write或Read,表示对相应资源文件进行写入或读取操作;RR表示资源访问请求的结果,其值在资源访问请求上传后产生,有许可和拒绝两种结果。

3.5 访问策略库(APL)

APL中存储着所有的资源访问控制策略P,即APL={P,P,…,P}。资源访问控制策略P是指当满足一定条件后即可对资源文件进行相应操作的许可,该策略由资源文件PF、资源操作PO和策略规则PR组成,即P={PF,PO,PR},其中PF用于描述访问资源的名称;PO描述了能够对该资源进行的操作;PR描述了允许访问的资源规则,其能够被更进一步细分为用户属性策略规则UPR和任务属性策略规则TPR,即PR={UPR,TPR}。

3.6 访问控制合约(ACC)

ACC是一个由访问请求库ARL和访问策略库APL组成的智能合约,即ACC={ARL,APL}。该合约用于存储相关的资源访问请求和控制策略,其内部包含匹配资源访问请求和资源访问控制策略的合约函数,能够对IPFS代理层上传的资源访问请求进行评估,进而匹配相应资源访问控制策略并得出最后的资源访问请求结果RR。

4 实验评估

4.1 案例与实验环境

本文建模、分析和执行了1个以HE助听器公司为主导的真实商品订购业务流程,该流程执行过程涉及4个组织(门店客户、生产商、物流商、发货承运商)、14个元素和11条消息。4个组织之间通过发送消息推动流程实例执行,共同完成商品订购目标。其中门店客户为HE公司的加盟商,负责出售医疗助听器;生产商为HE公司总部,负责处理订单请求、联系物流商;物流商为物流公司,负责管理HE公司商品库存并处理发货请求;发货承运商为负责运输助听器的快递公司。在传统分布式业务流程执行环境下,该业务流程必须在一个可信任第三方的协作下执行,否则不同组织之间产生冲突时将难以解决。本文框架引入区块链技术,不同组织间产生的交互记录都会被存储在区块链上,不需要第三方介入即可实现可信任的流程执行。

本文框架中所有链下组件基于JavaScript和Java实现,链上智能合约使用solidity编写并通过remix进行调试和编译,完成编译后将其部署于Ganache搭建的以太坊私链中。此外,本文框架在链下搭建了IPFS,链上流程实例执行过程中产生的数据文件将会被存储到IPFS中。

4.2 成本分析

选取10个执行过程覆盖模型所有路径的流程实例,将流程实例的轨迹在框架中重播,并以此分析框架的成本开销。本文框架的执行总成本主要分为框架部署成本、数据导入成本、实例创建与执行成本以及文件管理与访问控制成本4个部分。其中,框架部署成本表示将本文框架中包含的智能合约部署到以太坊区块链上需要消耗的Gas数量,为11 673 340;数据导入成本表示将流程模型、协作流程组织、文件访问控制策略部署到相应的智能合约中需要消耗的gas数量,合计10 091 757。

本文案例中创建并执行10个流程实例需要消耗的Gas数量为28 808 682,详细Gas消耗见表1。实例创建与执行成本由执行创建实例、发送消息、确认消息以及完成任务4个函数执行成本合计而成,每一个流程实例的平均执行成本约为288万Gas。

Table1 Cost of instance creation and execution(10 instances)表1 实例创建与执行成本(10个实例)

本文案例中上传、下载文件资源以及发送资源访问请求需要消耗的Gas数量为22 677 354,详细Gas消耗见表2。文件管理与访问控制成本由新增文件、更新文件、删除文件以及新增资源访问请求4个函数执行成本合计而成,每个流程实例在文件管理和访问控制上需要消耗约227万Gas。

采用本文框架的案例执行总成本见图5,共需要付出11 673 340Gas的框架部署成本与10 091 757Gas的数据导入成本,即在创建流程实例前需要付出21 765 097Gas的成本。而在此之后,本文框架需要为每一个流程实例付出2 880 868Gas的实例创建与执行成本以及2 267 735Gas的文件管理与访问控制成本,即每个流程实例的执行需要消耗5 148 603Gas。

Table 2 Cost of document management and access control(10 instances)表2 文件管理与访问控制成本(10个实例)

Fig.5 Frameexecution total cost图5 框架执行总成本

5 结语

针对现有区块链协作业务流程执行过程中难以存储大规模数据文件和缺乏动态访问控制方案的问题,本文提出基于区块链的协作业务流程管理框架。与现有框架相比,本文框架引入IPFS技术,能大幅度降低链上数据存储的成本开销。此外,本文提出TABAC访问控制方案,该方案不需要第三方提供访问控制服务,能够支持细粒度、灵活和动态的数据访问控制,且访问控制策略和权限验证结果可被存储在智能合约中,为协作业务流程执行过程中的数据访问提供透明化、防篡改的记录。下一步将进一步优化本文框架,降低实例执行成本,使用更多用户和任务属性进行测试并开发相应的可视化界面。

猜你喜欢

数据文件访问控制业务流程
RPA机器人助业务流程智能化
STK业务流程优化的探究
企业财务管理、业务流程管理中整合ERP之探索
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
ONVIF的全新主张:一致性及最访问控制的Profile A
基于财务业务流程再造的ERP信息系统构建探析
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术