基于区块链的业务协同数据安全共享方案

2021-07-10 05:49
信息安全研究 2021年7期
关键词:拥有者令牌提供者

王 冠 丁 浩

1(北京工业大学信息学部 北京 100124) 2(可信计算北京市重点实验室 北京 100124)

在社会信息快速发展的今天,跨部门的电子政务业务协同办公非常重要.《国务院关于加快推进全国一体化在线政务服务平台建设的指导意见》(国发〔2018〕27 号)要求,加强顶层设计,整合各类政务服务资源,跨地区、跨部门、跨层级数据共享和业务协同,全流程网上办理,推动线上线下深度融合,推进综合保障一体化,推进公共支撑一体化.推动电子政务发展可以增强政府的服务能力[1],但是现在各政务部门仍然存在数据库重复建设、数据资源散落在各部门从而成为数据孤岛以及部门信息不互通、部门间政务服务相互分割的问题.因此如何实现数据跨部门安全共享并保证数据在共享时来源可知、保证数据真实完整、防止数据隐私泄露以及避免数据使用者在使用非法数据或者数据提供者提供假冒数据后出现抵赖现象难以进行追责等是一个亟需解决的问题.针对跨部门间的业务协同数据共享这一应用场景,本文提供一种基于区块链的业务协同数据安全共享方案,该方案通过区块链和IPFS结合并利用同态加密技术实现数据来源可知、保证数据真实、防止数据隐私泄露、避免用户在数据共享过程中进行抵赖等,同时通过Token授权防止数据非法使用,保证数据拥有者对数据拥有唯一控制权,最终应用于电子政务环境下实现跨部门间的数据安全共享.

1 相关工作

随着区块链[2]技术的发展,区块链环境下数据的安全共享得到了很大的进展,金泳等人[3]提出基于区块链的大数据安全共享需求模型架构,该模型虽然解决了数据不可篡改,保证了数据安全性和完整性,但是将数据直接存储在区块链上增加了区块链的存储压力,降低了区块链中消息传播的速度以及消息处理的效率,同时在模型中加入了可信第三方违背了区块链去中心化的初衷,从而存在中心化相应的缺点.余益民等人[4]研究了基于区块链的政务信息资源共享模型,该模型具有实时交换、数据一致和可溯源等特点,但是最大的遗憾就是将大量文件存储在本地,没有进行安全防护.郭乃网等人[5]提出了一种隐私数据共享协议,该协议实现了点对点的数据安全共享,但只限于用户具有共同索引的数据交换共享,并不能得到广泛的应用.Diallo等人[6]运用区块链技术和分散自治组织(DAO)改进了电子政务系统.Hou[7]分析了当前区块链应用于电子政务的框架、难点和挑战,探讨了区块链技术对电子政务和公共服务发展的贡献.Zheng等人[8]提出了一种基于区块链的可信数据共享方案,使用区块链不可篡改特性防止共享数据被篡改,使用Paillier同态加密[9]算法实现共享数据的保密性,然而该方案将数据直接存储在区块链中降低了区块共识效率.区块链[10-11]具有去中心化、集体维护、数据防篡改和分布式运行等特点,在数据安全共享中最大的问题就是如何实现数据的隐私保护[12],OpenPDS是一个个人元数据管理框架[13],使用了SafeAnswers机制:一种在个人层面保护元数据隐私的使用方法,该方案将访问权限交给第三方失去了对数据的控制权.针对个人数据的隐私保护,Zyskind等人[14]提出了一种协议,实现在任何给定的时间数据提供者都可以更改权限集并取消对以前收集的数据的访问,可是随着数据权限集的更改增加了不必要的资源消耗.Liu等人[15]介绍了政务数据共享的隐私安全问题,但只针对数据共享过程中的数据隐私保护却没有针对数据在共享后实现数据隐私保护.Feng等人[16]对区块链的隐私加密防御机制进行批判性的比较分析,并分析得出现有的隐私保护威胁.

通过对现有方案的分析可以发现区块链促进了数据安全共享.然而不能忽视的是数据隐私保护仍然是一个挑战.此外,数据来源、数据真实性、数据可控以及防止用户在数据共享过程中抵赖等数据安全共享问题都是本文所关注的.

2 方案设计

2.1 方案模型

