掌桥专利:专业的专利平台
掌桥专利
首页

基于联盟链的密钥管理系统及方法

文献发布时间:2023-06-19 19:28:50


基于联盟链的密钥管理系统及方法

技术领域

本发明涉及数据处理技术领域,尤其涉及一种基于联盟链的密钥管理系统及方法。

背景技术

在存在获取数据的需求时,信息请求端把请求数据发送至信息发送端,信息发送端对请求数据进行处理后,把反馈数据返回至信息请求端。信息请求端与信息发送端之间的数据传输存在被抓包的风险,也会对信息请求端与信息发送端的网络安全造成一定的威胁。

相关技术中,通过采用生成非对称加密的密钥来对传输数据进行加密,一定程度上保证信息传递的安全。但在信息传递之前,需要信息交互双方先完成的密钥的交换,密钥传输的过程也存在安全风险。

发明内容

本发明提供一种基于联盟链的密钥管理系统及方法,用以解决现有技术中加密传输数据的密钥存在安全风险的缺陷,实现降低密钥传输过程的安全风险,进而提高数据传输的安全性。

本发明提供一种基于联盟链的密钥管理系统,包括:

信息请求端、信息发送端以及联盟链;

所述联盟链上部署有所述信息请求端对应的第一区块链节点,所述第一区块链节点与所述信息请求端通信连接,所述第一区块链节点用于获取并存储所述信息请求端发送的信息;

所述联盟链上还部署有所述信息发送端对应的第二区块链节点;所述第二区块链节点与所述信息发送端通信连接,所述第二区块链节点用于获取并存储所述信息发送端发送的信息;

所述信息请求端与所述信息发送端之间通过第一信道通信连接,所述第一信道用于实现所述信息请求端与所述信息发送端之间的数据传输;所述第一区块链节点与所述第二区块链节点之间通过第二信道通信连接,所述第二信道用于实现所述第一区块链节点与所述第二区块链节点之间的数据传输;所述第一区块链节点还用于根据对应的智能合约生成目标公钥和目标私钥,并将所述目标公钥通过所述第二信道发送至所述第二区块链节点,所述目标公钥和所述目标私钥分别用于对所述信息请求端与所述信息发送端之间的通信数据进行加密和解密处理。

根据本发明提供的一种基于联盟链的密钥管理系统,所述联盟链还包括第一区块链解析器和第二区块链解析器;所述信息请求端通过所述第一区块链解析器调用并发起执行所述第一区块链节点对应的智能合约;所述信息发送端通过所述第二区块链解析器发起建立所述第二信道,并发起执行所述第二区块链节点对应的智能合约以及发起将所述信息发送端的数据发送记录上传至所述联盟链。

根据本发明提供的一种基于联盟链的密钥管理系统,所述信息请求端包括:验证模块、第一接收模块和第一数据处理模块;

所述验证模块用于通过所述第一信道向所述信息发送端发送获取数据的请求信息以及信息请求端在联盟链对应的身份证明;

所述第一接收模块用于通过所述第一区块链解析器接收所述第二区块链节点发送的身份证明验证通过信息,所述第一接收模块还用于接收所述信息发送端发送的反馈数据;所述反馈数据为通过目标公钥加密得到的;

所述数据处理模块用于使用与所述目标公钥对应的目标私钥将所述反馈数据解密。

根据本发明提供的一种基于联盟链的密钥管理系统,所述信息发送端包括:第二接收模块和第二数据处理模块;

所述第二接收模块用于接收信息请求端发送的获取数据的请求信息以及所述信息请求端在所述联盟链对应的身份证明;

所述第二数据处理模块用于通过所述第二区块链解析器获取所述第二区块链节点处接收到的所述目标公钥,并在所述第二区块链节点确定所述信息请求端在所述联盟链对应的身份证明验证通过的情况下,将反馈数据通过所述目标公钥加密并发送至所述信息请求端。

本发明还提供一种基于联盟链的密钥管理方法,应用于如上述的第一区块链节点,所述方法包括:

确定存在向信息发送端获取数据的需求,通过对应的智能合约生成目标公钥;所述智能合约还用于确定所述目标公钥对应的目标私钥;

将所述目标公钥上传至联盟链,并通过联盟链上的第二信道发送至第二区块链节点;所述第二区块链节点为所述信息发送端在所述联盟链上对应的节点;

