基于区块链的数据访问控制方法、装置、设备和介质与流程

文档序号:20489544发布日期:2020-04-21 21:56阅读:137来源:国知局
基于区块链的数据访问控制方法、装置、设备和介质与流程

本发明实施例涉及区块链技术,尤其涉及一种基于区块链的数据访问控制方法、装置、设备和介质。



背景技术:

企业级联盟项目(hyperledgerfabric)是区块链中联盟链的优秀实现,其成员准入机制与公有链不同,所有参与到网络中的成员都必须获得准入资格,故也称之为许可网络。数据只在可信赖的成员之间共享不对外暴露,保证了数据只能被已获得网络许可的成员访问。通常情况下,在联盟链网络内,均是采用多通道的方式进行交易,根据业务需求把网络中的成员划分到不同的通道里,从而达到数据隔离的目的。

然而,在目前的数据访问机制中,存在数据共享权限过大的情况;每个成员都可以对网络中的数据进行查询以及更新等操作,无法保证某些敏感数据的有效存储,导致数据的安全性降低。



技术实现要素:

本发明实施例提供一种基于区块链的数据访问控制方法、装置、设备和介质,可以对数据访问方进行身份验证,有效提高数据的安全性。

第一方面,本发明实施例提供了一种基于区块链的数据访问控制方法,所述方法包括:

接收数据访问方发起的关于访问加密数据的数据访问事务请求,其中,所述加密数据的基础信息在区块链网络中处于公开访问状态;

执行所述数据访问事务请求,以对所述数据访问方的访问权限进行验证;

如果所述数据访问方的访问权限验证通过,则通知所述加密数据的数据所有方进行数据解密,以使得所述数据访问方访问解密后的数据。

第二方面,本发明实施例还提供了一种基于区块链的数据访问控制装置,所述装置包括:

接收模块,用于接收数据访问方发起的关于访问加密数据的数据访问事务请求,其中,所述加密数据的基础信息在区块链网络中处于公开访问状态;

验证模块,用于执行所述数据访问事务请求,以对所述数据访问方的访问权限进行验证;

解密模块,用于如果所述数据访问方的访问权限验证通过,则通知所述加密数据的数据所有方进行数据解密,以使得所述数据访问方访问解密后的数据。

第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中的任一种所述的基于区块链的数据访问控制方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中的任一种所述的基于区块链的数据访问控制方法。

本发明实施例通过执行接收到数据访问方发起的数据访问事务请求;对数据访问方的访问权限进行验证;验证通过后,则通过加密数据的所有方对加密数据进行解密,使得数据访问方能够访问解密后的数据。本发明实施例能够通过数据所有方对区块链中的存储数据进行加密,在数据访问方访问加密数据时,提供了访问权限验证,并通过控制数据访问方的访问权限,有效提高了区块链网络中存储数据的安全性。

附图说明

图1是本发明实施例一中的基于区块链的数据访问控制方法的流程示意图;

图2是本发明实施例二中的基于区块链的数据访问控制方法的流程示意图;

图3是本发明实施例三中的基于区块链的数据访问控制装置的流程示意图;

图4是本发明实施例四中的电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一中的基于区块链的数据访问控制方法的流程示意图。本实施例可适用于在区块链网络中,对数据访问方的数据访问情况进行有效控制,以提高链上数据的安全性的情况。数据访问方和数据所有方均可以作为区块链节点,参与区块链网络。

本实施例方法可由基于区块链的数据访问控制装置来执行,该装置可采用硬件/或软件的方式来实现,可配置于电子设备中。该电子设备属于区块链节点设备,并且,本实施例方法可以由区块链节点执行。如图1所示,该方法具体包括如下:

s110、接收数据访问方发起的关于访问加密数据的数据访问事务请求,其中,加密数据的基础信息在区块链网络中处于公开访问状态。

在本实施例中,为了保证区块链网络中存储的数据不被任一数据访问方随意访问,提高数据的存储安全性,因此,各个数据所有方均可以对所其所关联的数据进行加密处理,设置数据的访问权限,然后再将加密数据和对应的访问权限进行上链存储,若有数据访问方想访问数据所有方的加密数据,需通过该加密数据的数据所有方对该加密数据进行解密,方可进行访问。

