基于联盟区块链的会话密钥分发方法、设备及存储介质与流程

文档序号:18542894发布日期:2019-08-27 21:24阅读:184来源:国知局
基于联盟区块链的会话密钥分发方法、设备及存储介质与流程

本发明实施例涉及区块链技术领域,尤其涉及一种基于联盟区块链的会话密钥分发方法、设备及存储介质。



背景技术:

在互联网上有很多的互联网服务提供商(internetserviceprovider,简称isp)/网络内容服务商(internetcontentprovider,简称icp),每个用户在享受isp/icp提供的服务之前必须在该isp/icp上进行注册,比如当前每个人一般都有微信、支付宝等各种app,而每个app如果都注册,并且如果在不同的app上注册的账号和密码一样,则很容易被撞库攻击,账号的安全性较低,而如果在不同的app上注册的账号、密码不一样,则又很容易被遗忘,重新找回账号、密码的操作繁琐。因此,如何解决上述问题,并保证通信安全是当前亟需解决的问题。



技术实现要素:

本发明实施例提供一种基于联盟区块链的会话密钥分发方法、设备及存储介质,用以实现基于联盟区块链的身份验证,同时解决身份验证通过后,用户节点与服务节点之间的通信安全问题。

第一方面,本发明实施例提供一种基于联盟区块链的会话密钥分发方法,该方法包括:

联盟区块链中的第一服务节点接收用户通过用户节点提交的用户名;所述第一服务节点为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;所述第一服务节点接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;所述第一服务节点将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则验证通过;所述第一服务节点接收所述第二服务节点发送的第五加密数据,所述第五加密数据中包括第六加密数据,所述第六加密数据中包括所述第二服务节点为所述第一服务节点和所述用户节点生成的会话密钥,所述第六加密数据是所述第二服务节点采用所述第一用户密钥对所述会话密钥进行加密得到的,所述第五加密数据是所述第二服务节点采用所述第一服务节点的公钥对所述第六加密数据加密得到的;所述第一服务节点从所述第五加密数据中解密获得所述第六加密数据,并将所述第六加密数据发送给所述用户节点,以使所述用户节点从所述第六加密数据中解密获得所述会话密钥。

在一种实施方式中,所述将所述第六加密数据发送给所述用户节点,包括:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点的ip地址;基于所述ip地址,将所述第六加密数据发送给所述用户节点。

在一种实施方式中,所述用户节点为智能手机,所述智能手机的手机号码记录在所述联盟区块链的账本中。

在一种实施方式中,所述将所述第六加密数据发送给所述用户节点,包括:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点对应的手机号码;基于所述手机号码,通过移动交换网络将携带有所述第六加密数据的短信息,发送给所述用户节点。

第二方面,本发明实施例提供一种基于联盟区块链的会话密钥分发方法,该方法包括:

联盟区块链中的第一服务节点接收用户通过用户节点提交的用户名;所述第一服务节点为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;所述第一服务节点接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;所述第一服务节点将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则生成会话密钥;所述第一服务节点基于所述第二服务节点的公钥对所述会话密钥进行加密,并将加密得到的第七加密数据发送给所述第二服务节点;所述第一服务节点接收第二服务节点反馈的第八加密数据,并将所述第八加密数据发送给所述用户节点,以使所述用户节点得到所述会话密钥,其中,所述第八加密数据是所述第二服务节点基于所述第一用户密钥对所述会话密钥进行加密得到的。

第三方面,本发明实施例提供一种服务节点,所述服务节点适用于一种联盟区块链,所述服务节点包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以下操作:

接收用户通过所述联盟区块链中的用户节点提交的用户名;为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则验证通过;接收所述第二服务节点发送的第五加密数据,所述第五加密数据中包括第六加密数据,所述第六加密数据中包括所述第二服务节点为所述处理器所在的服务节点和所述用户节点生成的会话密钥,所述第六加密数据是所述第二服务节点采用所述第一用户密钥对所述会话密钥进行加密得到的,所述第五加密数据是所述第二服务节点采用所述处理器所在的服务节点的公钥对所述第六加密数据加密得到的;从所述第五加密数据中解密获得所述第六加密数据,并将所述第六加密数据发送给所述用户节点,以使所述用户节点从所述第六加密数据中解密获得所述会话密钥。