在通过所述信息请求端接收到所述信息发送端发送的反馈数据的情况下,确定所述信息请求端使用所述目标私钥将所述反馈数据解密;所述反馈数据为通过所述目标公钥加密得到的;

将从所述信息请求端接收到所述反馈数据对应的第一信息传输记录与所述目标私钥关联,并将所述第一信息传输记录上传至所述联盟链进行存储。

根据本发明提供的一种基于联盟链的密钥管理方法,所述确定存在向信息发送端获取数据的需求,包括:

通过所述信息请求端向所述信息发送端发送获取数据的请求信息以及所述信息请求端在所述联盟链对应的身份证明;

在通过所述信息请求端接收到所述信息发送端发送身份证明验证通过信息的情况下,确定与所述第二区块链节点在所述联盟链建立所述第二信道。

根据本发明提供的一种基于联盟链的密钥管理方法,所述确定存在向信息发送端获取数据的需求,包括:

所述智能合约还用于确定所述目标公钥对应的加密算法和有效期。

本发明还提供一种基于联盟链的密钥管理方法,应用于如上述的第二区块链节点,所述方法包括:

确定信息请求端存在获取数据的需求,从本地的公钥记录中查询并解析出第一区块链节点通过联盟链上的第二信道发送的目标公钥;所述第一区块链节点为所述信息请求端在所述联盟链上对应的节点;

在通过所述信息发送端将反馈数据发送至所述信息请求端的情况下,将向所述信息请求端发送所述反馈数据对应的第二信息传输记录与所述目标公钥关联,并将所述第二信息传输记录上传至所述联盟链进行存储。

根据本发明提供的一种基于联盟链的密钥管理方法,所述确定信息请求端存在获取数据的需求,包括:

通过所述信息发送端接收所述信息请求端发送的获取数据的请求信息以及所述信息请求端在所述联盟链对应的身份证明;

确定所述信息请求端在所述联盟链对应的身份证明验证通过,并向所述信息请求端发送身份证明验证通过信息;

与所述第一区块链节点在所述联盟链建立所述第二信道。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于联盟链的密钥管理方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于联盟链的密钥管理方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于联盟链的密钥管理方法。

本发明提供的基于联盟链的密钥管理系统及方法,通过在联盟链上设置分别与信息请求端对应的第一区块链节点以及与信息发送端对应的第二区块链节点,来实现目标公钥和目标私钥的生成,进而利用联盟链上的第二信道传输目标公钥,保证了密钥的安全性,使得信息发送端能获取目标公钥来对传输的通信数据进行加密,进一步保证了信息发送端与信息请求端之间通过第一信道进行数据传输的安全性。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于联盟链的密钥管理系统的结构示意图之一;

图2是本发明提供的基于联盟链的密钥管理系统的结构示意图之二;

图3是本发明提供的基于联盟链的密钥管理方法的流程示意图之一;

图4是本发明提供的基于联盟链的密钥管理方法的流程示意图之二;

图5是本发明提供的基于联盟链的密钥管理方法的业务流程示意图;

图6是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合图1-图6描述本发明的基于联盟链的密钥管理系统及方法。

可以理解的是,密码通信是现代信息系统之间实现身份互认、信息可信的常用手段。现有技术中,通常使用非对称加密的方法,由信息请求端生成己方公私密钥,并将公钥提供给信息发送端,用于信息加密。信息请求端在收到加密信息后,使用私钥进行解密,即可完成本次的信息加密传输。然而,密钥在两个业务端之间传输的过程中也存在安全问题,也存在被抓包和解析的风险。

如图1所示,本发明实施例的基于联盟链的密钥管理系统主要包括:信息请求端、信息发送端以及联盟链。

需要说明的是,信息请求端和信息发送端均为业务端。按照应用对象来分,业务端可以包括客户端以及服务端。在此种情况下,信息请求端可以是客户端,信息发送端可以是服务端。按照对应的终端来分,业务端可以包括电子设备终端、服务器端以及虚拟设备端等。

例如,用户可以通过客户端手机上的软件来向服务端服务器发起信息请求。