为了保证数据拥有者可以对数据拥有可控权,基于区块链的业务协同数据安全共享方案除了包含数据提供者和数据使用者以外还需要数据拥有者实体.各部门在数据共享前需要经过FabricCA进行身份认证,通过认证的节点可以加入到区块链网络中,并颁布身份证书.共享数据时需要将数据信息存储到区块链当中,但是由于区块的存储容量有限,交易数据量大容易引起交易处理时间长、共识效率低、网络出现拥堵等问题,所以为了避免在区块链中存储非必要的信息,引入了分布式的数据存储网络(interplanetary file system,IPFS)[17].在业务协同办理过程中,各部门办理业务时对共享数据处理的业务逻辑不同,所以可以通过编写不同智能合约实现不同业务逻辑.综上可知,基于区块链的业务协同数据安全共享方案模型共涉及7个实体,分别是区块链、本地数据库、IPFS、智能合约和用户实体,其中有3类用户实体,分别是数据拥有者、数据提供者以及数据使用者.数据拥有者是在业务办理过程中与数据有关联的需要进行业务申请的个人或部门;数据提供者是在业务办理过程中业务材料存放的部门;数据使用者是在业务办理过程中使用数据办理业务的部门.方案模型如图1所示:

图1 方案模型图

上述方案模型结合了区块链、IPFS和智能合约并通过Paillier算法达到保护共享数据隐私,实现数据在业务协同中安全共享.该方案针对电子政务环境下跨部门间的业务协同数据共享这一应用场景,构建Fabric[18]环境,并与去中心化的IPFS结合,通过脱链的形式存储共享数据,其中原始数据存储在各部门数据库中,需要共享的数据加密后存储在IPFS中,数据存储地址等元数据存储在Fabric联盟链网络中,通过这种方式实现数据共享,并根据业务逻辑通过智能合约完成相应数据处理,得到数据处理结果,实现共享数据处理结果而不共享原始数据,避免数据隐私泄露,实现数据跨部门安全共享.

在上述模型中,本文提出的方案主要针对3个紧密相连的场景.在第1个场景中,如果数据拥有者需要办理某种业务,则向数据提供者申请业务办理所需数据信息,数据提供者判断申请数据是否对应数据拥有者身份,验证通过后,加密并上传数据,同时通知数据拥有者数据的存储地址等信息,第2个场景开始.数据拥有者将数据使用权授权给业务办理人员,即数据使用者,数据使用者获得授权后向数据提供者申请使用数据,验证通过后调用智能合约完成数据处理共享数据处理结果,数据使用者解密得到数据处理结果完成数据共享.在第3个场景下,数据共享流程以交易的形式进行分布式共识,最终记录在区块链中.例如,像发票这类数据是一次性使用的,则共享次数不能超过1次,并且数据共享流程上链有利于业务办理公开透明,提供审计等功能.

在该模型下,数据拥有者从数据使用者获取办理业务需要的数据后向对应的数据提供者申请共享数据,作为整个模型的交互流起点;随着数据提供者在共享平台发布共享数据并将数据存储到分布式的IPFS平台中;最后在共享平台中进行数据授权.通过实用拜占庭容错机制[19-20]解决分布式区块链网络达成一致的问题,实现区块共识,保证数据共享流程不可篡改,营造良好的跨部门间业务协同数据共享环境.该模型数据共享过程中各参与方通过FabricCA生成的公私钥进行信息交互,公钥作为各部门的代号向外界公开,私钥由各部门自行保管.用户需要广播信息时可以通过私钥对信息进行加密,从而确保交易信息的真实性.该方案数据共享过程以交易的形式写入区块链当中,而用户是区块链网络中的各个节点,所以在实际数据共享过程中数据共享是在用户间直接完成的,同时网络中的各节点对该交易检验达成共识,保证交易不可篡改,一旦在数据共享过程中发生纠纷,可以从区块链中的查询记录进行追溯,维护用户权益.本文方案模型的主要流程如下:

1)数据拥有者向数据提供者申请业务办理所需的共享数据;

2)数据提供者验证数据拥有者身份并同意申请后按数据拥有者需求将数据加密后通过哈希运算得到密文摘要,然后通过上传数据智能合约自动存储数据密文至IPFS中并返回数据内容哈希值,然后将相应解密密钥以及数据内容哈希值发送给数据拥有者,同时将相关数据信息存储本地数据库并将数据内容哈希值、密文摘要和数据相关属性上链存储到区块链当中;

