APP下载

基于Hyperledger Fabric的生物数据安全管理

2019-09-30周博轩满毅刘宁宁张奕欣张翀

网络空间安全 2019年4期
关键词:区块链

周博轩 满毅 刘宁宁 张奕欣 张翀

摘要:针对生物数据的特点和管理中存在的数据不可信性和安全性问题,提出了一种多链多通道结构的系统。用于联盟区块链的分布式操作系统Hyperledger Fabric技术,提出了一种多链结构,包括三条用于记录数据的区块链和一条用于记录操作内容的区块链,利用多通道实现了节点权限的划分,同时将敏感操作记录连接到了区块链上。系统地解决了生物数据中敏感数据的保密性和敏感操作的事后审计问题,实现了对生物数据的管理和操作,保证了数据的安全性和可信性。

关键词:区块链;生物数据;多链多通道;Hyperledger Fabric

中图分类号:TP393          文献标识码:A

1 引言

在生物信息传输方面,三大生物信息网站NCBI(National Center for Biotechnology Information)[1]、EBI(The European Bioinformatics Institute)[2]、DDBJ(DNA Data Bank of Japan)[3]仅把生物信息文件当作普通文件,主要采用了FTP等传统的文件传输协议,也有其他传输技术和工具如Aspera等,但都不是开放技术。生物数据具有来源广泛、种类繁多、内部结构高维复杂、数据相对分散、难以有效整合分析的特点,生物信息中大多数数据的读取是完全开放的状态,但对于一些与人相关的生物数据访问和生物数据的上传,需要有更严格的数据访问审计功能。

生物信息安全涉及生物学和信息安全两个领域。这两个领域相关性较弱,因此对生物数据安全领域的研究不多。南京大学国家保密研究所的团队建立了DNA密码系统的生物单向函数,并设计了对称和非对称加密和信息隐藏系统[4]。张光河团队利用从人体捕捉的生理特征生成随机密钥,确保了传播过程中健康信息的安全[5]。这些研究通过使用密码学技术对生物数据加密来确保数据安全,但缺乏对生物数据操作的审计能力。

区块链可以被定义为维护在相互不信任的Peer节点分布式网络中,用于记录交易且不可篡改的分类账本。每个Peer节点都维护着分类账本的副本。Peer节点通过执行共识协议来验证交易,然后将多笔交易打包成区块,并把区块构建为哈希链。此过程通过对交易进行排序来形成分类账本,这是共识所必需的。区块链随着比特币[6]的出现应运而生,这一技术被广泛认为是在数字世界中进行可信赖交易的未来发展方向。

基于区块链的生物数据安全技术能够实现对敏感生物信息数据的访问控制,对生物信息数据的敏感操作建立防篡改记录,支持事后审计能力。

Hyperledger Fabric是Linux基金会所主导的Hyperledger(超级账本)项目之一。Hyperledger Fabric使用Docker技术来托管构成系统应用逻辑的智能合约(也称为链码),每个Peer节点以只追加(Append-Only)区块链的形式在本地维护分类账本,并以键值对的形式存储最新状态的快照[7]。Fabric旨在为开发模块化体系结构的区块链应用程序提供基础,以实现能够即插即用的共识机制和会员服务等组件。

本文提出了一种“多通道数据链+单通道行为链”的多层链簇结构,设计了对生物数据进行增删改查基础操作的可行方案。本文的贡献是通过使用Hyperledger Fabric的多通道结构来划分节点的权限和链接敏感的操作记录,并提高生物数据的安全性。

2  系统设计

2.1 系统架构

本文将系统的基本逻辑结构设计为四层结构[8],由下到上分为存储层、索引层、连接层、应用层,如图1所示。

2.1.1 存储层

存储层为Fabric联盟链与P2P文件传输系统(如IPFS[9,10])的接口。这里以IPFS为例,每一个被上传到IPFS网络上的文件,都会被系统加密并返回一个哈希值,存储层用于获取该哈希值,从而得到存储在IPFS网络上的数据。

