基于HyperLedgerFabric的社区健康服务联盟数据保护和共享方法与流程

文档序号:17863832发布日期:2019-06-11 23:03阅读:792来源:国知局

本发明涉及医疗健康技术领域,具体地说,涉及一种基于hyperledgerfabric(超级账本开源区块链fabric项目)的社区健康服务联盟数据保护和共享方法。

技术背景

社区健康服务中心的健康数据真实性是提供社区健康服务的基础,而现有绝大部分社区健康数据都集中存储在社区健康服务中心的数据库中。一旦数据库遭受外部或内部篡改很难精准及时地发现数据异常。社区健康服务联盟成员间的数据共享,既要保证共享数据的真实性,又要控制共享访问范围和权限。

目前针对社区健康服务中心的数据保护和共享主要采用多点备份、冗余校验和文件共享下载等传统中心化控制技术架构。该技术架构要求中心化节点,如社区健康服务中心监管部门或社区健康服务中心本身,自律可靠,且能够抵抗日益多样的外部攻击。因数据中心化存储和管理造成数据泄露和数据篡改的报道屡见不鲜。区块链技术的本质是一种去中心化(decentralized)、无需信任(trustless)的分布式数据账本,其借助密码学、对等网络、共识算法等技术使所有参与节点共同拥有、管理和监督数据,不受任何单一节点的控制,具有数据不可伪造、不可篡改、不可抵赖、过程可追溯等特点,高度吻合社区健康服务数据真实性保护需求。

hyperladgerfabric作为开源区块链联盟链项目,适合作为各社区健康服务中心构建社区健康服务联盟的底层支持,且fabric本身自带较多通用工具和个性化定制接口,是实现社区健康服务联盟数据保护和共享的较理想选择。



技术实现要素:

本发明的技术解决问题:克服现有技术的不足,提供一种基于hyperledgerfabric的社区健康服务联盟数据保护和共享方法,用于保护社区健康服务中心数据真实性和社区健康服务联盟成员间数据共享,能较好地解决上述问题。

为了达到上述目的,本发明所采用的技术方案为:

基于hyperledgerfabric的社区健康服务联盟数据保护和共享方法,包括,

身份授权单元,其用于授予社区健康服务联盟的成员权限;

业务系统单元,其用于实现社区健康服务中心的服务业务;

数据保护单元,其用于将社区健康元数据记录至fabric区块链单元;

数据共享单元,其用于向联盟内其他成员提供数据共享;

数据校验单元,其用于校验当前数据是否为真实的原始值;

fabric区块链单元,其用于存储社区健康元数据。

所述所述身份授权单元,其特征在于:由上级社区健康服务中心或社区健康服务监管部门作为身份认证单元的主体,为各社区健康服务中心颁发联盟成员证书,组建社区健康服务联盟。具体地,身份授权单元作为证书授权机构(certificateauthority),为成员节点颁发数字证书,创建社区健康服务联盟通道(channel),制定fabric区块链全局策略。

所述业务系统单元,其特征在于:业务系统单元为社区健康服务中心的服务信息系统,完成日常健康服务工作,并作为本方法其他单元的数据来源。业务系统单元后台运行定时程序,定期调用数据保护单元和数据共享单元,完成数据保护和数据共享。

所述数据保护单元,其特征在于:数据保护单元构造待保护数据的元数据信息,并将元数据信息记录至fabric区块链单元。元数据信息包括:数据编号、数据来源、数据指纹、共享对象列表、数据下载地址、当前时间等。数据编号为该数据全局唯一的标志,和数据实体一一对应;数据来源为发布该数据的健康服务中心编号;数据指纹为数据原文的hash值。共享对象列表为允许其他成员访问该数据的<成员编号、解密密钥>二元组列表;数据下载地址为该数据密文的下载地址;当前时间为该数据的保护时间。

数据保护过程如下:

1)数据发布者s计算编号为i的数据d的hash值,记为h;

2)s随机产生对称加密密钥k,对d加密产生密文c;

3)s确定要共享数据的成员r1,r2,…,rn,使用在身份授权单元获取各自证书的公钥pk1,pk2,…,pkn,加密k,产生密文ck1,ck2,…,ckn;