可以理解的是,区块链技术按照准入机制与共识过程不同,分为公有链、私有链、联盟链三类。三类区块链由于激励机制不同,存在着不同程度的安全性和不同的共识效率。在公有链中,比特币作为激励手段对矿工参与共识过程的工作量进行激励,其共识过程虽然具有去中心化、数据不可篡改的特性,但因存在共识效率不高、存储资源消耗过大导致使用成本较高、数据信息全网节点可见等问题,难以快速实现应用。而由特定节点组成的私有链仍保留着中心化的特点,因此在私有链上执行操作并无共识过程,也无激励机制,这使得私有链难以在多方合作者之间发展。联盟链指其共识过程受到预选节点控制的区块链。

在本实施方式中,利用联盟链的强信任的特点,来传输并管理业务双方的密钥,保障密钥的安全。

在此种情况下,联盟链上部署有信息请求端对应的第一区块链节点,第一区块链节点与信息请求端通信连接,第一区块链节点用于获取并存储信息请求端发送的信息。

联盟链上还部署有信息发送端对应的第二区块链节点;第二区块链节点与信息发送端通信连接,第二区块链节点用于获取并存储信息发送端发送的信息。

需要说明的是,信息请求端与信息发送端之间通过第一信道通信连接,第一信道用于实现信息请求端与信息发送端之间的数据传输。

第一信道为信息请求端与信息发送端之间进行网络通信的信道,第一信道可以是基于以太网、无线局域网、移动网络以及卫星网络等方式建立的信道,以实现业务双方的通信。

第一区块链节点与第二区块链节点之间通过第二信道通信连接,第二信道用于实现第一区块链节点与第二区块链节点之间的数据传输。

可以理解的是,联盟链由多个业务方如组织、学校、企业、公司等组成联盟,在联盟链内,成员的身份通常是可知的。联盟链上的节点可以读取链上信息,但写入与更新区块链内容仅具有管理身份的节点才能执行操作,并使用一致性机制验证其管理身份之间的数据写入。由此,联盟链是限定加入、读写权限的一种可控区块链。

通过与公有链准入机制的比较,联盟链对成员的加入与权限分配有着非常严格的限制。申请加入联盟链的成员都要经过准入许可后才能加入,并且联盟链会对节点的身份进行预先设置,联盟链上账本的查询与写入功能仅让有权限的成员参与。

而与私有链相比较,私有链的应用场景一般在企业内部,进入权限由某个组织进行控制,各节点参与资格由该组织授权控制,因此私有链仍保留着中心化的特点。现有技术中,基于区块链的密钥管理系统,都需要通过一个中心化平台进行密钥上链登记、或直接托管,存在管理信任问题,如无有效信任机制或信任背书,则无法完成应用。

对比发现,不同于去中心化的公有链和中心化的私有链,联盟链有着弱中心化的特点。在公有链上的所有节点都有权参与执行公有链上的交易信息。虽然在节点处理信息时会通过非对称加密技术对交易进行匿名处理,但是公有链不能保证交易隐私,因为每个公钥的所有交易和余额的值都是公开可见的。而比较于公有链,在联盟链上只有联盟内部的成员可以访问联盟链上的数据信息,而外部成员则无法访问。因此,联盟链具有更高的可信度。

在本实施方式中,第一区块链节点还用于根据对应的智能合约生成目标公钥和目标私钥,并将目标公钥通过联盟链上的第二信道发送至第二区块链节点,目标公钥和目标私钥分别用于对信息请求端与信息发送端之间的通信数据进行加密和解密处理。

需要说明的是,当两个业务方存在数据传输或者信息交流的需求时,信息发送端需要在接收到信息请求端的数据或者请求信息后,向对方发送请求信息对应的反馈数据。

在本实施方式中,信息请求端对应的第一区块链节点还用于根据对应的智能合约生成目标公钥和目标私钥,并将目标公钥通过联盟链上的第二信道发送至第二区块链节点。

需要说明的是,智能合约是区块链的一项自动化脚本功能,可以通过对智能合约进行参数约束,来实现目标公钥和目标私钥的生成。

信息发送端可以通过对应的第二区块链节点来获取目标公钥,并在向信息请求端发送反馈数据时采用目标公钥来进行加密。

信息请求端在接收到信息发送端发送的反馈数据后,再通过目标私钥来将数据进行解密,从而安全地从信息发送端处获取了反馈数据。