在区块链网络中,存储的数据的具体信息是非公开的,除数据所有方之外的其他数据访问方只能在区块链中看到所有数据的基础信息;其中,基础信息包括数据对应的描述信息以及数据对应的解密服务访问地址。具体的,数据的描述信息可以为数据的属性信息,例如数据的所属类型或者数据的具体功能等;数据的解密服务访问地址是该数据在区块链网络中的存储地址,数据访问方可以通过调用解密服务地址对所要访问的加密数据进行查看。

s120、执行数据访问事务请求,以对数据访问方的访问权限进行验证。

由于目前的区块链网络中,只要数据访问方加入该网络,就可以对区块链网络中存储的所有数据直接进行访问,极大降低了数据的存储安全性;为了保证数据被访问时的安全性,需对数据访问方的访问权限进行验证,以确保数据访问方的身份是合法的,该数据访问方具有访问加密数据的权限。

如果数据访问方的访问权限验证通过,则执行s130;如果数据访问方的访问权限验证未通过,表明该数据访问方的身份不合法,不具有访问加密数据的权限,则拒绝该数据访问方访问该加密数据。

s130、通知加密数据的数据所有方进行数据解密,以使得数据访问方访问解密后的数据。

通过数据所有方接收到通知信息,对加密数据进行解密后,数据访问方才能进行查看,以此实现了对区块链网络中存储数据的有效保护,能够防止数据被数据访问方随意添加等现象的发生;并且,本实施例中的加密数据可以细化到单条数据级别,降低了数据访问权限控制的颗粒度,能够满足复杂的业务需求。

本实施例的数据访问控制方法可以适用于对联盟链中存储的加密数据的访问控制。联盟链中的数据所有方和数据访问方可以向fabric-ca(数字证书管理)平台申请授权认证,fabric-ca会给数据所有方和数据访问方各自下发唯一的一个数字证书,以此表示数据所有方和数据访问方的身份特性,在下发数据证书的同时,还会为各方分配授权密钥对,包括授权公钥和授权私钥。

本发明实施例通过执行接收到数据访问方发起的数据访问事务请求;对数据访问方的访问权限进行验证;验证通过后,则通知加密数据的所有方对加密数据进行解密,使得数据访问方能够访问解密后的数据。本实施例能够通过数据所有方对区块链中的存储数据进行加密,在数据访问方访问加密数据时,提供了访问权限验证,并通过控制数据访问方的访问权限,有效提高了区块链网络中存储数据的安全性。

实施例二

图2是本发明实施例二中的基于区块链的数据访问控制方法的流程示意图。本实施例是在上述实施例的基础上进一步扩展与优化,并可与上述技术方案中任意可选方案组合。如图2所示,该方法包括:

s210、接收数据访问方发起的关于访问加密数据的数据访问事务请求,其中,加密数据的基础信息在区块链网络中处于公开访问状态。

s220、执行数据访问事务请求,以基于区块链网络中存储的加密数据的访问授权记录和数据访问事务请求中携带的访问方身份信息,确定数据访问方是否被授权。

在本实施例中,数据所有方可以设置加密数据的访问权限,确定可以访问该加密数据的访问方以及访问方的身份信息,示例性的,设置的访问权限可采用授权记录的形式携带在数据上传存储事务请求中,以实现上链存储,其中,该授权记录中记载了加密数据和被授权访问的访问方身份信息之间的对应关系。数据所有方还可以在链下向被授权访问加密数据的数据访问方发送授权通知。身份信息可以包括以下至少之一:数字证书里的机构名称、机构id、以及授权公钥等信息。

当区块链节点收到数据访问方发起的数据访问事务请求后,执行该数据访问事务请求,首先对该数据访问方的访问权限进行验证。示例性的,将访问授权记录中存储的访问方身份信息和当前数据访问方的身份信息进行比对,若当前数据访问方的身份信息在访问授权记录中存储,表示当前数据访问方被授权,执行s230;若在访问授权记录中未比对到当前数据访问方的身份信息,表示该数据访问方未被该加密数据的数据所有方授权,不能访问该数据所有方的加密数据。