2.1.2 索引层

索引层采用联盟链多链的结构,不同权限的数据内容单独成链存储,用于以交易的形式记录上传文件至IPFS后返回的哈希值。由于数据和哈希值是一一对应的,所以索引层实际上是由多条数据链组成的。

本文将生物数据的安全级别分为三级,命名为“机密”“保密”和“公开”[11],对应于三条数据链,同样将区块链的成员服务提供模块MSP(Membership Service Provider)颁发的身份信息分为管理员、授权成员和普通成员三种身份,如图2所示。机密级别区块链上存储的生物数据只能由管理员进行操作,保密级别的区块链上存储的生物数据可以由管理员和授权成员操作,公开的生物数据可以由包含普通成员在内的全部成员操作[12]。

对于每条单独的数据链,执行上传操作时,是将一条数据的哈希值作为一笔交易进行提案,背书通过后由排序服务节点(Ordering Service Node,OSN)打包成块,并广播至该通道网络中的全部节点更新其账本,完成上链操作。

2.1.3 连接层

为了方便事后审计,追溯数据来源,需要记录在索引层数据区块链上执行的操作,利用区块链不可篡改的特性,考虑将操作日志以区块链网络中交易的形式进行打包上链,形成一条独立于三条数据链的操作记录区块链。这条区块链构成了系统的连接层,用于将应用层发出、作用于索引层的操作进行记录。

在执行数据的上传、下载和更新(本质上也是上传数据)后,将由同一客户端发出记录日志的提案,将本次操作的相关信息以交易的形式进行记录并上链。与索引层不同的是,連接层的这条区块链不涉及下载数据的操作,不需要与存储层交互,没有IPFS的接口。

2.1.4 应用层

应用层主要是根据业务的需求,对生物数据进行操作,包括用户的管理、生物数据的管理(例如上传和更新)、生物数据的查询和下载等应用。

用户管理是对联盟链成员的添加、删除以及身份变更的操作。其中,身份变更操作是指对联盟链成员授予管理员、授权成员、普通成员三种身份之一,这一授权操作不涉及对成员信息和区块链本身的更改,只需要增加或删除成员订阅的通道即可。

生物数据的管理是由管理员执行的,对生物数据的上传和更新操作。在“连接层”一节中也提到过,生物数据的更新本质上也是上传操作,每次数据上链时会同时记录上链操作的时间,在后续的查询和下载操作中,对于检索到的同一生物数据,返回时间最近的一条即是最新版本的数据。

2.2 模块设计

生物数据安全管理系统的功能如图3所示。

2.2.1 账户管理模块

账户管理模块功能是对区块链网络中的成员进行记录和变更。该模块的部分功能依赖于联盟链的MSP,它负责维护系统中所有节点的ID、颁发节点身份证书。Hyperledger Fabric默认实现的MSP实例,能够处理基于数字签名的标准PKI方法,并且可以容纳商业的证书认证机构(CA)[7]。

此外,账户管理模块还对不同身份的成员节点进行权限控制,这一功能通过为各节点订阅相应于其权限的通道来实现。对于普通成员身份的节点,只订阅权限为“公开”的通道;对于授权成员节点,订阅“公开”和“保密”两条通道;对于管理员节点,订阅包含“机密”在内的全部三条通道。

2.2.2 基础功能模块

基础功能模块实现了系统的主要功能,即生物数据的上传、下载、查询和更新操作。生物数据的上传和更新的唯一区别,是在本次上传之前区块链中是否存在同一生物数据,其实现都是将一组键值对(包括生物数据上传至IPFS后返回的哈希值、生物数据的名称、上传时间)以交易的形式打包成区块,然后连接成链。生物数据查询是检索通道中指定名称的生物数据,返回其信息。生物数据下载则是用查询得到的哈希值在IPFS网络中搜索相应的文件并进行下载。

2.2.3 智能合约模块