在一种实施方式中,所述处理器在执行将所述第六加密数据发送给所述用户节点的操作时,用于:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点的ip地址;基于所述ip地址,将所述第六加密数据发送给所述用户节点。

在一种实施方式中,所述用户节点为智能手机,所述智能手机的手机号码记录在所述联盟区块链的账本中。

在一种实施方式中,所述处理器在执行将所述第六加密数据发送给所述用户节点的操作时,用于:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点对应的手机号码;基于所述手机号码,通过移动交换网络将携带有所述第六加密数据的短信息,发送给所述用户节点。

第四方面,本发明实施例提供一种服务节点,所述服务节点适用于一种联盟区块链,所述服务节点包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以下操作:

接收用户通过所述联盟区块链中的用户节点提交的用户名;为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则生成会话密钥;基于所述第二服务节点的公钥对所述会话密钥进行加密,并将加密得到的第七加密数据发送给所述第二服务节点;接收第二服务节点反馈的第八加密数据,并将所述第八加密数据发送给所述用户节点,以使所述用户节点得到所述会话密钥,其中,所述第八加密数据是所述第二服务节点基于所述第一用户密钥对所述会话密钥进行加密得到的。

第五方面,本发明实施例提供一种联盟区块链,该联盟区块链包括上述第三或第四方面所述的服务节点。

第六方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一和第二方面所述的方法。

在本发明实施例提供的基于联盟区块链的会话密钥分发方法、设备及存储介质中,联盟区块链中的第一服务节点在接收用户通过用户节点提交的用户名后;通过为该用户名生成一个随机数,并将包括该用户名和随机数第一广播消息,广播到联盟区块链中,并接收所述用户节点在接收到第一广播消息后发送的第二广播消息,以及联盟区块链中的第二服务节点发送的第三广播消息,其中,第二广播消息中包括第一加密数据,第一加密数据为所述用户节点基于用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,第三广播消息包括第二加密数据,第二加密数据为第二服务节点基于用户在其上注册的所述用户名对应的第一用户密钥,采用第一预设算法对所述随机数加密得到的;然后将第二广播消息中的第一加密数据和第三广播消息中的第二加密数据进行对比,若二者一致,则验证通过,并接收第二服务节点发送的加密后的会话密钥,并将加密的会话密钥转发给用户节点。基于本发明实施例提供的技术方案,只要用户在联盟区块链上任一服务节点上注册了用户名和用户密钥,就可以使用该用户名和用户密钥登录联盟区块链上的其他服务节点,并享受该服务节点的服务,从而避免了用户记忆大量用户名和密钥的麻烦,提高了身份验证的便利性,并且,在验证通过之后,通过第二服务节点以加密数据的方式将会话密钥发送给第一服务节点,再由第一服务节点将加密的会话密钥发送给用户节点,能够使得用户节点和第一服务节点之间可以通过会话密钥对通信数据进行加密,确保通信的安全性,另外,由于联盟区块链本身的安全机制具有较高的安全性,因而借助联盟区块链对用户的身份进行验证,能够提高身份验证的安全性,并且即使用户使用相同的用户名和密钥登录不同的服务器节点,也能够避免黑客撞库攻击的问题。

附图说明

图1为本发明实施例提供的一种通信系统的示意图;

图2为本发明实施例提供的一种基于联盟区块链的会话密钥分发方法的流程图;

图3是本发明实施例提供的一种基于联盟区块链的会话密钥分发方法的流程图;

图4是本发明实施例提供的一种服务节点的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本发明实施例提供的基于联盟区块链的会话密钥分发方法,旨在解决现有技术中如果用户在不同的应用程序(app)上注册的账号和密码一样,则很容易被撞库攻击,账号的安全性较低,而如果在不同的app上注册的账号、密码不一样,则又很容易被遗忘,重新找回账号、密码的操作繁琐的技术问题的同时,提高身份验证通过后,用户节点与服务节点之间通信的安全性。该方法可以适用于图1所示的通信系统。如图1所示,该通信系统包括:第一服务节点11、第二服务节点12、用户节点13、第三服务节点14、第四服务节点15、以及第五服务节点16,其中,第一服务节点11、第二服务节点12、用户节点13(用户节点13可以不实时在线)、第三服务节点14、第四服务节点15、以及第五服务节点16属于同一联盟区块链。其中,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16可以为用户提供不同的服务,举例来说,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16可以分别用于提供“推特”服务、“脸书”服务、“微信”服务和“支付宝”服务,当然这里仅为示例说明而不是唯一限定。另外,此处只是示意性说明,并不限定该联盟区块链的结构和该联盟区块链的节点个数。