3)数据拥有者为数据使用者颁发使用数据的授权令牌Token,并通过授权令牌Token一键申请业务办理,同时将授权令牌Token和授权部门等其他授权信息以交易的形式上传到区块链中,保证数据授权可追溯,防止数据拥有者对已授权的数据进行授权抵赖和数据使用者使用不合法数据进行抵赖行为产生;

4)数据使用者收到业务办理申请后触发业务申请智能合约,验证业务办理所需的材料是否齐全,若验证成功则开始进行业务办理,否则业务办理结束并通知数据拥有者;

5)数据使用者开始进行业务办理需要根据数据拥有者颁发的授权令牌Token向数据提供者申请使用数据;

6)数据提供者得到数据使用申请后触发验证智能合约,验证数据使用者身份以及授权令牌Token的真伪,验证成功后在本地数据库中查询数据是否满足共享条件,若满足共享条件则向数据使用者发送相应密钥并触发数据处理智能合约,同时在本地数据库中更新数据相关属性,并将数据内容哈希值和更新后的数据相关属性上链;

7)数据使用者通过密钥解密数据处理结果,完成跨部门间业务协同办理.

根据上述方案针对的3个场景,下面分析数据上传、数据授权、数据处理以及区块链记录4个关键技术.

2.2 数据上传

该过程中需要先对数据进行加密后再对数据进行上传存储,方案中用到的加密算法为同态加密中的Paillier算法,数据上传存储是将加密数据存储至IPFS的流程添加到upload_file智能合约中,部署upload_file智能合约并同步到区块链网络中,通过upload_file智能合约自动存储数据密文到IPFS中并返回相应数据内容哈希值,将数据内容哈希值等信息存储到区块链上.

1)加密数据

以下面场景的数据为例介绍数据加密.场景:某市领导为了了解本市的薪资水平,市统计局机构B对市内产业结构及各产业平均薪资情况进行统计,但是对各产业职工具体薪资需要进行保密.下面以市统计局机构B(以下简称机构B)对机构A的统计进行分析描述数据加密.

机构A中的薪资数据由h条记录和k个字段组成,如下所示:

(1)

(2)

C=EncHE(D′,r,PKHE)=gD′rnmodn2.

(3)

2)上传数据

该方案中的共享数据通过加密后由智能合约自动完成数据上传,下面是上传数据upload_file智能合约:

算法1.上传数据upload_file.

输入:数据密文路径和文件名;

输出:数据内容哈希值.

func (t*SimpleChaincode)upload_file(stub shim.ChaincodeStubInterface,args []string)pb.Response {

if len(args)!=2 {

return shim.Error(″Incorrect number

of arguments.Expecting 2″)}

String(args[0]))

if err !=nil {

fmt.Println(″上传ipfs时错误:″,err)}

return hash}

2.3 数据授权

本文设计的方案模型中,数据使用者需要通过数据拥有者颁发的授权令牌Token向数据提供者申请使用数据,实现数据从数据提供者向数据使用者直接共享.其中数据提供者完成数据共享验证成功后触发data_processing智能合约,根据授权令牌Token中的数据内容哈希值在IPFS中得到相对应的数据密文,然后根据data_processing智能合约的规定完成数据密文处理,得到数据处理结果,最后使用同态加密密钥对数据处理结果进行解密,完成数据共享.其中授权令牌Token的设计结构如图2所示:

图2 授权令牌架构图

授权令牌是用于数据拥有者为数据使用者进行数据使用授权的一种凭证,可以防止非授权用户获得共享数据办理数据拥有者不知情的业务.其中内容哈希是数据存储在IPFS中返回的存储地址哈希值经过数据提供者公钥加密的数据内容哈希值,保证数据存储地址只由数据提供者得知,防止数据原始信息泄露.授权部门是指获得数据使用权限的部门,即数据使用者,可以验证数据使用者和授权令牌Token拥有者身份是否一致,保证数据只能由被授权的用户使用.业务描述是指数据使用者使用数据的相关描述,可以了解数据用途.使用终期是指数据的共享时间限制,保证数据共享可控.时间戳是指授权令牌颁发时间,用来记录Token颁发时间.授权者信息是指颁发授权令牌的用户信息,也就是数据拥有者相关信息,方便数据提供者对其进行验证并查找相应数据.数字签名是对上述信息用数据授权者私钥进行签名,可以防止数据使用者使用其他数据后出现抵赖现象,并防止授权令牌Token篡改.