可以理解的是,本实施方式中,信息请求端与信息发送端之间的信息传输通过联盟链上对应的节点所产生的密钥进行加密及解密,并通过两端之间的常规网络进行传输。由于密钥是通过联盟链上配置后的第一区块链节点所产生的,相对于其他公有链、私有链以及未上链的密钥传输方式,通过联盟链上信息请求端所对应的第一区块链节点生成目标公钥和目标私钥,并通过联盟链上的通信信道传输目标公钥,能够提高密钥的安全性。

根据本发明实施例提供的基于联盟链的密钥管理系统,通过在联盟链上设置分别与信息请求端对应的第一区块链节点以及与信息发送端对应的第二区块链节点,来实现目标公钥和目标私钥的生成,进而利用联盟链上的第二信道传输目标公钥,保证了密钥的安全性,使得信息发送端能获取目标公钥来对传输的通信数据进行加密,进一步保证了信息发送端与信息请求端之间通过第一信道进行数据传输的安全性。

在一些实施例中,联盟链还包括第一区块链解析器和第二区块链解析器。

在此种情况下,本发明实施例中,通过设置与第一区块链节点对应的第一区块链解析器,以及与第二区块链节点对应的第二区块链解析器实现对各区块链节点中所获取的信息的轮询、解析与转发。

可以理解的是,在需要生成密钥时,信息请求端通过第一区块链解析器调用并发起执行第一区块链节点对应的智能合约。

而在第二区块链节点对第一区块链节点对应的信息请求方验证通过后,第二区块链节点可以接收来自第一区块链节点发送的信息。

在此种情况下,信息发送端通过第二区块链解析器发起建立第二信道,并发起执行第二区块链节点对应的智能合约以及发起将信息发送端的数据发送记录上传至联盟链。可以理解的是,第二区块链节点将对应的数据传输纪录上传至联盟链进行存储和记账同步。

在本实施方式中,通过设置第一区块链解析器和第二区块链解析器,可以实现对各自对应的区块链节点的智能合约的调用以及信息读取和分析,能够便于区块链节点快速识别来自其他区块链节点的各种信息,如密钥信息,进而提高数据传输的效率。

在一些实施例中,信息请求端包括:验证模块、第一接收模块和第一数据处理模块。

可以理解的是,信息请求端存在向信息发送端获取数据的需求时,验证模块用于通过第一信道向信息发送端发送获取数据的请求信息以及信息请求端在联盟链对应的身份证明。

第一接收模块用于通过第一区块链解析器接收第二区块链节点发送的身份证明验证通过信息。在接收到验证通过信息后,信息请求端对应的第一区块链节点完成与第二区块链节点之间的信道建立。

第一接收模块还用于接收信息发送端发送的反馈数据,反馈数据为通过目标公钥加密得到的。在接收到反馈数据后,数据处理模块用于使用与目标公钥对应的目标私钥将反馈数据解密。

在本实施方式中,信息请求端可以直接与对应的第一区块链节点之间进行通信,通过第一区块链节点向第二区块链节点发送信息,并通过第一区块链节点获取信息发送端所对应的第二区块链节点发送的信息。

在本实施方式中,通过设置验证模块、第一接收模块和第一数据处理模块,能够在信息请求端实现验证的发起以及数据的接收与处理,便于与信息发送端进行数据的加密传输。

在一些实施例中,信息发送端包括第二接收模块和第二数据处理模块。

需要说明的是,第二接收模块用于直接从信息请求端接收信息请求端发送的获取数据的请求信息以及信息请求端在联盟链对应的身份证明。

可以理解的是,由于与第二区块链节点之间存在通信的节点可能不止一个,第二区块链接收到的消息也来自不同的区块链节点。在此种情况下,第二数据处理模块用于通过第二区块链解析器来对第二区块链节点下的信息进行解析与分析,确定出第一区块链节点发送的目标公钥。

第二数据处理模块用于通过第二区块链解析器获取第二区块链节点处接收到的目标公钥,并在第二区块链节点确定信息请求端在联盟链对应的身份证明验证通过的情况下,将反馈数据通过目标公钥加密并发送至信息请求端。

在本实施方式中,通过设置第二接收模块和第二数据处理模块,可以使得信息发送端能够接收到来自信息请求端的请求信息以及验证信息等,并可以向信息请求端发送加密后的反馈数据。

