基于区块链的云计算数据共享系统研究
2021-02-04翁晓泳
翁晓泳
南京市信息中心,南京210008
云计算和大数据技术的发展,为人们带来了极大的便利,同时也加剧了敏感数据泄露的隐患[1-3]。由于数据具有可复制性,当用户把数据上传到云服务供应商的服务器上时,数据的存储和使用处于一种失控状态,数据传递和使用过程中的可信性、完整性、数据权属、数据隐私等都难以保障,成为数据有效共享和合理使用面临的关键问题。目前数据所有者、用户、云服务提供商、第三方平台大多分别进行数据安全防护,缺少具有一致信任的统一数据防护手段,不利于数据全生命周期的管理和多方融合共享。
数据获取方面,云服务提供商获取和收集的数据远远超出用户上传的数据[4-5]。云提供商通过使用浏览器的网络存储、应用程序数据缓存、cookies、像素标记和匿名标识符等方式,很容易获得登录时间、连接时长、使用的设备、连接的位置、使用的应用程序等与个人身份信息相关联的数据。
隐私保护方面,云服务供应商给终端用户提供的隐私选项是很有限的。首先,用户不是对所有数据都拥有控制权,只有一小部分是拥有特权的;其次,这些选项只能帮助用户定制世界上其他人访问这些信息的方式。而云服务供应商仍然对这些数据具有完全的访问权,而且他们会把这些数据用于各种目的。
数据多方可信共享方面,由于信息共享是云计算业务的关键因素,信息共享导致数据在不同实体之间流转,使用数据的实体之间缺少沟通、信任和监管,使得原始数据拥有方出于信息安全和隐私保护的角度的考虑不愿意公开自己的信息,导致云计算业务协同效率低下。
区块链技术是一种全局共识的分布式账本机制,具有数据全流程管控和不可篡改的特性。区块链技术去中心化、防篡改、高度可扩展等特点,正成为继大数据、云计算、人工智能、虚拟现实等技术后又一项将对未来产生重大影响的新兴技术。本文基于区块链和数据加密技术对云平台数据隐私进行保护,加密体系保证数据的所有权都控制在数据拥有者手中,不会发生被篡改、非法利用、大规模泄密等安全风险,并且通过区块链智能合约,有效地保障了业务处理时平台数据的隐私性和安全性。
1 相关工作
目前基于云环境的数据共享隐私保护的方法大致分为三种,一是成员管理的方法。成员管理服务是由网络上管理用户身份和隐私的几个基础架构组成,这些服务验证用户的身份,在系统中注册用户,并为他/她提供创建和/或调用交易时所需要的证书,通过数字证书签名来实现信息不被篡改,例如Hyperledger Fabric 网络中的每个节点都有属于自己的证书(秘钥对),不同角色的节点有不同权限。二是应用层的访问控制。所有的应用访问都需要得到授权许可后,才能够得到数据的解密权限,通过数据应用授权来解决应用访问的实际控制问题,例如文献[6]根据私有云环境下的应用特点,提出了基于加密体制的访问控制应用方案。三是数据加密方法。用户上传加密后的数据,需要使用时再进行解密[7-9]。
在安全数据共享和隐私保护方面,文献[10]针对第三方收集个人数据导致用户隐私泄露的问题,提出一个基于区块链的分布式个人数据管理系统和自动化访问控制协议,确保用户拥有并控制私有数据。但是缺少对多方参与的融合共享场景的支持。文献[11]针对公共网络上区块链交易导致交易隐私泄露的问题,提出了将合同双方的通信进行加密的Hawk 协议,该协议主要侧重交易数据,对于业务数据的处理能力并不具有优势。文献[12]采用一种加密的智能合约,通过公私钥方式保护公共隐私文件,并提供审计与追踪。薛腾飞等在文献[13]提出了基于区块链的医疗数据共享模型,以去中心化的方式加密存储医疗数据文件,只有病人指定的医生才能查看病人的医疗数据,实现了病人对其医疗数据的控制。上述加密方案仅从数据加密角度进行研究,大数据环境下,并不需要对所有数据进行加密,因而存在一定局限性。文献[14]提出了一个去中心化的数据共享框架,通过验证用户的密码学密钥并以去中心化的方式实现用户对共享医疗数据的访问请求,结合智能合约和访问控制策略来跟踪数据行为和撤销恶意的访问,该方案针对医疗数据特点进行研究,在通用性方面有一定欠缺。
本文针对云计算多方数据提供和使用场景,基于公链和本地链双链协同机制,研究了全生命周期的可信数据共享方案。
2 系统设计
基于区块链的数据共享模型如图1所示。
图1 数据共享模型
首先将用户原始服务器中的数据进行区块链记账,利用区块链的不可篡改特性,从而保证云服务器的数据不会被篡改。其次,本地数据上传到云服务器之前,采用国密算法的非对称加密技术,加密精度精确到每一条数据内容,即使数据被窃取,也无法批量破解。客户端使用智能合约进行业务访问,根据定义好的规则,使用智能合约完成交互,只返回业务结果,从而保证云平台的数据更安全、更开放。
区块链平台采用了私有链加共有链的联合查询架构,首先私有链根据自身的业务需要,通过智能合约生成区块,将区块头提交共有链,在数据分享时,数据请求方通过检索公链数据得到数据提供方的元数据,数据拥有方根据授权证书向请求方提交数据。具体流程如图2所示。
图2 数据授权使用流程图
区块的结构如图3所示,每个区块的记账部分包含公链部分和私链部分,以及标识、密钥和操作权限等内容。
数据提供者为了证明所提供的数据的有效性,采用了如下算法:
图3 区块结构
(1)系统初始化
数据提供者维护一条私有区块链。私链上区块节点对应公钥为pk=PIDi,私链交易标识为Tpriv=xi。密钥生成算法如下:
给定安全参数k,返回系统参数和主密钥。系统参数包括明文空间和密文空间。公开系统参数,而将主密钥秘密存放在私钥生成器(PKG)中。运行BDH参数生成器G(k),生成大素数q以及q阶的群G1、G2以及双线性映射,选择随机生成元P∈G1。其中G1是椭圆曲线上点集所组成的加法群的子群,G2是有限域上乘法群的子群。
选择主密钥s,设置系统公钥pk=sP;选择密码学意义上安全(满足随机预言机要求)的散列函数明文空间M={0,1}n,密文空间C=系统参数,系统主密钥为s。
(2)数据提供者加密
在进行数据提供时,获取公链块高度H和公链对应的交易Tpub,以及公链Merkleproof 路径Ppub,私链Merkle proof路径Ppriv,将上述信息封装成对提供数据集的验证参数。随加密后的数据一起发送至云平台。
(3)数据使用者验证数据
数据验证者根据验证参数,通过以下步骤进行验证。
①数据验证者通过查询,在公链区块H上获取交易Tpub的根哈希Mpub。
②通过Ppub与pk验证交易Tpub有效性;计算方法如下:
③从Tpub获取Tpriv对应的根哈希Mpriv。
④通过Ppriv验证私有交易Tpriv有效性。
3 仿真分析
为了验证所提算法的可行性,在实验室搭建了测试用云计算环境。云环境采用5台配置IntelCorei7 CPU,128 GB,DDR4 内存,512 GB,SSD 硬盘的工作站组成的服务器集群,集群上部署docker 运行环境,基于Hyperledger Fabric区块链平台运行数据共享系统,统计系统运行的各项指标,所有数据为10次实验的平均值。
仿真系统模拟用户上传文件到云端,将文件访问权限通过区块链授权给数据请求方。一共有两台服务器,分别运行公有链服务和私有链服务,模拟的数据请求方有100个。图4为公有链上数据请求节点从请求到数据获取所需要的时间曲线,随着请求节点数量的增加,节点数据同步时间大致稳定,表明系统对文件分享具有有效性。
图4 数据请求节点访问性能曲线
在区块生成效率方面,随着区块总数的增加,如图5所示。仿真数据可见,单个区块生成时间呈上涨趋势,这是因为区块链中共识算法需要在全链成员中进行同步,区块总数增加导致更新时间变长。由于本文算法采用了安全的数据共享模型和算法,所以平均生成时间在可控范围之内。
图5 区块生成效率图
表1 从五个角度将本文的算法与几种研究成果进行了对比,可以看出本模型整体上具有一定优势。
表1 算法对比分析
4 应用案例
随着经济的发展,银行基于存量信贷业务的征信数据远不足以支撑普惠金融的需求,诚信数据的来源和成本成为银行普惠金融相关产品落地的最大障碍。普惠金融平台是典型的基于云计算的数据共享应用场景。
受信息安全与隐私保障的限制,政府部门拥有大量权威的个人与企业的数据而不能发挥最大价值,而社会运行过程中各商业机构为了采集与验证这些数据需要付出大量重复的工作,造成商业活动的低效运行与极大的成本浪费。
本文设计的数据共享系统,可为普惠金融提供高适配性的解决方案。一方面,金融机构通过元数据查询和解析数据,实现对客户的精准画像,数据完整可靠,具有公信力。另一方面,客户数据在私链中存储,公链中存储私链块头,计算通过智能合约进行,只返回数据结果,敏感数据不会泄露。基于区块链技术的普惠金融平台,实现了多方安全数据共享,通过政务数据开放优化金融资源配置,突破传统的普惠金融信息因素导致的成本高和效率低问题。根据基本云计算业务需求分析,系统分为管理应用层、区块链网络、接入层和业务部门四个组成部分,其逻辑结构如图6所示。
管理应用层包括平台管理、目录和权限管理以及各种查询应用,实现各种应用的人机接口。区块链网络模块包含区块链公共账本、智能合约和各个对等节点,实现区块链的数据管理功能。接入层通过SDK实现业务部门中的数据集和区块链数据的互动。
基于本文提出的区块链云数据共享模型,课题组以区块链构建普惠金融网络,实现政府与各金融、保险、医疗等机构之间数据的共享与协作,并应用于“我的南京”APP中的“金融超市”栏目。其中,政务公共服务提供个人职业、收入、资产、信用等数据,企业相关的公司结构、经营状况、固定资产、公司资质等数据,金融机构借助政务公开数据利用智能合约的支撑,实现对个人与企业的创新金融服务,并通过区块链网络公开业务办理关键节点的流转状态。区块链普惠金融网络将承担政府部门与金融机构间所有数据交互的安全、高效、便利的通道,具体如图7所示。
“金融超市”栏目以“我的南京”APP 应用门户为入口,以区块链普惠金融底层网络为依托,实现对个人/企业提供个人信用贷、企业主经营贷、房产按揭等在线金融服务,系统界面如图8所示。
自试点应用以来,已经有工商银行、中国银行、江苏银行、南京银行等13家银行加入本栏目提供金融服务,为个人和企业提供房产按揭贷、个人信用贷、企业主信用贷等精准、便捷的金融服务。截至2019 年9 月,个人消费信用贷累计放款98.87 亿;房产按揭贷款累计发放按揭贷款1.06亿元;企业主贷款预评估总共1 729笔,评估总金额2.47 亿;通过运营效果分析,每亿贷款为银行节省340 人/d 的人工成本,用户从申请到下款不超过10 min,大幅提高市民、中小企业贷款申请效率,下一步计划加快推进更多银行接入,丰富个人/企业金融产品,优化金融超市栏目的用户体验。
图6 区块链普惠金融数据共享系统逻辑架构
图7 区块链普惠金融数据共享系统架构
图8 试点应用系统界面
5 结束语
本文针对云计算环境下数据拥有方对上传至云上数据的不可控问题,基于双链结构提出了安全的数据共享模型和算法,所提方案中,除了本身放在云服务器上的数据是加密的,还通过智能合约进行规定的规则运算,返回运算的结果,而不直接给访问者提供源数据,从而可以在保障安全的同时将云数据进行对外开放。通过仿真分析和试点应用效果来看,基于区块链的云计算数据共享系统可实现高效安全的多方数据共享与协同。