2.4 数据处理

根据2.2节场景分别对密文中每条记录的k个字段进行加法同态计算,也就是对相应密文进行乘积运算,得到密文计算结果C′:

(4)

机构B使用同态加密私钥SKHE=(λ,μ)对密文计算结果中的每个数据项进行解密,得到机构A共享的明文结果w:

(5)

Paillier算法具有加法同态性,所以解密得到的明文结果为机构A中全部员工按照各项薪资区分的总工资,即1条记录,k个字段.接下来对工资计算平均并进行逆整数化处理,得到w′就是最终的共享结果:

(6)

以上是对密文进行数据处理后解密得到数据处理结果的过程,不同的业务协同数据共享场景下需要对数据进行不同的运算,不过不同场景下各实体所需要完成的工作和数据共享思想都是大同小异的.

2.5 区块链记录

本方案中,共享数据由数据提供者向数据使用者转移后,数据提供者都会在区块链上记录共享信息,实现共享可追溯,区块链记录阶段需要完成2个方面的记录:首先,将存储在IPFS中的共享数据返回的数据内容哈希值记录在区块链当中;其次,对数据拥有者为数据使用者颁发的授权令牌Token进行记录.Fabric平台的区块链只存储由数据内容哈希值等相关数据信息组成的Merkle树,业务协同办理所需的共享数据存储在IPFS平台中.

方案中区块链中的区块由块头和块体2个部分组成,块头包含版本号、前一区块的哈希值、时间戳、Merkle根哈希值和其他信息.块体存储的是交易信息,以二叉树的形式存储共享数据的内容哈希值,最后得到一个根哈希值就是Merkle根哈希值.本文的交易信息包括哈希值、使用终期、时间戳、使用次数、上次使用时间和数据提供者对其的数字签名.其中哈希值是指数据提供者根据数据拥有者申请需求存储在IPFS中的共享数据的数据内容哈希值密文,该密文是通过数据提供者公钥加密的信息,保证只有数据提供者能得到哈希值,防止数据泄露.使用终期是指共享数据的共享时间限制,比如房产证的抵押截止日期,和时间戳一起用来保证数据共享的有序性.时间戳是指数据共享开始时间,用来保证数据共享的有序性,并且防止有共享限制的数据在同一时间段进行多次共享,比如房产证1次只能共享给1个数据使用者.使用次数是指共享数据的共享次数,这一属性主要是为了防止一次性数据被多次共享,保证失效数据不会重复使用,比如发票的使用次数为1.上次使用时间是指共享数据最近1次被共享的时间,可以通过查询区块链中的记录方便地查看数据是否在共享时间内,验证是否满足被共享的条件.

3 方案分析

3.1 安全性分析

1)机密性.本方案使用了同态加密Paillier算法对数据进行加密后存储再进行数据共享,从根本上解决用户得到数据密文的问题,实现只对用户共享数据处理结果而不共享原始数据密文,保证数据机密性.

2)真实性.数据在区块链存储过程中是与数据提供者进行绑定的,数据密文存储在IPFS中,对应的数据内容哈希值通过数据提供者私钥进行签名后存储到区块链中不可变更并永久存储,保证数据内容哈希值和数据提供者进行了绑定,由于数据内容改变会引起对应的数据内容哈希值改变,所以保证了数据和数据提供者进行绑定,保证数据的真实性.

3)完整性 .数据在经过加密后使用哈希函数运算得到密文摘要,并将密文摘要存储在区块链上,当数据完成共享后,可以通过计算共享数据密文哈希摘要,并比对区块链上的密文摘要验证数据完整性.

4)可控性.本文通过设计授权令牌Token实现数据访问控制,保证数据使用者只有在获得数据拥有者授权并颁发授权令牌Token后才能向数据提供者申请使用数据的权限,实现数据拥有者对数据拥有唯一操作权,控制数据访问权限.

5)防抵赖性.方案中业务协同数据共享的过程记录在区块链上,可对数据共享过程进行追踪溯源实现了防抵赖功能.其中包括2个方面:首先,针对数据提供者方面,如果因为数据提供者共享的数据在业务协同办理中产生了问题,可以根据区块链可追溯和不可篡改的特性防止数据提供者抵赖已共享的数据;其次,针对数据使用者方面,如果数据使用者不是使用的数据提供者共享的数据信息,可以通过区块链可追溯和不可篡改的特性得知,从而防止数据使用者使用不合法的数据后进行抵赖.