需要说明的是,对于多个业务方的业务系统之间的信息交互,可以先明确每次交互过程中的数据发送端以及数据请求端,从而实现业务系统之间的两两通信。

若存在A、B和C三个业务系统,A方业务系统、B方业务系统以及C方业务系统两两之间均存在信息交互,则可以根据信息的交互双方来确定出信息请求端以及信息发送端。

如图2所示,A方业务系统与B方业务系统之间可以通过双方之间的常规网络信道即第一信道来实现AB业务通信,类似的,A方业务系统与C方业务系统之间可以通过双方之间的常规网络信道即第一信道来实现AC业务通信,B方业务系统与C方业务系统之间可以通过双方之间的常规网络信道即第一信道来实现BC业务通信。

可以理解的是,可以在联盟链上分别部署与A方业务系统对应的A方区块链解析器以及A方区块链节点,与B方业务系统对应的B方区块链解析器以及B方区块链节点,与C方业务系统对应的C方区块链解析器以及C方区块链节点。

在此种情况下,可以分别建立A方区块链节点与B方区块链节点之间的AB信道,即第二信道。类似的,可以建立A方区块链节点与C方区块链节点之间的AC信道,还可以建立B方区块链节点与C方区块链节点之间的BC信道。

下面对本发明实施例的基于联盟链的密钥管理方法来进行说明,本发明实施例的基于联盟链的密钥管理方法应用于如上述的第一区块链节点,如图3所示,本发明实施例的基于联盟链的密钥管理方法主要包括步骤310、步骤320、步骤330以及步骤340。

步骤310,确定存在向信息发送端获取数据的需求,通过对应的智能合约生成目标公钥。

可以理解的是,在确定存在向信息发送端获取数据的需求时,可以通过提前设置的智能合约来智能生成目标公钥以及目标公钥对应的目标私钥。即智能合约还用于确定目标公钥对应的目标私钥。目标私钥可以发送至信息请求端,以便于信息请求端使用目标私钥来将后续接收到的由目标公钥加密的信息进行解密。

需要说明的是,确定存在向信息发送端获取数据的需求,包括以下过程。

可以理解的是,可以先通过信息请求端向信息发送端发送获取数据的请求信息以及信息请求端在联盟链对应的身份证明。

在信息发送端接收到信息请求端在联盟链对应的身份证明后,信息发送端可以将该身份证明发送至对应的第二区块链节点来实现身份验证,对应的第二区块链节点在验证通过后可以通过信息发送端向信息请求端发送身份证明验证通过信息。

在通过信息请求端接收到信息发送端发送身份证明验证通过信息的情况下,信息发送端在联盟链上对应的第二区块链节点会发起建立与第一区块链节点之间通信的第二信道,便确定与第二区块链节点在联盟链建立第二信道,从而实现第一区块链节点与第二区块链节点之间的数据传输。

步骤320,将目标公钥上传至联盟链,并通过联盟链上的第二信道发送至第二区块链节点。

可以理解的是,第二区块链节点为信息发送端在联盟链上对应的节点。第一区块链节点将生成的目标公钥

步骤330,在通过信息请求端接收到信息发送端发送的反馈数据的情况下,确定信息请求端使用目标私钥将反馈数据解密;反馈数据为通过目标公钥加密得到的。

在一些实施例中,在通过信息请求端接收到信息发送端发送的反馈数据的情况下,还可以通过调用对应的智能合约来查验联盟链中是否存在信息发送端发送反馈数据的传输记录的上链存储信息。若联盟链中不存在信息发送端发送反馈数据的传输记录的上链存储信息,则本次交互可能存在一定的安全风险,若存在,则再对反馈数据解密。

步骤340,将从信息请求端接收到反馈数据对应的第一信息传输记录与目标私钥关联,并将第一信息传输记录上传至联盟链进行存储。

在本实施方式中,信息请求端使用目标私钥将反馈数据解密,即获得了所请求的数据,即可实现本次数据的传输过程。

在此种情况下,再将此次第一数据传输记录与此次的目标私钥进行关联后再进行上链存储,可以实现对数据请求端传输数据过程的上链记录,实现了传输记录的可追溯,进一步保证数据安全。