智能合约模块负责维护系统中的全部链码,实现链码的存储、编译、更新、安装等操作。对于本文提出的系统来说,这一模块为基础功能和审计功能提供了支持。

2.2.4 审计模块

审计模块负责在对数据链执行操作的同时,将操作日志打包成区块并连接成链。和数据链的操作类似,对操作日志的查询也是检索行为链上的全部交易,返回指定日志信息,实现对生物数据敏感操作的事后审计功能。在基础功能模块中产生一笔交易时,审计模块会验证提案者的身份,检查操作的合法性,对于不具有权限的成员,将返回错误提示。

3 评估

3.1 应用场景分析

本文提出了建立一个基于Hyperledger Fabric联盟区块链的生物数据安全管理系统,结合IPFS点对点文件传输系统提供的接口,在确保安全性和保密性的情况下,实现生物数据的上传、下载、查询等操作[13]。以一个实例来说明系统的业务流程。

3.1.1 注册

新用户发出注册并提交信息,由MSP的CA服务进行登记并颁发身份证书,成为该系统的普通成员。经其他管理员节点修改可以变更身份为管理员。

3.1.2  上传

(1)将生物A的DNA数据文件上传到IPFS,返回的哈希值是一个64位的十六进制数。

(2)管理员用户执行上传操作,如果该数据不曾被上传到该区块链中,则以刚刚返回的哈希值为Hash字段,数据名称(如A_DNA)为Name字段,時间戳为Time字段,将其作为一笔交易的信息发起提案,将本次交易需要调用的信息发送给背书节点。

(3)背书节点收到交易提案后,通过验证提交者签名确认该用户是否有上传权限,然后根据背书策略模拟执行相应链码,将背书结果及背书签名发送给客户端。

(4)客户端收集到足够的背书后,将数据打包成一笔交易并签名,发送给排序服务节点Orderer进行共识排序。同时,由客户端发出记录本次上传操作的提案,将操作日志作为交易信息提交到背书节点背书,经过类似于(2)~(4)步骤后,将一批交易打包成区块,追加至操作审计链。

(5)Orderer将一批交易打包成区块,广播至维护账本的其他节点,经过对每笔交易进行检验后追加到对应的数据链。

3.1.3 查询

执行查询操作时,会先验证查询发起者的权限是否能够查询该信息,如果没有权限则返回错误提示。然后,调用用户权限内指定节点上部署的链码查询“上传交易”提案,对返回Payload组成的List进行筛选,取出Name键值对与查询字段对应,且Time键值对最大的交易信息发送给用户。如查询Name=A_DNA,得到的Time最大值为刚刚上传的时间戳,则返回包含生物数据的64位十六进制哈希值在内的交易信息。

3.1.4 下载

(1)用户执行下载生物数据name=A_DNA的操作时,会先执行“查询”中的查询操作,将得到的哈希值传递至IPFS网络,把对应的生物数据文件下载到指定位置。

(2)下载完成后,客户端发出记录本次下载操作的提案,同样经过“上传”中(2)~(4)的步骤,将交易打包成区块,追加至操作审计链。

3.1.5 更新

(1)管理员用户执行更改A生物DNA数据的操作,会先以IPFS返回的更改后文件的哈希值(已经与之前的哈希值不同)为交易的Hash字段,Name仍为A_DNA,本次操作的时间戳Time作为交易的信息发起提案。

(2)经过类似于“上传”中(2)~(5)的步骤后,包含这笔交易的区块被追加到对应的数据链。在背书结果发送给Orderer的同时,发起记录本次更改操作的提案,将操作日志作为一笔交易打包成块并追加至操作审计链。

(3)在A生物的DNA数据更改后,如果再次执行查询或者下载操作,返回name=A_DNA的交易列表中,包含具有不同时间戳的两笔交易,返回的结果为时间戳较大的那笔交易,即表示最新的数据。

3.2 可行性分析