3.2 性能分析

本文提出的方案中,性能评估主要是评估搭建的联盟链性能进行分析.所以本节主要对本文提出方案搭建的联盟链网络交易吞吐量进行测试.本方案针对电子政务环境下业务协同数据共享的应用场景,设计的联盟网络共有3个联盟组织,分别代表数据提供者、数据拥有者和数据使用者,每个组织中包含1个主节点和1个背书节点,主节点负责与Orderer节点进行通信,将交易从Orderer节点分发到组织中的其他节点,组织间采用单通道的形式进行通信.测试工具为Caliper框架,实验中进行了联盟链写入压力测试和查询压力测试,具体测试方法为设置1 000笔写入数据的交易量,目的是测试账本写入性能,设置5 000笔查询数据的交易量,目的是测试账本读取性能,并且控制交易的发送速度,查看数据写入和查询各阶段的最小响应时间、最大响应时间、平均响应时间和交易处理速度,共进行10次测试.测试结果如表1所示,从表1可知联盟网络运行稳定,交易完成率100%,同时随着发送速度的提升,吞吐量受到一定影响.

表1 联盟链网络压力测试结果表

下面通过折线图的形式展示交易发送速度和交易响应时间、交易发送速度和交易处理速度的关系,如图3是写入压力测试交易响应时间和交易处理速度折线图,图4是查询压力测试交易响应时间和交易处理速度折线图.

图3 写入压力测试交易响应时间和交易处理速度图

图4 查询压力测试交易响应时间和交易处理速度图

由图3(a)可知,交易响应时间在交易发送速度为50 TPS和100 TPS时处于较低的水平,但是在交易发送速度为150 TPS后交易响应时间开始大幅度上涨,这说明写入账本功能在150 TPS以下时响应时间较少能够保证高效交易.由图3(b)可知,交易处理速度在交易发送速度为150 TPS以后开始趋于稳定状态,基本维持在145 TPS左右,说明写入账本功能的交易处理速度峰值为150 TPS.

由图4所知在查询压力测试环境下,交易响应时间在交易发送速度为100 TPS,200 TPS和300 TPS时处于较低的水平,并且在交易发送速度为300 TPS时交易处理速度达到峰值300 TPS.但是在交易发送速度为350 TPS开始交易响应时间上升至20 s,而且交易处理速度下降到250 TPS左右,这表明查询账本功能的交易处理速度峰值为300 TPS,并且交易发送速度达到交易处理速度峰值时交易响应时间明显增加.

在实际电子政务环境业务协同数据共享场景下,交易发送速度在150 TPS时,写入账本的响应时间较快能够保证高效交易,交易的发送速度在300 TPS时查询账本的效率较高,交易处理相对稳定,交易的响应时间也是在可接受范围,并且联盟网络运行稳定,交易吞吐量也满足业务需求,所以测试结果可以满足跨部门业务协同数据共享要求.

4 结 语

电子政务场景下解决数据在跨部门间共享的同时保证数据的安全是一个具有挑战性的问题.本文针对该问题提出了一种基于区块链的业务协同数据安全共享方案,通过结合区块链、IPFS、智能合约和Paillier达到保护共享数据隐私,实现数据在业务协同中安全共享.该方案通过构建Fabric环境,并与去中心化的IPFS结合以脱链的形式存储共享数据,解决了区块链存储问题,并提高了共识效率.根据业务逻辑编写智能合约完成相应数据处理得到数据处理结果实现共享数据处理结果而不共享原始数据,从根本上解决数据隐私泄露问题.此外,通过设计授权令牌Token并将其记录在区块中实现访问控制,保证数据拥有者对数据拥有唯一控制权.该方案应用于电子政务环境下实现跨部门间的数据安全共享.

猜你喜欢
拥有者令牌提供者
称金块
网络交易平台提供者的法律地位与民事责任分析
基于路由和QoS令牌桶的集中式限速网关
基于隐私度和稳定度的D2D数据共享伙伴选择机制
网络言论自由的行政法规制研究
基于WTRP网络的自适应令牌传递算法*
做商用车行业新材料应用解决方案的提供者——访同元集团副总裁赵延东
令牌在智能小区访客系统的应用