基于区块链的数据受控流转方法

文档序号:26307963发布日期:2021-08-17 13:48阅读:91来源:国知局
基于区块链的数据受控流转方法

本发明属于网络安全技术领域,涉及一种基于区块链的数据受控流转方法。



背景技术:

随着社会信息化的不断发展,各行业都聚集了大量的数据资源,这些数据被相互独立地存储在不同的信息系统中,不同系统间数据流通十分困难,致使行业间陷入“数据孤岛”的困境。

不同系统间的数据流转可促进各行业数据的交叉引用,利于挖掘数据中的潜在价值,带来巨大的社会和经济效益,因此急需解决行业之间存在的信息壁垒问题。

数据的流转给人们带来巨大资源便利的同时,也面临个人数据权益的丢失。例如,企业在用户不知情下出售个人隐私数据,导致用户损失个人数据权益,对用户的生活造成极大的危害。同时,数据在开放网络环境中流转也存在内容被篡改、数据被盗窃等问题。因此,如何在保护个人数据权益的前提下,实现数据受控流转是信息时代面临的一个巨大考验,也越来越受到人们的关注。

目前,常用的数据流转技术是分布式数据库,它由多个相互连接的数据库组成,并使用两阶段提交协议进行通信以实现数据的流转。然而,分布式数据库存在高开销、数据同步困难和安全性难控等问题,不利于数据流转过程中数据权益的保护。

为此,引入区块链技术,一个分布式的共享账本和数据库,具有去中心化、不可篡改和全程保留等特性;负责对数据流转过程的审核和控制数据的流动范围,并利用自身防篡改的特性,记录流转过程中所有执行过的操作。此时数据存储在本地数据库中,整个流转过程由区块链严格把控,不存在数据难以同步和安全性不稳定等问题。



技术实现要素:

基于现有技术中分布式数据库和两阶段提交协议,无法解决数据流转过程的安全问题,本发明提出一种基于区块链的数据受控流转方法,有效的解决了开放网络环境中数据可信度低、数据流转过程混乱和数据权益持续性损失等问题。

所述的基于区块链的数据受控流转方法,包括以下步骤:

步骤一、采用一个盟主和两个从组织的架构,构建数据流转联盟链,采用raft共识算法实现盟主与从组织间的信息同步;

架构具体为:

首先,搭建九台虚拟机,分别作为不同的节点,将每两个对等节点组成org组织,共组成三个:org1组织,org2从组织和org3从组织;org2从组织作为数据流转联盟链中的数据上传区,org3从组织作为数据流转联盟链中的数据下载区。

剩下的三个节点组成orderer组织,org1组织和orderer组织共同构成盟主leader,作为数据流转联盟链中的可信第三方。

最后,在可信第三方和数据上传区之间建立可信的共享传输通道channel1;在可信第三方和数据下载区之间建立可信的共享传输通道channel2。

步骤二、数据发送者a向可信第三方申请属性加密的公开参数pa,并设置访问控制结构树t对发送的流转数据进行加密,生成流转数据密文dc;

具体过程为:

首先,可信第三方输入安全参数λ,生成公开参数pa和主密钥mk,并将参数pa上传至通道channel1中;

setup(λ)→(mk,pa)

然后,数据发送者a构造访问结构树t;

访问结构树t由一系列数据接收者的身份属性和门限逻辑运算符组成。

最后,数据发送者a使用访问结构树t、公开参数pa对自身发出的流转数据明文data进行加密,生成流转数据密文dc。

encrypt(data,pa|t)→dc

步骤三、发送者a将密文dc上传至数据流转中台,并提取文件流转过程中的数据摘要信息h1上链存证,记录在数据流转联盟链中。

摘要信息具体包括三部分:

数据实体包括数据名称、数据类型、数据hash值、数据文件的uri、数据大小和数据版本等。

数据活动包括流转事件编号、数据发送者信息、数据接收者信息。

附加信息是进行数据摘要上链时,需要附加数字签名和时间戳等信息。

步骤四、数据接收者b向可信第三方发送资源访问请求,可信第三方生成资源访问密钥vk。

具体流程如下:

首先,数据接收者b生成数据加密传输的公钥pk和私钥sk,并向可信第三方发送资源访问请求和公钥pk。

其次,可信第三方对数据接收者b进行合法身份的验证,验证成功后获取数据接收者b的身份属性a,验证失败则发出非法用户访问警告。

接着,可信第三方根据主密钥mk、公开参数pa和身份属性a生成资源访问密钥vk。

keygen(pa,mk,a)→vk

然后,可信第三方使用公钥pk对资源访问密钥vk进行加密,得到加密后的密钥ek并上传至通道channel2中。

encrypt(vk,pk)→ek

最后,数据接收者b从通道channel2中获取加密后的密钥ek,并使用私钥sk解密获得资源访问密钥vk。

