基于区块链的隐私保护数据共享
引用本文:郭乃网,倪玮栋.基于区块链的隐私保护数据共享[J].通信技术,2019 , 52 ( 08): 1982-1986.
GUO Nai-wang,NI Wei-dong.Privacy Protection Data Sharing based on Blockchain[J].Communications Technology,2019,52(08): 1982-1986.
摘要:区块链是近年来出现了一项分布式共识技术,基于区块链共识协议结合智能合约技术可实现去中心化的数据共享。隐私保护是数据共享中的关键特性,原生区块链没有解决隐私保护问 题。利用数字摘要匹配算法提出了一种数据共享协议,该协议通过数字摘要空间的信息匹配,可在保护数据隐私的情况下实现数据的受控共享。基于协议的运行逻辑,分析了协议执行的正确性, 参与双方可实现数据交换共享。针对数据共享中的面临的安全威胁,给出了安全性分析。
关键词:区块链;智能合约;隐私保护;数据共享;数字摘要
内容目录:0 引言1 预备知识1.1 区块链及其安全特性1.2 智能合约2 协议设计2.1 身份注册与管理2.2 区块链数据访问接口2.3 隐私数据共享协议3 协议安全性分析3.1 正确性3.2 安全性4 结语
0 引 言
区块链技术是以比特币为代表的加密数字货币系统中的底层技术。由于区块链具有去中心化、 公开透明等特点,受到了研究者的广泛
1 预备知识
1.1 区块链及其安全特性
区块链由区块+链构成。以比特币为例,所有交易信息在数字签名后存储在区块上,每个节点在本地维护一份账本副本。区块链通过数字签名等密码学知识实现数据的防篡改、防抵赖等安全保护,解决了拜占庭将军问题四与双花问题。Juan等 人于2015年证明了区块链理论的安全性。区块链作为一种新型的分布式多方记账系统,正逐渐由单纯记录数字货币的交易信息发展至承载产权、合约等价值存储,并在各大金融机构的努力下衍生出了联盟链与私有链。区块链所能提供的安全性特性包括:(1)一致性:在分布式环境中,所有的参与 节点都能够得到一致的数据结果。(2)存活性:即便有恶意节点存在,区块链 仍然能持续不断的记录新的数据。(3)公平性:因为有诚实节点的存在,所有 用户的信息都能得到记录和存储。但是区块链协议并不能提供数据的隐私保护, 区块链中所承载的数据所有参与节点均能接收,因此在需要隐私保护的场景应叠加其他密码技术。
1.2 智能合约
20多年前著名密码学专家Nick Szabo提出智能合约这一概念。智能合约用计算机编程语言来实现传统合约,它通过代码来制定合约,执行协议实现合约双方的权利与义务。智能合约可以较好的控制价值的存储与管理,与状态机相似,通过定义多种状态与规则,制定合约被触发时所需的条件与相应响应逻辑自动完成交易流程。然而,在区块链技术出现以前,智能合约一直未能落地,因为执行智能合约需要靠可信的第三方来监督合约不被篡改并被双方可靠执行,但传统计算机程序无法保障这一点。将智能合约代码与状态 通过共识存放在区块链上,保障了代码执行、资产 转移过程的安全性以及存储记录的永久性。智能合约提高了自动化交易水平,降低了交易成本,同时也保障了交易的安全性。基于区块链的智能合约可以在金融等领域提供更多的应用场景,这其实相当 于基于区块链的安全多方计算。
2 协议设计
为了简化讨论,假设数据共享为参与者为A、B两方。数据提供者为A,数据请求者为B。数据提供者负责存储数据索引与提供真实数据,并对数据共享请求作权限校验;数据请求者向数据提供者请求读取数据的权限。应用场景为,当B知道数据的索引信息,则A 向B提供该索引信息的数据查询服务,当B不知道数据的索引信息,则B不能获取A的任何数据信息。该场景适合于当A、B有共同的客户注册信息时(如用户名、身份证号等),双方可共享信用数据。而 一方不能主动查询另一方的用户信息。
2.1 身份注册与管理
本协议中,参与者的身份由公钥密码基础设施 (PKI)加以保护,注册中心CA向外提供注册与身份校验服务。区块链的共识节点在加入共识前先进行注册,并由CA签发包含其公钥的证书,通过CA 校验身份后才可加入共识网络环境。普通参与者采 用同样的机制获得公钥证书,并参与后续的数据共享协议。
2.2 区块链数据访问接口
区块链作为一种数字化的、安全的总账账簿,具有防篡改的特性。用于共享交换的数据存放在区块链上,协议定义三类与区块链进行交互的接口,分别为Tdata 与 Taccess 与 Tdeploy。Tdeploy:每个应用为了提供特定的服务与功能都需要在上次部署智能合约,所以本系统在进行数 据共享时需要通过deploy命令部署智能合约,即链码 Chaincode 。Tdata:存储数据协议。当系统希望区块链通过BuildBlock构建区块存储数据时,首先将数据打包成交易,并将列作为关键信息写入交易,签名后进行 广播,Peer收到交易后传递给共识插件进行全网共识。Taccess:查找数据协议。以何V作为关键信息遍历区块链中的区块,找到其中所有的Transactions 信息。再遍历Transactions以key为索引找到对应的交易,校验其智能合约ID和操作类型,并验证其完整性后得到内部payLoad数据。
2.3 隐私数据共享协议假设数据提供者为A节点,数据请求者为B节点。CA节点启动并进行预注册后,协议的具体流程如图1所示。
图1 隐私数据共享协议流程图协议执行流程为:(1) A用户计算数据索引,该数据索引可根据不同的数据类型变化,例如,金融企业可以通过用户名及身份证号来作为数据索引。A将数据索引通过哈希算法计算哈希值Hash(index)。以该哈希值作为Key, {userld,peerld}打包成一对参数作为data通过Tdata协议进行存储,存储的数据类型为STORE_JNDEX,同时将数据索引与真正数据之间的映射关系存储在本地数据库中。(2) B用户通过数据索引查询数据,对该索引同样计算哈希Hash (index),通过Taccess协议在区块链中找到对应的完整数据拥有者,查找类型为 STORE _INDEX。(3) B节点将数据索引与自己的身份信息做 Hash计算摘要后,通过区块链底层P2P网络作为 请求信息单播给提供者A。同时将之前的哈希值一同发送。可通过参数设置是否需要TLS/SSL安全信道进行传输。这一步的目的是通知数据提供者本节点具有获取共享数据的权限,是数据的合法使用者。(4) A节点接受请求,对B的身份信息与数据索引的正确性进行校验。校验通过后,通过数据索引从本地数据库中找到真正数据,并为B请求的数据随机生成对称密钥Key。使用B的公钥通过
加密后,利用Tdata协议将加密后的对称 密钥存储在区块链上,存储类型为STORE_KEY。同 时将使用
即对称加密后的数据也通过Tdata 协议存放在区块链上,存储类型为STORE_DATA。(5 ) B节点以hash (index+id)作为key通过 Taccess获取加密后的对称密钥再后,使用私钥
解密,并使用key对从区块链上获取的完整 数据进行对称解密即可完成数据共享过程。
3 协议安全性分析
本节我们将对前一小节设计的协议进行简单的 正确性与安全性的分析,并在协议中引入仲裁机制, 当数据提供者与请求者在数据共享的过程中发生争议时提供相应的解决方案。依旧假设数据提供者为 A,数据请求者为B,真实数据用出幻表示,数据索引用index表示。
3.1 正确性
在本系统中,每个真实数据都会拥有一个对应的数据索引。节点之间预先沟通或通过某种手段对这个映射关系达成一致。只有获取提供正确的数据索引才有权利共享数据提供者拥有的真实数据。(1) 根据协议,A的本地数据库中会存储 data与index之间的映射关系。A对index进行哈希计算,并将计算结果hash(index)与自己的身份信息存储在链上,那么若B通过某种途径获取
;则它计算
后,如果index与index '相同,则hash(index)等于
,即B可以成功在链上找到对应的区块,并获取A的身份信息。(2 ) B 将 hash(index')+id(B)+hash(index+id(B)) 发送给A后,A计算本地是否有对应的索引,并通过计算hash(index+id(B))是否与B传过来的一致来检测B身份标识的有效性。若索引存在并且身份检 查通过,则说明需要向B提供真实数据。A在本地 生成随机对称密钥切后,使用B的公钥对对称密钥初进行加密,并将
放在区块上,由于B拥有index,则它在本地计算 hash(index+id(B)),即可在区块链上找到对应的区块。B使用自己的私钥即可成功解密获取对称密钥key。(3)A在本地生成对称密钥key后,从本地数 据库中根据index查询到真正的数据汕勿,并将data使用加密,将
放在区块上。同样,B可以在区块链上根据hash(index+id(B))找到对应的区块,由于B之前已经获取了对称密钥key,那它就使用key进行解密,成功拿到需要的最终数据。根据以上三步看到整个过程具有可行性与正确性,在双方均配合的情况下,拥有数据索引的数据请求者可以成功从数据提供者中获取数据。
3.2 安全性
现在分析协议的安全性,假设系统中存在攻击者C, C可能已经经过CA的授权,并且通过登录成为了网络中合法的成员。C试图在没有获取索引如如的前提下,根据区块链上的已有信息或者通过窃听节点之间的通信流来尝试得到真实数据。首先分析本协议如何抵抗被动攻击:(1) C无法获知A拥有的数据索引信息。区块链中存储了 hash(index+id(A)),该类信息为数据 索引的散列值。对于该类信息,因为本节开始已分析了 SHA-256算法的单向性与抗强碰撞的能力,C 是无法根据已有信息反推得到index, C需要耗费大量资源去随机找到一个
使得
等于hash(index),可知C没有能力得到关于index的任何信息。(2) C无法得到与B有关的对称密钥key的任何信息。根据设计的协议,链上存储了
,该类信息存储之后对真实数据加密的对称密钥。因为本系统底层有可信PKI基础设施的支撑,并且节点或用户在生成私钥后一直保存 在本地从未对外公开或传递过。因此C无法获得B 的私钥,即他无法通过解密得到对称密钥key的任何信息。(3) 无法获得真实数据。A将真实数据以
的形式存储在链上, 即真实数据已经被对称密钥key加密。在(2)中 我们有了C无法获得对称密钥key的前提,因此C 无法对其进行解密,即它无法得到真实数据的任 何消息。C还可以通过监听网络信息进行主动攻击,可能存在两种主动攻击方式。第一通过模拟B的身 份信息来假装自己是B,诱骗A认为自己拥有数据索引,有权利获取真实数据汨口;第二种情况是尝 试将获取的身份信息由B改成C。但下面将证明这 两点依旧是不可行的。对于第一点,虽然通过模拟 B, A会受骗并把加密后的对称密钥和真实数据存 放在区块链上,但由于C没有B对应的私钥,因此它依旧无法进行解密。
而为了实现第二点,即使C 可以将id(B)改为id(C),但C同时需要构造 hash(index' +id(C)),即它需要重新计算{index+id(C)} 的散列值。前面分析过,C无法根据hash(index)得 到index,即它无法计算得到hash(index' +id(C))。因此,C通过嗅探网络上的数据包进行主动攻击仍然 无法得到关于真实数据的任何信息。同时,节点B在于A的通信过程中,也只能 获取它拥有的index对应的真实数据data,无法获 得A拥有的其他数据的任何信息。
4 结 语
本文针对用户间数据共享的场景,基于区块链以及智能合约技术给出了一种隐私保护的数据共享协议。该协议可以允许用户实现具有共同索引的数据交换共享,避免单方面的数据流动。同时协议过程由数据的拥有者主动授权,并且协议执行过程可 实现公平仲裁。
作者简介 >>>郭乃网(1984—),男,硕士,高 级工程师,主要研究方向为大数据、网 络安全;倪玮栋(1997—),男,学士,主 要研究方向为通信与信息系统。选自《通信技术》2019年第八期 (为便于排版,已省去原文参考文献)
网络强国建设的思想库
安全产业发展的情报站
创新企业腾飞的动力源
投稿网址:
http://www.txjszz.com
合作热线:
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。