下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例提供的一种基于联盟区块链的会话密钥分发方法的流程图。该方法适用于一种联盟区块链,该联盟区块链的结构可以参照图1,该方法具体步骤如下:

步骤201、联盟区块链中的第一服务节点接收用户通过用户节点提交的用户名。

步骤202、所述第一服务节点为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息。

其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥。

步骤203、所述第一服务节点接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息。

其中,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的。

步骤204、所述第一服务节点将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则验证通过。

步骤205、所述第一服务节点接收所述第二服务节点发送的第五加密数据,所述第五加密数据中包括第六加密数据,所述第六加密数据中包括所述第二服务节点为所述第一服务节点和所述用户节点生成的会话密钥。

其中,所述第六加密数据是所述第二服务节点采用所述第一用户密钥对所述会话密钥进行加密得到的,所述第五加密数据是所述第二服务节点采用所述第一服务节点的公钥对所述第六加密数据加密得到的。

步骤206、所述第一服务节点从所述第五加密数据中解密获得所述第六加密数据,并将所述第六加密数据发送给所述用户节点,以使所述用户节点从所述第六加密数据中解密获得所述会话密钥。

以图1为例,在图1中第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16构建形成联盟区块链,并为其他服务节点或用户节点提供身份验证服务。该联盟区块链的创世区块中保存有第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16的区块链标识、公钥、ip地址等信息,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16共同作为本联盟区块链的创始节点对联盟区块链进行管理,包括是否允许某个服务节点接入本联盟区块链等。

用户通过区块链链下的方式在联盟区块链上的任意节点上进行用户名和密钥的注册或者已经在联盟区块链的某个服务节点上注册过,本示例中,假设用户已在第二服务节点12上注册过,但未在第一服务节点11上注册过。

本实施例中的用户节点13可以被具体为智能手机,该智能手机的手机号记录在联盟区块链的账本中。具体的,当用户通过用户节点13登录第一服务节点(用户未曾在第一服务节点中注册过)后,通过用户节点13向第一服务节点11提交曾经在第二服务节点12上注册过的用户名,第一服务节点11在接收到该用户名后,为该用户名分配一个随机数,并采用自身的私钥对该用户名、随机数进行签名,并将签名后的用户名,随机数据携带在第一广播消息中,广播到联盟区块链上。

用户节点13在接收到第一广播消息后首先查询区跨链账本,获得第一服务节点11的公钥,再基于第一服务节点11的公钥对第一广播消息中的私钥签名进行验证,若验证通过,则提示用户输入上述用户名对应的用户密钥,并根据用户输入的第二用户密钥采用第一预设算法对第一广播消息中的随机数进行加密得到第一加密数据,并将第一加密数据采用自身的私钥签名后携带在第二广播消息中广播到联盟区块链中。或者,用户节点13在计算得到第一加密数据后,也可以显示给用户,以使用户将该第一加密数据输入到第一服务节点11上。

这里需要说明的是,在用户节点13发送第二广播消息之后,可以选择从联盟区块链上离线,从而达到节约电量的目的。用户节点13离线后,第一服务节点11通过移动交换网络的短信息或根据用户节点13的ip地址向用户节点13发送消息。

第二服务节点12在接收到第一广播消息后,采用第一服务节点的公钥对第一广播消息中的私钥签名进行验证,若验证通过,则根据第一广播消息中携带的用户名,查找用户曾经注册过的与该用户名对应的第一用户密钥,并根据第一用户密钥采用第一预设算法对第一广播消息中的随机数进行加密得到第二加密数据,并将第二加密数据采用自身的私钥签名后携带在第三广播消息中广播到联盟区块链中。

第一服务节点11在接收到第二广播消息和第三广播消息后,分别从第二广播消息和第三广播消息中获取第一加密数据和第二加密数据,并将第一加密数据与第二加密数据进行对比,若二者一致,说明用户输入的用户名和用户密钥正确,验证通过,为用户提供服务,否则验证失败,不提供服务。