根据本发明实施例提供的基于联盟链的密钥管理方法,通过智能合约来生成目标公钥和目标私钥,并利用联盟链上的第二信道传输目标公钥,保证了密钥的安全性,使得信息发送端能获取目标公钥来对传输的通信数据进行加密,进一步保证了信息发送端与信息请求端之间通过第一信道进行数据传输的安全性。

可以理解的是,在本次数据传输过程结束后,可以通过第一区块链节点对应的智能合约将此次的目标私钥标记为无效,从而实现本次传输后密钥的销毁。

在一些实施例中,智能合约还用于确定目标公钥对应的加密算法和有效期。

由于联盟链上的第一区块链节点设置有一定的管理权限,因此可以对第一区块链节点对应的智能合约进行参数约束,从而实现对目标公钥、目标公钥对应的目标私钥、目标公钥对应的加密算法和有效期来进行设置,从而更好地实现密钥管理。

而在涉及到多端的多次不同时间的信息交互过程时,可以通过智能合约对每两个端的每一次信息交互的密钥来进行自动设置。即每一次信息交互过程,都需要进行相互的身份验证、密钥生成以及传输完成后的密钥销毁过程。

下面对本发明实施例提供的另一种基于联盟链的密钥管理方法来进行说明,本发明实施例的基于联盟链的密钥管理方法应用于如上述的第二区块链节点,如图4所示,本发明实施例的基于联盟链的密钥管理方法主要包括步骤410和步骤420。

步骤410,确定信息请求端存在获取数据的需求,从本地的公钥记录中查询并解析出第一区块链节点通过联盟链上的第二信道发送的目标公钥。

可以理解的是,第一区块链节点为信息请求端在联盟链上对应的节点。

确定信息请求端存在获取数据的需求,可以包括以下过程。

在本实施方式中,先通过信息发送端接收信息请求端发送的获取数据的请求信息以及信息请求端在联盟链对应的身份证明。

在通过信息发送端接收到信息请求端在联盟链对应的身份证明后,对信息请求端在联盟链对应的身份证明进行验证,确定信息请求端在联盟链对应的身份证明验证通过后,向信息请求端发送身份证明验证通过信息。

在此种情况下,可以确定第一区块链节点对应的信息请求端为可以信任的端,再与第一区块链节点在联盟链建立第二信道,进而通过第二信道来进行密钥传输。

在接收到目标公钥之后,将目标公钥发送至信息发送端,以便于信息发送端来使用目标公钥将反馈数据进行加密。

步骤420,在通过信息发送端将反馈数据发送至信息请求端的情况下,将向信息请求端发送反馈数据对应的第二信息传输记录与目标公钥关联,并将第二信息传输记录上传至联盟链进行存储。

在此种情况下,再将此次第二数据传输记录与此次的目标公钥进行关联后再进行上链存储,可以实现对数据发送端传输数据过程的上链记录,实现了传输记录的可追溯,进一步保证数据安全。

根据本发明实施例提供的基于联盟链的密钥管理方法,通过解析出利用联盟链上的第二信道传输的目标公钥来对传输的通信数据进行加密,进一步保证了信息发送端与信息请求端之间通过第一信道进行数据传输的安全性。

下面以A方业务系统为信息请求端、B方业务系统为信息发送端的情况为例来对本发明实施例的基于联盟链的密钥管理方法进行更加详细的说明。

如图5所示,在A方业务系统存在从B方业务系统获取信息的需求时,A方业务系统通过常规通信方式即第一信道向B方业务系统发送请求获取数据的请求信息,在此过程中还可以附加A方业务系统联盟链对应的身份证明。

B方业务系统在确定身份证明验证通过的情况下,通过B方区块链解析器向B方区块链节点发起信道建立,即建立A方区块链节点与B方区块链节点之间的第二信道,最终与A方区块链节点之间完成信道建立。

在此种情况下,A方业务系统可以通过A方区块链解析器来调用智能合约,生成Ag公钥以及As私钥,并通过A方区块链解析器发起智能合约执行。A方区块链节点在完成公钥生成后将公钥通过建立的第二信道发送至B方区块链节点,并将此次的发送记录进行记账同步,实现传输过程的上链存储。