decrypt(ek,sk)→vk

步骤五、数据接收者b根据资源访问密钥vk进行内部解密计算,获得数据发送者a的流转数据明文data。

具体过程为:

首先,数据接收者b从数据流转中台获取流转数据密文dc,并从channel2中获取资源访问密钥vk。

然后,数据接收者b在数据下载区使用资源访问密钥vk对流转数据密文dc进行解密计算,从而得到数据共享明文data。

解密过程为:判断数据接收者b的身份属性a是否匹配访问控制结构树t,如果匹配则成功解密,得到流转数据明文data。否则,不能解密。

最后,数据接收者b提取链上存证的摘要信息h1,并计算流转数据明文data的摘要信息h1'。通过对比摘要信息,如果一致,则数据验证结果正确;否则,发出警告“数据篡改”,从而实现对流转数据的快速一致性验证。

本发明的优点在于:

1)、一种基于区块链的数据受控流转方法,利用了区块链技术,采用一个盟主和两个从组织的架构,建立数据的分区分级隔离保护机制,有效隔离数据流转中的上传、下载过程,从而确保了信息传输环境的安全性与隔离性。同时,建立安全的两个隔离通道channel1和channel2,用于流转数据的单向传输和资源共享。

2)、一种基于区块链的数据受控流转方法,提取数据的摘要信息并上链存证,建立流转数据的历史记录账本,实现数据流转中快速一致性验证和数据扩散轨迹溯源。

3)、一种基于区块链的数据受控流转方法,数据发送者构造访问结构树t,利用属性加密技术控制数据的流动范围,实现对流转数据的细粒度访问控制。

4)、一种基于区块链的数据受控流转方法,数据发送者实施不同用户间的访问控制策略,数据接收者基于身份获取相应权限的数据,以防止非法用户窃取个人隐私数据。

5)一种基于区块链的数据受控流转方法,基于数据流转联盟实现密钥的分发与管理,借助区块链的去中心化、不可篡改以及可追溯的特点,为用户提供更安全、便捷的密钥分发机制。

附图说明

图1是本发明一种基于区块链的数据受控流转方法的原理图;

图2是本发明一种基于区块链的数据受控流转方法的流程图;

图3是本发明利用九台虚拟机构建数据流转联盟链的架构图;

图4是本发明数据发送者a发送流转数据进行加密上传的示意图;

图5是本发明数据摘要信息的具体结构图;

图6是本发明可信第三方生成资源访问密钥vk的具体流程图;

图7是本发明数据接收者b请求访问资源解密获取数据明文的流程图。

具体实施方式

下面通过附图和实施例,对本发明进行详细阐述。

本发明针对不可信网络,实现数据受控流转及权益保护,提出了一种基于区块链的数据受控流转方法,如图1所示,首先,在不可信网络环境下建立数据流转联盟链,设立可信第三方、数据上传区和数据下载区,用于隔离数据流转过程中的上传和下载操作;其次执行数据加密上传的智能合约,通过设置不同用户间的访问控制结构树,对流转数据加密并将其上传至数据流转中台;接着执行数据摘要上链的智能合约,提取流转数据的摘要信息并上链存证;然后执行密钥生成的智能合约,可信第三方根据数据接收者的身份属性,动态生成资源访问密钥;最后执行数据解密获取的智能合约,数据接收者利用资源访问密钥进行解密获得流转数据明文,并通过链上链下数据摘要对比,验证流转数据的真实性。

所述的基于区块链的数据受控流转方法,如图2所示,具体包括以下步骤:

步骤一、采用一个盟主和两个从组织的架构,构建数据流转联盟链,采用raft共识算法实现盟主与从组织间的信息同步;

盟主作为数据流转的安全审批中心,对数据进行审批和调度;两个从组织分别负责数据的上传和下载,但从组织间不能直接交互;架构具体为:

搭建九台虚拟机,并在其上部署区块链环境,生成证书、创世区块、通道配置和锚节点等配置文件,上述环境配置过程可以由最初一台虚拟机复制而来。

如图3所示,将这九台虚拟机分别作为不同的节点,将每两个对等节点组成org组织,共组成三个:org1组织,org2从组织和org3从组织,负责账本的记录与智能合约的执行;

org2从组织作为数据流转联盟链中的数据上传区,执行数据加密上传和数据摘要上链的智能合约;org3从组织作为数据流转联盟链中的数据下载区,执行数据加密获取的智能合约。

剩下的三个排序节点组成orderer组织,采用raft共识算法进行账本间的排序。

org1组织和orderer组织共同构成盟主leader,作为数据流转联盟链中的可信第三方,负责数据流转过程中密钥的管理与分发,执行资源访问密钥生成的智能合约。