进一步的,第一服务节点11在验证通过后,第二服务节点12为第一服务节点11和用户节点13分配一个会话密钥,首先采用第一用户密钥对该会话密钥进行加密,得到第六加密数据,再采用第一服务节点的公钥对第六加密数据进行加密得到第五加密数据,然后采用自身的私钥对第五加密数据进行签名,并将签名后的数据广播到联盟区块链中。

第一服务节点11接收到的第二服务节点12发送的数据后,基于第二服务节点的公钥对数据中的签名进行验证,并在验证通过后,从第五加密数据中解密获得第六加密数据,然后通过如下示例性的方式中的一种将第六加密数据发送给用户节点13:

在一种示例性的方式中,第一服务节点11基于用户节点13的区块链标识,从联盟区块链中获取用户节点13的ip地址;然后基于所述ip地址,将第六加密数据发送给用户节点13。

在另一种示例性的方式中,第一服务节点11基于用户节点13的区块链标识,从联盟区块链中获取用户节点13对应的手机号码;基于所述手机号码,通过移动交换网络将携带有第六加密数据的短信息,发送给用户节点13。

用户节点13在收到第六加密数据后,基于第一用户密钥采用相应的解密算法从第六加密数据中解密获得会话密钥。

在本实施例中,联盟区块链中的第一服务节点在接收用户通过用户节点提交的用户名后;通过为该用户名生成一个随机数,并将包括该用户名和随机数第一广播消息,广播到联盟区块链中,并接收所述用户节点在接收到第一广播消息后发送的第二广播消息,以及联盟区块链中的第二服务节点发送的第三广播消息,其中,第二广播消息中包括第一加密数据,第一加密数据为所述用户节点基于用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,第三广播消息包括第二加密数据,第二加密数据为第二服务节点基于用户在其上注册的所述用户名对应的第一用户密钥,采用第一预设算法对所述随机数加密得到的;然后将第二广播消息中的第一加密数据和第三广播消息中的第二加密数据进行对比,若二者一致,则验证通过,并接收第二服务节点发送的加密后的会话密钥,并将加密的会话密钥转发给用户节点。基于本实施例提供的技术方案,只要用户在联盟区块链上任一服务节点上注册了用户名和用户密钥,就可以使用该用户名和用户密钥登录联盟区块链上的其他服务节点,并享受该服务节点的服务,从而避免了用户记忆大量用户名和密钥的麻烦,提高了身份验证的便利性,并且,在验证通过之后,通过第二服务节点以加密数据的方式将会话密钥发送给第一服务节点,再由第一服务节点将加密的会话密钥发送给用户节点,能够使得用户节点和第一服务节点之间可以通过会话密钥对通信数据进行加密,确保通信的安全性,另外,由于在本实施例中第一服务节点可以通过移动交换网络或基于用户节点的ip地址向用户节点发送消息,也就是说用户节点不需要实时在线,那么就能在一定程度上节约用户节点的电量。

图3是本发明实施例提供的一种基于联盟区块链的会话密钥分发方法的流程图,如图3所示,在图2实施例的基础上,该方法包括:

步骤301、联盟区块链中的第一服务节点接收用户通过用户节点提交的用户名。

步骤302、所述第一服务节点为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息。

其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥。

步骤303、所述第一服务节点接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息。

其中,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的。

其中,在所述第二广播消息中所述第一加密数据包含在第三加密数据中,所述第三加密数据为所述用户节点采用所述第一服务节点的公钥和第二预设算法对所述第一加密数据加密得到的。

在所述第三广播消息中所述第二加密数据包含在第四加密数据中,所述第四加密数据为所述第二服务节点采用所述第一服务节点的公钥和所述第二预设算法对所述第二加密数据加密得到的。

步骤304、所述第一服务节点根据所述第二预设算法对应的解密算法以及所述第一服务节点自身的私钥,从所述第二广播消息和所述第三广播消息解密获得所述第一加密数据和所述第二加密数据。

步骤305、所述第一服务节点将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则生成会话密钥。

步骤306、所述第一服务节点基于所述第二服务节点的公钥对所述会话密钥进行加密,并将加密得到的第七加密数据发送给所述第二服务节点。

步骤307、所述第一服务节点接收第二服务节点反馈的第八加密数据,并将所述第八加密数据发送给所述用户节点,以使所述用户节点得到所述会话密钥,其中,所述第八加密数据是所述第二服务节点基于所述第一用户密钥对所述会话密钥进行加密得到的。