4)s生成共享对象列表l=[<r1,ck1>,<r2,ck2>,…,<rn,ckn>];

5)s将密文c上传至自己的数据共享服务器,产生数据下载地址w;

6)s产生d的元数据m=<i,s,h,l,w,t>,t为当前时间;

7)s将元数据m记录至fabric区块链单元。

如果该数据不用于共享,则其元数据不包括共享对象列表和数据下载地址。

所述数据共享单元,其特征在于:数据共享单元接受其他成员的数据下载请求,验证该成员是否在元数据信息的共享对象列表中,若存在则返回加密后的数据。

数据共享请求过程如下:

1)成员a请求下载编号为i的数据密文c,首先到fabric区块链单元获取i的元数据信息m;

2)若m的共享对象列表存在<a,cka>,则使用自己的私钥ska解密cka得到对称密钥k;

3)a按照m的数据下载地址w,构造数据下载请求q,设置请求对象为i,并设置请求时间参数qt为当前时间,同时带上自己的签名sig;

4)a接到数据下载响应,获得数据密文c。使用k解密c得到真正的数据原文d。

数据共享响应过程如下:

1)数据发布者s收到数据下载请求q,校验请求时间qt是否为最近时间。若不是,则不予响应,否则继续以下过程;

2)s根据请求对象查找fabric区块链单元记录的i的元数据信息m,查询身份授权单元,获取所有m的共享对象列表中成员的公钥pk1,pk2,…,pkn;

3)使用pk1,pk2,…,pkn,逐个验证请求q的签名sig。若验证均不通过,则不予响应,否则返回i的数据密码c。

所述数据校验单元,其特征在于:数据校验单元用于校验当前数据是否为真实的原始值。当前数据可以是数据发布者自己的本地数据,也可以是通过数据共享或其他途径获取到的数据。数据校验过程如下:

1)通过数据编号i查找到fabric区块链单元记录的元数据信息m=<i,s,h,l,w,t>;

2)计算当前数据的hash值,若其和h一致,则当前数据为原始数据,否则当前数据已被篡改。

所述fabric区块链单元,其特征在于:fabric区块链单元接受数据保护单元的请求,将元数据记录至fabric区块链中;同时向数据校验单元提供查询服务,返回fabric区块链记录的元数据信息。

具体地,每个联盟成员作为fabric区块链网络的成员节点,共同维护fabric区块链账本。身份授权单元创建联盟成员身份、创建交易通道、提供排序服务(orderservice)、制定fabric区块链全局策略等。

本发明与相对于现有技术的优势在于:

(1)采用hyperladgerfabric区块链去中心化技术,利用各个社区健康服务联盟成员节点的计算资源和管理资源合力保护社区健康数据真实性。

(2)采用数据加密、签名验证、身份授权等技术,能够有效保证共享数据的私密性、完整性和可访问性。

附图说明

图1本发明的系统结构框图;

图2本发明的数据保护和共享发布流程图;

图3本发明的共享数据下载解析流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。

如图1所示,本发明的系统结构分为业务系统单元、数据保护单元、数据共享单元、数据校验单元、fabric区块链单元和身份授权单元。业务系统单元是整个系统的数据源,将数据输入至数据保护单元、数据共享单元和数据校验单元,以完成数据的保护、共享和校验处理。fabric区块链单元作为数据保护、共享和校验的底层支持模块,调用区块链内部接口实现数据保护、共享和校验功能。身份授权单元作为社区健康服务联盟的构建和管理单元,负责为各社区健康服务中心分配和维护角色和权限,支持社区健康服务联盟正常运行。

如图2所示,本发明的数据保护和共享流程为,社区健康服务中心计算数据指纹,使用对称密钥加密数据,使用共享对象的公钥加密对称密钥,然后将数据指纹和加密后的对称密钥写入fabric区块链,并提供数据密文文件下载服务。

如图3所示,本发明的共享数据下载解析流程为,社区健康服务联盟成员下载数据密文,查询fabric区块链,获取加密后的对称密钥,然后用自己的私钥解密出对称密钥,并使用对称密钥解密数据密文,得到真正的数据内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1