作为一种与医疗卫生领域息息相关的数据,生物数据对安全性和保密性的要求非常高。目前,区块链技术已经从单一的加密货币应用,发展为面向生物技术、医疗卫生、安全等多个领域的应用,实现了数据的完整性和真实性,塑造了一个全新的可信的信用体系,这是传统数据技术无法比拟的。现在,Hyperledger Fabric项目已发布1.4版本,为生物数据安全管理系统的实现提供了技术基础。Fabric支持多种通用编程语言的实现,从技术依赖的角度来看,系统是可行的。

Fabric实现了对用户身份的验证,保证了区块链完整性和不可篡改的特性。用户在操作执行前都会进行身份验证,确保了敏感操作和敏感数据权限的有效控制。每个区块的区块头都包含上一个区块的哈希值,即后面的区块中包含了它之前全部区块的信息,任何一个区块被修改都会造成后面区块头中哈希值的改变,这保证了生物数据和操作记录不会被篡改。同时,生物数据和操作记录分别存储在索引层和连接层的不同区块链中,每一笔交易都可以溯源,方便管理。所有这些特性保证了该系统的安全性,形成一个完整的安全体系。

4  结束语

本文针对生物数据管理中存在的数据安全问题和敏感操作审计问题,结合Hyperledger Fabric区块链技术,提出了一种“多通道数据链+单通道行为链”的多层链簇结构,为生物数据的上传、下载、查询、更新等基础操作设计了可行方案,解决了生物数据中敏感数据的保密性和敏感操作的事后审计问题,实现了对生物数据的管理和操作,保证了数据的安全性和可信性。本方案的不足之处是对于敏感操作只能保证事后的记录可追溯,防止不正当操作发生的措施仅限于权限管理,今后将对Fabric链码进行改进,完善系统结构,在保证安全性的基础上进一步提高网络吞吐量。

基金项目

国家重点研发计划(National Key R&D Program of China)(项目编号:2017YFC1201204)。

参考文献

[1] NCBI[EB/OL].https://www.ncbi.nlm.nih.gov/.

[2] EBI[EB/OL].https://www.ebi.ac.uk/.

[3] DDBJ[EB/OL].https://www.ddbj.nig.ac.jp/.

[4] 卢明欣,来学嘉,肖国镇,等.基于DNA技术的对称加密方法[J].中国科学(E辑:信息科学),2007,37(2):175-182.

[5] 张光河,潘颂欣,张元亭.移动健康技术:基于动态生物特征的信息安全传输[J].中国医疗器械信息,2010,16(6):6-10.

[6] S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System[EB/OL]. https://bitcoin.org/bitcoin.pdf.

[7] Androulaki E,Barger A,Bortnikov V,et al. Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains[J].2018.

[8] 袁玉堂,李晓森,刘智勇.基于区块链技术电子健康档案信息系统设计的探讨[J].中国卫生信息管理杂志,2018,15(2):39-43.

[9] Benet J . IPFS - Content Addressed, Versioned, P2P File System (DRAFT 3)[J].Eprint Arxiv, 2014.

[10] Chen Y,Li H,Li K,et al.An improved P2P file system scheme based on IPFS and Blockchain[A].2017 IEEE International Conference on Big Data (Big Data)[C].IEEE,2017.

[11] 巫岱玥,余祥,王超,等.基于區块链的信息系统数据保护技术研究[A].中国指挥与控制学会,2018.

[12] 杨渊.基于区块链的银行信息互联平台设计与实现[D].北京交通大学,2018.

[13] 琚春华,邹江波,傅小康.融入区块链技术的大数据征信平台的设计与应用研究[J].计算机科学,2018,45(S2):532-536+562.

猜你喜欢

区块链
区块链对互联网金融发展的重塑与挑战分析
区块链技术在国内外金融领域应用动态
基于区块链技术的海上散装液体化学品运输安全监管方法
保险企业的区块链技术应用方向选择研究
区块链技术在金融领域的应用与前景研究
区块链技术的应用价值分析
“区块链”发展现状评述及展望
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
智能合约与金融合约