B方区块链节点通过B方区块链解析器从节点中读取公钥记录,查找解析出A方公钥Ag。B方业务系统可以利用公钥Ag来对反馈数据进行加密并将加密后的反馈数据通过常规的业务通信的第一信道发送至A方业务系统,并通过B方区块链节点调用智能合约来实现本次发送记录的上链存储。

A方业务系统在接收到B方业务系统发送的反馈数据后,可以先通过A方区块链节点调用智能合约来对反馈数据进行链上记录查验,查验B方区块链节点是否上链存储过B方业务系统发送反馈数据的过程。

在返回查验结果给A方业务系统后,若查验到确实有本次发送记录,则通过私钥As来完成对反馈数据的解密。在此情况下,再通过A方区块链节点调用智能合约来将本次A方业务系统接收到反馈数据的传输记录上传至联盟链进行存储,例如可以通过A方区块链解析器发起智能合约执行,从而发起数据接收记录的上链。

图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行基于联盟链的密钥管理方法,该方法包括:确定存在向信息发送端获取数据的需求,通过对应的智能合约生成目标公钥;智能合约还用于确定目标公钥对应的目标私钥;将目标公钥上传至联盟链,并通过联盟链上的第二信道发送至第二区块链节点;第二区块链节点为信息发送端在联盟链上对应的节点;在通过信息请求端接收到信息发送端发送的反馈数据的情况下,确定信息请求端使用目标私钥将反馈数据解密;反馈数据为通过目标公钥加密得到的;将从信息请求端接收到反馈数据对应的第一信息传输记录与目标私钥关联,并将第一信息传输记录上传至联盟链进行存储;或者,该方法包括:确定信息请求端存在获取数据的需求,从本地的公钥记录中查询并解析出第一区块链节点通过联盟链上的第二信道发送的目标公钥;第一区块链节点为信息请求端在联盟链上对应的节点;在通过信息发送端将反馈数据发送至信息请求端的情况下,将向信息请求端发送反馈数据对应的第二信息传输记录与目标公钥关联,并将第二信息传输记录上传至联盟链进行存储。

此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于联盟链的密钥管理方法,该方法包括:确定存在向信息发送端获取数据的需求,通过对应的智能合约生成目标公钥;智能合约还用于确定目标公钥对应的目标私钥;将目标公钥上传至联盟链,并通过联盟链上的第二信道发送至第二区块链节点;第二区块链节点为信息发送端在联盟链上对应的节点;在通过信息请求端接收到信息发送端发送的反馈数据的情况下,确定信息请求端使用目标私钥将反馈数据解密;反馈数据为通过目标公钥加密得到的;将从信息请求端接收到反馈数据对应的第一信息传输记录与目标私钥关联,并将第一信息传输记录上传至联盟链进行存储;或者,该方法包括:确定信息请求端存在获取数据的需求,从本地的公钥记录中查询并解析出第一区块链节点通过联盟链上的第二信道发送的目标公钥;第一区块链节点为信息请求端在联盟链上对应的节点;在通过信息发送端将反馈数据发送至信息请求端的情况下,将向信息请求端发送反馈数据对应的第二信息传输记录与目标公钥关联,并将第二信息传输记录上传至联盟链进行存储。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于联盟链的密钥管理方法,该方法包括:确定存在向信息发送端获取数据的需求,通过对应的智能合约生成目标公钥;智能合约还用于确定目标公钥对应的目标私钥;将目标公钥上传至联盟链,并通过联盟链上的第二信道发送至第二区块链节点;第二区块链节点为信息发送端在联盟链上对应的节点;在通过信息请求端接收到信息发送端发送的反馈数据的情况下,确定信息请求端使用目标私钥将反馈数据解密;反馈数据为通过目标公钥加密得到的;将从信息请求端接收到反馈数据对应的第一信息传输记录与目标私钥关联,并将第一信息传输记录上传至联盟链进行存储;或者,该方法包括:确定信息请求端存在获取数据的需求,从本地的公钥记录中查询并解析出第一区块链节点通过联盟链上的第二信道发送的目标公钥;第一区块链节点为信息请求端在联盟链上对应的节点;在通过信息发送端将反馈数据发送至信息请求端的情况下,将向信息请求端发送反馈数据对应的第二信息传输记录与目标公钥关联,并将第二信息传输记录上传至联盟链进行存储。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120115926872