其中,第一服务节点可采用如下任意一种方式将第八加密数据发送给用户节点:

在一种示例性的方式中,第一服务节点基于用户节点的区块链标识,从联盟区块链中获取用户节点的ip地址;然后基于所述ip地址,将第六加密数据发送给用户节点。

在另一种示例性的方式中,第一服务节点基于用户节点的区块链标识,从联盟区块链中获取用户节点对应的手机号码;基于所述手机号码,通过移动交换网络将携带有第六加密数据的短信息,发送给用户节点。

本实施例通过将第一服务节点生成的会话密钥加密发送给第二服务节点,使得第二服务节点采用用户注册用户名时设置的第一用户密钥对会话密钥进行重新加密,然后第一服务节点将重新加密后的会话密钥通过移动交换网络或用户节点的ip地址发送给用户节点,使得用户节点不必在线也可以接收到会话密钥,节约了用户节点的电量。

图4是本发明实施例提供的一种服务节点的结构示意图,该服务节点适用于一种联盟区块链,本发明实施例提供的服务节点可以执行上述基于联盟区块链的会话密钥分发方法的执行方法实施例的处理流程。如图4所示,服务节点40包括:存储器41、处理器42、计算机程序和通讯接口43;其中,所述计算机程序存储在所述存储器中,并被配置为由处理器42执行以下操作:

接收用户通过所述联盟区块链中的用户节点提交的用户名;为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则验证通过;接收所述第二服务节点发送的第五加密数据,所述第五加密数据中包括第六加密数据,所述第六加密数据中包括所述第二服务节点为所述处理器所在的服务节点和所述用户节点生成的会话密钥,所述第六加密数据是所述第二服务节点采用所述第一用户密钥对所述会话密钥进行加密得到的,所述第五加密数据是所述第二服务节点采用所述处理器所在的服务节点的公钥对所述第六加密数据加密得到的;从所述第五加密数据中解密获得所述第六加密数据,并将所述第六加密数据发送给所述用户节点,以使所述用户节点从所述第六加密数据中解密获得所述会话密钥。

在一种实施方式中,所述处理器在执行将所述第六加密数据发送给所述用户节点的操作时,用于:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点的ip地址;基于所述ip地址,将所述第六加密数据发送给所述用户节点。

在一种实施方式中,所述用户节点为智能手机,所述智能手机的手机号码记录在所述联盟区块链的账本中。

在一种实施方式中,所述处理器在执行将所述第六加密数据发送给所述用户节点的操作时,用于:

基于所述用户节点的区块链标识,从所述联盟区块链中获取所述用户节点对应的手机号码;基于所述手机号码,通过移动交换网络将携带有所述第六加密数据的短信息,发送给所述用户节点。

图4所示实施例的服务节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在一实施例中还提供一种服务节点,所述服务节点适用于一种联盟区块链,所述服务节点包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以下操作:

接收用户通过所述联盟区块链中的用户节点提交的用户名;为所述用户名生成一个随机数,并将包括所述用户名和所述随机数第一广播消息,广播到所述联盟区块链中,以使所述用户节点和所述联盟区块链中的第二服务节点接收到所述第一广播消息,其中所述第二服务节点中包括所述用户名,以及所述用户名对应的第一用户密钥;接收所述用户节点发送的第二广播消息,以及所述第二服务节点发送的第三广播消息,所述第二广播消息中包括第一加密数据,所述第一加密数据为所述用户节点基于所述用户输入的所述用户名的第二用户密钥,采用第一预设算法对所述随机数加密得到的,所述第三广播消息包括第二加密数据,所述第二加密数据为所述第二服务节点基于所述第一用户密钥,采用所述第一预设算法对所述随机数加密得到的;将所述第一加密数据和所述第二加密数据进行对比,若二者一致,则生成会话密钥;基于所述第二服务节点的公钥对所述会话密钥进行加密,并将加密得到的第七加密数据发送给所述第二服务节点;接收第二服务节点反馈的第八加密数据,并将所述第八加密数据发送给所述用户节点,以使所述用户节点得到所述会话密钥,其中,所述第八加密数据是所述第二服务节点基于所述第一用户密钥对所述会话密钥进行加密得到的。

该服务节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供一种联盟区块链,该联盟区块链包括如上实施例所述的服务节点。

另外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的基于联盟区块链的会话密钥分发方法的执行方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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