s230、从区块链网络中获取数据访问方的授权公钥。

s240、利用授权公钥,验证数据访问事务请求中携带的私钥签名。

为了保证数据访问方身份信息的严密性,进一步获取数据访问方的授权公钥,以对访问事务请求中携带的私钥签名进行验证。其中,数据访问方的授权公钥和授权私钥是由fabric-ca平台为其分配,授权私钥由数据访问方自身保存,授权公钥可以由fabric-ca平台发起上链存储。

在本实施例中,在对访问加密数据的数据访问方进行授权验证完成后,还需对数据访问方的身份信息进行验证;具体的,在接收的数据访问方发送的数据访问事务请求中,包括了数据访问方的私钥签名;验证数据访问方的身份信息,即是对数据访问事务请求中的私钥进行验签。通过采用数据访问方的授权公钥验签数据访问方的私钥签名,能够有效提高数据访问方身份信息验证的准确性。如果数据访问方的私钥验签通过,则执行s250;如果数据访问方的私钥验签未通过,表明该数据访问方的公钥与数据访问事务请求中的私钥签名不匹配,即说明该公钥对应的数据访问方的身份信息与数据访问事务请求中的私钥签名的数据访问方对应的身份信息不符,则无法进行链上交易。

s250、通知加密数据的数据所有方进行数据解密,以使得数据访问方访问解密后的数据。

可选的,在接收数据访问方发起的关于访问加密数据的数据访问事务请求之前,还可以包括:

接收数据所有方发起的关于加密数据的数据上传事务请求,其中,数据上传事务请求中携带数据所有方的身份信息;

执行数据上传事务请求,以将加密数据和数据所有方的身份信息上链存储。

在本实施例中,数据所有方可以在区块链网络上添加其想要存储的数据,并且对存储的上传数据进行加密;考虑到性能问题(存储效率或者加密速度等),因此,数据采用对称加密方式,密钥在部署应用的时候可以通过代码自动生成并持久化到数据管理模块中;其中,数据管理模块内置fabric-sdk(软件开发工具包),可实现与具体业务合约的交互。具体的,区块链节点可以将加密数据与该加密数据所有方的身份信息进行绑定,通过数据管理模块调用业务合约实现加密数据以及前述绑定关系的上链存储。即针对每条加密数据,区块链网络中存储的与其相关的信息可以包括:加密数据本身、加密数据对应的数据所有方的身份信息、以及被授权访问的数据访问方的身份信息等。

可选的,在通知加密数据的数据所有方将加密数据进行解密之前,还可以包括:

执行数据访问事务请求,以从区块链网络中获取加密数据对应的数据所有方的身份信息;

验证加密数据对应的数据所有方的身份信息。

在通知加密数据的数据所有方将加密数据进行解密之前,需要对该数据所有方的身份信息进行验证,以确保该数据所有方与加密数据存在关联关系。例如,可以通过该加密数据,在区块链网络中存储的数据存储记录中查找对应该加密数据的数据所有方,并将该数据所有方的身份信息在区块链网络中存储的加密数据绑定关系中进行匹配,如果匹配成功,则该数据所有方的身份信息验证通过。

可选的,在通知加密数据的数据所有方进行数据解密之后,还可以包括:

向数据访问方发送数据解密通知,以指示数据访问方通过预先获取的数据解密访问地址,访问解密后的数据。

在本实施例中,区块链网络中存储的所有数据的解密访问地址均是公开状态的,数据解密后,数据访问方可调用数据解密访问地址,实现对解密后数据的正常访问。

可选的,还可以包括:

接收数据所有方发起的关于加密数据的数据处理事务请求;

执行数据处理事务请求,以对数据所有方的身份信息进行验证;

如果数据所有方的身份信息验证通过,则获取数据所有方对加密数据的处理结果;