在可信第三方和数据上传区之间建立可信的共享传输通道channel1,记录流转数据的摘要信息,并向数据上传区发送属性加密的公开参数pa;在可信第三方和数据下载区之间建立可信的共享传输通道channel2,向数据下载区加密传输资源访问密钥vk。

步骤二、数据发送者a在数据上传区执行数据加密上传的智能合约,向可信第三方申请属性加密的公开参数pa,并设置访问控制结构树t对发送的流转数据进行加密,生成流转数据密文dc;

如图4所示,具体过程为:

数据发送者a执行数据加密上传的智能合约,从私密数据库中提取流转数据data,并向可信第三方发送数据加密上传请求。

可信第三方验证数据发送者a的身份信息,输入安全参数λ,生成属性加密的公开参数pa和主密钥mk,并发送公开参数pa上传至通道channel1中;

setup(λ)→(mk,pa)

数据发送者a从channel1中获取公开参数pa,并以用户身份为属性构造访问结构树t;

数据发送者a指定数据接收者的用户身份范围,如单位a的部门1或部门2的财务人员或销售人员,其访问结构树t表示如下。

t=单位aand{部门1or部门2}and{财务人员or销售人员}

访问结构树t由一系列数据接收者的身份属性和门限逻辑运算符组成。

数据发送者a使用访问结构树t、公开参数pa对流转数据明文data进行加密,生成流转数据密文dc,只有满足访问结构树属性的数据接收者才能解开流转数据密文dc。

encrypt(data,pa|t)→dc

数据发送者a上传流转数据密文dc至数据流转中台。

步骤三、在数据流转联盟链的基础上建立数据流转中台,数据发送者a上传流转数据密文dc至数据流转中台,并提取文件流转过程中的数据摘要信息h1执行上链存证操作。

如图5所示,摘要信息h1具体包括三部分:数据实体、数据活动和附加信息;

具体步骤为:

用户提取流转数据的实体信息,包括数据名称、数据类型、数据hash值、数据文件的uri、数据大小和数据版本等。

用户生成流转数据的活动信息,包括活动事件编号、数据发送者信息、数据接收者信息;

用户增加流转数据的附加信息,附加信息是进行数据摘要上链时,需要附加数字签名和时间戳等信息。

用户执行摘要信息h1上链存证操作,提取流转过程中的数据摘要,并将其记录在数据流转联盟链中。

步骤四、数据接收者b向可信第三方发送资源访问请求,可信第三方执行密钥生成的智能合约,生成资源访问密钥vk,并将其加密发送至通道channel2中。

如图6所示,具体流程如下:

首先,数据接收者b生成数据加密传输的公钥pk和私钥sk,并向可信第三方发送资源访问请求和公钥pk。

其次,可信第三方执行密钥生成智能合约,对数据接收者b进行合法身份的验证,验证成功后获取数据接收者b的身份属性a,验证失败则向数据流转联盟发出非法用户访问警告。

接着,可信第三方根据属性加密的主密钥mk、公开参数pa和身份属性a生成资源访问密钥vk。

keygen(pa,mk,a)→vk

然后,可信第三方使用加密传输公钥pk对资源访问密钥vk进行加密,得到加密后的密钥ek并上传至通道channel2中。

encrypt(vk,pk)→ek

最后,数据接收者b从通道channel2中获取加密后的密钥ek,并使用私钥sk解密获得资源访问密钥vk。

decrypt(ek,sk)→vk

步骤五、数据接收者b在数据下载区执行数据解密获取的智能合约,根据资源访问密钥vk进行内部解密计算,获得数据发送者a的流转数据明文data。

如图7所示,具体过程为:

首先,数据接收者b从数据流转中台申请获取流转数据密文dc,并通过channel2向可信第三方申请获取资源访问密钥vk。

然后,数据接收者b在数据下载区使用资源访问密钥vk对流转数据密文dc进行解密计算,从而得到数据共享明文data;

解密过程为:判断数据接收者b的身份属性a是否匹配访问控制结构树t,如果匹配则成功解密,得到流转数据明文data。否则,不能解密。

最后,数据接收者b提取链上存证的摘要信息h1,并计算流转数据明文data的摘要信息h1'。通过链上链下的摘要信息对比,如果一致,则数据验证结果正确;否则,发出警告“数据篡改”,从而实现对流转数据的快速一致性验证。

具体为:

数据接收者b从channel2中获取数据摘要信息,验证流转数据的数据类型、数据uri、数据大小、数据版本是否与链上存证的摘要信息h1一致,若信息验证不一致则发出非法篡改警告。

数据接收者b计算流转数据的hash值,并与链上存储的hash值进行对比,验证流转数据内容的正确行、完整性,若是内容验证不一致则发出内容非法篡改警告。

当数据流转联盟发出警告后可做深度检测,从链上溯源数据区块的操作历史,并对操作历史做分析,评估是否有非法操作的风险,及时修复漏洞。

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