其中,数据处理包括:加密数据的添加、查询和访问授权变更。

在本实施例中,加密数据上链存储后,数据所有方还可以对加密数据进行数据添加、数据查询以及数据的访问授权变更等操作;但在执行这些操作之前,需对执行者(数据所有方)的身份信息进行验证;具体可以通过加密数据上链时存储的绑定关系,验证当前数据所有方与绑定关系中的数据所有方的身份信息是否一致,若一致,则可执行数据处理的操作。

本发明实施例首先通过验证数据访问方是否为授权用户,再用数据访问方的授权公钥去解签数据访问事务请求中的私钥签名,以此实现对数据访问方的访问权限的准确验证,并且,当数据所有方处理其加密数据时,需要对其身份信息进行验证,进一步增强了区块链网络中数据访问的权限控制。

实施例三

图3是本发明实施例三中的基于区块链的数据访问控制装置的流程示意图,本实施例可适用于在区块链网络中,对数据访问方的数据访问情况进行有效控制,以提高链上数据的安全性的情况。该装置配置于电子设备中,可实现本申请任意实施例所述的基于区块链的数据访问控制方法。该装置具体包括如下:

接收模块310,用于接收数据访问方发起的关于访问加密数据的数据访问事务请求,其中,所述加密数据的基础信息在区块链网络中处于公开访问状态;

验证模块320,用于执行所述数据访问事务请求,以对所述数据访问方的访问权限进行验证;

解密模块330,用于如果所述数据访问方的访问权限验证通过,则通知所述加密数据的数据所有方进行数据解密,以使得所述数据访问方访问解密后的数据。

可选的,所述验证模块320,具体用于:

执行所述数据访问事务请求,以基于区块链网络中存储的所述加密数据的访问授权记录和所述数据访问事务请求中携带的访问方身份信息,确定所述数据访问方是否被授权;

如果所述数据访问方被授权,则从区块链网络中获取所述数据访问方的授权公钥;

利用所述授权公钥,验证所述数据访问事务请求中携带的私钥签名。

可选的,所述装置还包括:

所述接收模块310,还用于接收所述数据所有方发起的关于所述加密数据的数据上传事务请求,其中,所述数据上传事务请求中携带所述数据所有方的身份信息;

存储模块340,用于执行所述数据上传事务请求,以将所述加密数据和所述数据所有方的身份信息上链存储。

可选的,所述装置还包括:

获取模块350,用于执行所述数据访问事务请求,以从区块链网络中获取所述加密数据对应的数据所有方的身份信息;

所述验证模块320,还用于验证所述加密数据对应的数据所有方的身份信息。

可选的,所述装置还包括:

发送模块360,用于向所述数据访问方发送数据解密通知,以指示所述数据访问方通过预先获取的数据解密访问地址,访问所述解密后的数据。

可选的,所述装置还包括:

所述接收模块310,还用于接收所述数据所有方发起的关于所述加密数据的数据处理事务请求;

所述验证模块320,还用于执行所述数据处理事务请求,以对所述数据所有方的身份信息进行验证;

所述获取模块350,还用于如果所述数据所有方的身份信息验证通过,则获取所述数据所有方对所述加密数据的处理结果;

其中,所述数据处理包括:所述加密数据的添加、查询和访问授权变更。

通过本发明实施例三的基于区块链的数据访问控制装置,能够通过数据所有方对区块链中的存储数据进行加密,在数据访问方访问加密数据时,提供了访问权限验证,并通过控制数据访问方的访问权限,有效提高了区块链网络中存储数据的安全性。

本发明实施例所提供的基于区块链的数据访问控制装置可执行本发明任意实施例所提供的基于区块链的数据访问控制方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4是本发明实施例四中的电子设备的结构示意图,如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于区块链的数据访问控制方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现本发明实施例所提供的基于区块链的数据访问控制方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,可以包括键盘、鼠标等。输出装置440可包括显示屏等显示设备。

实施例五

本实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现本发明实施例所提供的基于区块链的数据访问控制方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于区块链的数据访问控制方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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