基于会话密钥的通信方法、设备及计算机可读存储介质与流程

文档序号:18211310发布日期:2019-07-19 22:19阅读:112来源:国知局
基于会话密钥的通信方法、设备及计算机可读存储介质与流程

本发明实施例涉及通信技术领域,尤其涉及一种基于会话密钥的通信方法、设备及计算机可读存储介质。



背景技术:

在互联网中,a用户和b用户想要在不信任的环境下建立安全的连接,目前主要通过迪菲-赫尔曼密钥交换(英语:diffie-hellmankeyexchange,缩写为d-h)来实现。它可以让双方在完全没有对方任何信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。

迪菲-赫尔曼密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人攻击。一个中间人在信道的中央进行两次迪菲-赫尔曼密钥交换,例如,一次和alice进行迪菲-赫尔曼密钥交换,另一次和bob迪菲-赫尔曼密钥交换,该中间人就能够成功的向alice假装自己是bob,反之亦然。另外,攻击者还可以解密(读取和存储)任何一个人的信息并重新加密信息,然后传递给另一个人。因此,导致用户之间通信的安全性较低。



技术实现要素:

本发明实施例提供一种基于会话密钥的通信方法、设备及计算机可读存储介质,以提高第一用户终端和第二用户终端之间通信的安全性。

第一方面,本发明实施例提供一种基于会话密钥的通信方法,包括:

第一用户终端在区块链网络广播查询请求,所述查询请求包括第二用户终端的域名区块链标识或域名,所述记账节点中存储的区块链账本包括所述第二用户终端的域名区块链标识或域名、所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;

所述第一用户终端接收所述区块链网络中的记账节点发送的所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;

所述第一用户终端根据所述第二用户终端的ip地址、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号,与所述第二用户终端建立连接;

所述第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信。

第二方面,本发明实施例提供一种第一用户终端,包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

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

通过所述通讯接口在区块链网络广播查询请求,所述查询请求包括第二用户终端的域名区块链标识或域名,所述记账节点中存储的区块链账本包括所述第二用户终端的域名区块链标识或域名、所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;

通过所述通讯接口接收所述区块链网络中的记账节点发送的所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;

根据所述第二用户终端的ip地址、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号,与所述第二用户终端建立连接;

根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信。

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

本发明实施例提供的基于会话密钥的通信方法、设备及计算机可读存储介质,通过第一用户终端在区块链网络广播查询请求,根据第二用户终端的域名区块链标识或域名查询获得第二用户终端的ip地址,并通过该第二用户终端的ip地址与该第二用户终端建立连接,由于区块链网络中的区块链账本记录的信息是不可篡改的,即该区块链账本中记录的信息真实可靠,因此,第一用户终端从该区块链账本中获取到的第二用户终端的ip地址是真实可靠的,另外,第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信,提高了第一用户终端和第二用户终端之间通信的安全性。

附图说明

图1为本发明实施例提供的一种应用场景的示意图;

图2为本发明实施例提供的基于会话密钥的通信方法流程图;

图3为本发明另一实施例提供的基于会话密钥的通信方法流程图;

图4为本发明另一实施例提供的基于会话密钥的通信方法流程图;

图5为本发明另一实施例提供的基于会话密钥的通信方法流程图;

图6为本发明另一实施例提供的基于会话密钥的通信方法流程图;

图7为本发明实施例提供的第一用户终端的结构示意图。

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

具体实施方式

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

本发明实施例提供的基于会话密钥的通信方法,可以适用于图1所示的通信系统。如图1所示,该通信系统包括:节点1-节点7。该通信系统具体可以是区块链网络,节点1-节点7分别是该区块链网络中的节点。此处只是示意性说明,并不限定该区块链网络的结构,也不限定该区块链网络的节点。其中,节点具体可以是终端设备、服务器等设备。可选的,该区块链网络具体可以是下面实施例中所述的域名区块链网络。另外,此处只是示意性说明,并不限定该域名区块链网络的结构和该域名区块链网络中的节点个数。

本发明实施例提供的基于会话密钥的通信方法,旨在解决现有技术的如上技术问题。

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

图2为本发明实施例提供的基于会话密钥的通信方法流程图。本发明实施例针对现有技术的如上技术问题,提供了基于会话密钥的通信方法,该方法具体步骤如下:

步骤201、第一用户终端在区块链网络广播查询请求,所述查询请求包括第二用户终端的域名区块链标识或域名,所述记账节点中存储的区块链账本包括所述第二用户终端的域名区块链标识或域名、所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。

本实施例中的第一用户终端和第二用户终端具体可以是如图1所示的区块链网络中的节点。第一用户终端和第二用户终端需要在该区块链网络中注册,在注册过程中,第一用户终端和第二用户终端需要进行身份验证,也就是说,每个用户终端在该区块链网络中都有唯一的公钥和私钥。可选的,该第二用户终端是某个对外提供服务的应用程序(application,app)的服务提供商,第一用户终端需要访问第二用户终端,也就是说,第一用户终端需要使用第二用户终端所提供的服务。第一用户终端和第二用户终端需要进行安全通信。首先,第一用户终端可以通过非域名区块链的途径获得第二用户终端的域名区块链标识或域名。第一用户终端根据第二用户终端的域名区块链标识或域名在该区块链网络中广播查询请求,该查询请求包括第二用户终端的域名区块链标识或域名。具体的,第一用户终端可以采用自己的私钥对该查询请求签名后再广播到该区块链网络中。该区块链网络中的记账节点可以接收到该查询请求。该记账节点存储有区块链账本,该区块链账本中可记录有该区块链网络中每个节点的域名区块链标识或域名、ip地址、公钥等信息。此处只是示意性说明,并不限定该区块链账本中记录的具体信息。在其他实施例中,该区块链账本中还可以记录有各个节点之间的交易信息。

具体的,该区块链账本中记录有所述第二用户终端的域名区块链标识或域名、所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。当该记账节点接收到该第一用户终端在区块链网络中广播的查询请求时,该记账节点对该查询请求中该第一用户终端的私钥签名进行验证。如果验证通过,则该记账节点根据该第二用户终端的域名区块链标识或域名,查询自己内部存储的该区块链账本,并从该区块链账本中获取所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。进一步,该记账节点将所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号发送给第一用户终端。具体的,该记账节点可以采用广播的方式向第一用户终端发送所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。

步骤202、所述第一用户终端接收所述区块链网络中的记账节点发送的所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。

可选的,如果第二用户终端所支持的应用程序的服务端口号发生了变化,则该第二用户终端需要在该区块链网络中及时广播更新后的服务端口号,以便该区块链网络中的记账节点可以将更新后的服务端口号记录到区块链账本中。

步骤203、所述第一用户终端根据所述第二用户终端的ip地址、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号,与所述第二用户终端建立连接。

可选的,该第一用户终端可安装有第二用户终端所支持的应用程序。当该应用程序在该第一用户终端中生成访问第二用户终端的访问请求时,该第一用户终端根据发起访问的该应用程序的名称和该应用程序对应的端口号、以及该第二用户终端的ip地址,向该第二用户终端发送连接请求,该连接请求具体可以是传输控制协议(transmissioncontrolprotocol,tcp)连接请求。该tcp连接请求中包括第一用户终端的域名区块链标识。第二网络设备接收到该tcp连接请求后,该第二网络设备确定第一用户终端的域名区块链标识是否在该第二网络设备的白名单中。如果该第一用户终端的域名区块链标识在该第二网络设备的白名单中,则该第二网络设备确定与该第一用户终端建立tcp连接。

步骤204、所述第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信。

在第一用户终端和第二网络设备建立tcp连接之后,第一用户终端可以生成第一会话密钥,和/或,第二用户终端生成第二会话密钥。

如果第一用户终端生成第一会话密钥,第二用户终端没有生成第二会话密钥,则第一用户终端和第二用户终端可根据该第一会话密钥进行加密通信。

如果第一用户终端没有生成第一会话密钥,第二用户终端生成第二会话密钥,则第一用户终端和第二用户终端可根据该第二会话密钥进行加密通信。

如果第一用户终端生成第一会话密钥,第二用户终端生成第二会话密钥,则第一用户终端和第二用户终端可分别根据第一会话密钥和第二会话密钥生成第三会话密钥,第一用户终端和第二用户终端可根据该第三会话密钥进行加密通信。

本发明实施例通过第一用户终端在区块链网络广播查询请求,根据第二用户终端的域名区块链标识或域名查询获得第二用户终端的ip地址,并通过该第二用户终端的ip地址与该第二用户终端建立连接,由于区块链网络中的区块链账本记录的信息是不可篡改的,即该区块链账本中记录的信息真实可靠,因此,第一用户终端从该区块链账本中获取到的第二用户终端的ip地址是真实可靠的,另外,第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信,提高了第一用户终端和第二用户终端之间通信的安全性。

图3为本发明另一实施例提供的基于会话密钥的通信方法流程图。在上述实施例的基础上,所述第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信具体包括如下步骤:

步骤301、所述第一用户终端生成第一会话密钥。

如图4所示,第一用户终端向记账节点发送查询请求,记账节点向第一用户终端返回第二用户终端的相关信息,例如,所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号。第一用户终端根据该第二用户终端的相关信息向该第二用户终端发送tcp连接建立请求,进一步,该第二用户终端根据该tcp连接建立请求与该第一用户终端建立tcp连接。在本实施例中,该第一用户终端和该第二用户终端建立tcp连接之后,该第一用户终端可随机生成一个会话密钥,此处,将该第一用户终端生成的会话密钥即为第一会话密钥ks。

步骤302、所述第一用户终端根据所述第二用户终端在所述区块链网络中的公钥对所述第一会话密钥进行加密。

第一用户终端根据该第二用户终端在所述区块链网络中的公钥对该第一会话密钥ks进行加密。具体的,第一用户终端根据该第二用户终端在所述区块链网络中的公钥,并采用第一用户终端和第二用户终端预先约定好的第一算法对该第一会话密钥ks进行加密。

步骤303、所述第一用户终端将加密后的所述第一会话密钥发送给所述第二用户终端,以使所述第二用户终端采用所述第二用户终端在所述区块链网络中的私钥对所述加密后的所述第一会话密钥进行解密,得到所述第一会话密钥。

第一用户终端将加密后的第一会话密钥ks发送给第二用户终端。第二用户终端接收到该加密后的第一会话密钥ks之后,根据该第二用户终端在该区块链网络中的私钥,并采用第一用户终端和第二用户终端预先约定好的第一算法对该加密后的第一会话密钥ks进行解密,得到第一会话密钥ks。

步骤304、所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信。

在第二用户终端解密获得第一会话密钥ks之后,第一用户终端和第二用户终端之间的通信即可采用该第一会话密钥ks进行加密通信。

另外,在所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端和所述第二用户终端中的任意一方可以对该第一会话密钥进行修改。

一种可能的情况是:在所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端接收所述第二用户终端修改后的第一会话密钥;所述第一用户终端根据修改后的第一会话密钥与所述第二用户终端进行通信。

例如,所述第二用户终端对该第一会话密钥进行了修改,此处将修改后的第一会话密钥记为ks’,所述第二用户终端采用所述第一用户终端的公钥对该ks’进行加密,并将该加密后的ks’附加在与所述第一用户终端通信的报文中。所述第一用户终端接收到该报文后,从该报文中解析出加密后的ks’,并采用所述第一用户终端的私钥对该加密后的ks’进行解密,得到ks’,在后续的通信过程中,第一用户终端根据修改后的第一会话密钥ks’与所述第二用户终端进行通信。

另一种可能的情况是:在所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端修改所述第一会话密钥;所述第一用户终端向所述第二用户终端发送修改后的所述第一会话密钥,以使所述第二用户终端根据修改后的所述第一会话密钥与所述第一用户终端进行通信。

例如,所述第一用户终端对该第一会话密钥进行了修改,此处将修改后的第一会话密钥记为ks’,所述第一用户终端采用所述第二用户终端的公钥对该ks’进行加密,并将该加密后的ks’附加在与所述第二用户终端通信的报文中。所述第二用户终端接收到该报文后,从该报文中解析出加密后的ks’,并采用所述第二用户终端的私钥对该加密后的ks’进行解密,得到ks’,在后续的通信过程中,所述第二用户终端根据修改后的第一会话密钥ks’与所述第一用户终端进行通信。

本发明实施例通过第一用户终端生成第一会话密钥,并通过第二用户终端的公钥对该第一会话密钥进行加密,进一步将加密后的第一会话密钥发送给第二用户终端,提高了第一会话密钥的传输安全性。

图5为本发明另一实施例提供的基于会话密钥的通信方法流程图。在上述实施例的基础上,所述第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信具体包括如下步骤:

步骤501、所述第一用户终端接收所述第二用户终端发送的加密后的第二会话密钥,所述第二会话密钥是所述第二用户终端生成的,所述加密后的第二会话密钥是所述第二用户终端采用所述第一用户终端在所述区块链网络中的公钥对所述第二会话密钥进行加密后得到的。

在本实施例中,该第一用户终端和该第二用户终端建立tcp连接之后,第二用户终端随机生成一个会话密钥,此处,将该第二用户终端生成的会话密钥即为第二会话密钥。该第二用户终端根据该第一用户终端在所述区块链网络中的公钥对该第二会话密钥进行加密,并将加密后的第二会话密钥发送给第一用户终端。

步骤502、所述第一用户终端采用所述第一用户终端在所述区块链网络中的私钥,对所述加密后的第二会话密钥进行解密,得到所述第二会话密钥。

第一用户终端接收到该加密后的第二会话密钥之后,根据该第一用户终端在该区块链网络中的私钥,对该加密后的第二会话密钥进行解密,得到第二会话密钥。

步骤503、所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信。

在第一用户终端解密获得第二会话密钥之后,第一用户终端和第二用户终端之间的通信即可采用该第二会话密钥进行加密通信。

另外,在所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端和所述第二用户终端中的任意一方可以对该第二会话密钥进行修改。

一种可能的情况是:在所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端接收所述第二用户终端修改后的第二会话密钥;所述第一用户终端根据修改后的第二会话密钥与所述第二用户终端进行通信。

例如,所述第二用户终端对该第二会话密钥进行了修改,此处将修改后的第二会话密钥记为kt’,所述第二用户终端采用所述第一用户终端的公钥对该kt’进行加密,并将该加密后的kt’附加在与所述第一用户终端通信的报文中。所述第一用户终端接收到该报文后,从该报文中解析出加密后的kt’,并采用所述第一用户终端的私钥对该加密后的kt’进行解密,得到kt’,在后续的通信过程中,第一用户终端根据修改后的第二会话密钥kt’与所述第二用户终端进行通信。

另一种可能的情况是:在所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信的过程中,所述第一用户终端修改所述第二会话密钥;所述第一用户终端向所述第二用户终端发送修改后的所述第二会话密钥,以使所述第二用户终端根据修改后的所述第二会话密钥与所述第一用户终端进行通信。

例如,所述第一用户终端对该第二会话密钥进行了修改,此处将修改后的第二会话密钥记为kt’,所述第一用户终端采用所述第二用户终端的公钥对该kt’进行加密,并将该加密后的kt’附加在与所述第二用户终端通信的报文中。所述第二用户终端接收到该报文后,从该报文中解析出加密后的kt’,并采用所述第二用户终端的私钥对该加密后的kt’进行解密,得到kt’,在后续的通信过程中,所述第二用户终端根据修改后的第二会话密钥kt’与所述第一用户终端进行通信。

本发明实施例通过第二用户终端生成第二会话密钥,并通过第一用户终端的公钥对该第二会话密钥进行加密,进一步将加密后的第二会话密钥发送给第一用户终端,提高了第二会话密钥的传输安全性。

图6为本发明另一实施例提供的基于会话密钥的通信方法流程图。在上述实施例的基础上,所述第一用户终端根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信具体包括如下步骤:

步骤601、所述第一用户终端生成第一会话密钥。

在本实施例中,该第一用户终端和该第二用户终端建立tcp连接之后,第一用户终端生成第一会话密钥,另外,该第二用户终端生成第二会话密钥。

步骤602、所述第一用户终端根据所述第二用户终端在所述区块链网络中的公钥对所述第一会话密钥进行加密。

第一用户终端根据该第二用户终端在所述区块链网络中的公钥对该第一会话密钥进行加密。

步骤603、所述第一用户终端将加密后的所述第一会话密钥发送给所述第二用户终端,以使所述第二用户终端采用所述第二用户终端在所述区块链网络中的私钥对所述加密后的所述第一会话密钥进行解密,得到所述第一会话密钥,并根据所述第一会话密钥和所述第二用户终端生成的第二会话密钥,确定第三会话密钥。

第一用户终端将加密后的第一会话密钥发送给第二用户终端。第二用户终端接收到该加密后的第一会话密钥之后,根据该第二用户终端在该区块链网络中的私钥,对该加密后的第一会话密钥进行解密,得到第一会话密钥。另外,该第一用户终端和该第二用户终端建立tcp连接之后,该第二用户终端生成有第二会话密钥,进一步,该第二用户终端根据其解密得到的第一会话密钥和自己生成的第二会话密钥,采用第一用户终端和第二用户终端预先约定好的第二算法,生成第三会话密钥。

步骤604、所述第一用户终端接收所述第二用户终端发送的加密后的第二会话密钥,所述第二会话密钥是所述第二用户终端生成的,所述加密后的第二会话密钥是所述第二用户终端采用所述第一用户终端在所述区块链网络中的公钥对所述第二会话密钥进行加密后得到的。

另外,该第二用户终端生成第二会话密钥之后,该第二用户终端还可以根据该第一用户终端在所述区块链网络中的公钥对该第二会话密钥进行加密,并将加密后的第二会话密钥发送给第一用户终端。

步骤605、所述第一用户终端采用所述第一用户终端在所述区块链网络中的私钥,对所述加密后的第二会话密钥进行解密,得到所述第二会话密钥。

第一用户终端接收到该加密后的第二会话密钥之后,根据该第一用户终端在该区块链网络中的私钥,对该加密后的第二会话密钥进行解密,得到第二会话密钥。

步骤606、所述第一用户终端根据所述第一会话密钥和所述第二会话密钥,生成第三会话密钥。

第一用户终端进一步根据自己生成的第一会话密钥和第一用户终端解密得到的第二会话密钥,采用第一用户终端和第二用户终端预先约定好的第二算法,生成第三会话密钥。

步骤607、所述第一用户终端根据所述第三会话密钥与所述第二用户终端进行通信。

在后续的通信过程中,第一用户终端和第二用户终端即可采用第三会话密钥进行加密通信。

可选的,在所述第一用户终端根据所述第三会话密钥与所述第二用户终端进行通信的过程中,第一用户终端和第二用户终端中的任一方有可能修改该第一会话密钥,第一用户终端和第二用户终端中的任一方也有可能修改该第二会话密钥。修改之后的第一会话密钥和/或修改之后的第二会话密钥的发送过程与上述实施例一致,此处不再赘述。

如果第一用户终端和第二用户终端中的任一方修改了第一会话密钥,则第一用户终端和第二用户终端各自可根据修改后的第一会话密钥和原来的第二会话密钥生成新的第三会话密钥,并在后续的通信过程中,第一用户终端和第二用户终端采用该第三会话密钥进行加密通信。

如果第一用户终端和第二用户终端中的任一方修改了第二会话密钥,则第一用户终端和第二用户终端各自可根据修改后的第二会话密钥和原来的第一会话密钥生成新的第三会话密钥,并在后续的通信过程中,第一用户终端和第二用户终端采用该第三会话密钥进行加密通信。

如果第一用户终端和第二用户终端中的任一方修改了第一会话密钥,以及如果第一用户终端和第二用户终端中的任一方修改了第二会话密钥,则第一用户终端和第二用户终端各自可根据修改后的第一会话密钥和修改后的第二会话密钥生成新的第三会话密钥,并在后续的通信过程中,第一用户终端和第二用户终端采用该第三会话密钥进行加密通信。

本实施例通过第一用户终端生成第一会话密钥以及第二用户终端生成第二会话密钥,第一用户终端采用第二用户终端的公钥对第一会话密钥进行加密,并将加密后的第一会话密钥发送给第二用户终端,第二用户终端采用第一用户终端的公钥对第二会话密钥进行加密,并将加密后的第二会话密钥发送给第一用户终端,使得第一用户终端和第二用户终端均可以根据第一会话密钥和第二会话密钥生成第三会话密钥,进一步提高了第一用户终端和第二用户终端之间通信的安全性。

图7为本发明实施例提供的第一用户终端的结构示意图。本发明实施例提供的第一用户终端可以执行基于会话密钥的通信方法实施例提供的处理流程,如图7所示,第一用户终端70包括:存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行以下操作:通过所述通讯接口在区块链网络广播查询请求,所述查询请求包括第二用户终端的域名区块链标识或域名,所述记账节点中存储的区块链账本包括所述第二用户终端的域名区块链标识或域名、所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;通过所述通讯接口接收所述区块链网络中的记账节点发送的所述第二用户终端的ip地址、所述第二用户终端在所述区块链网络中的公钥、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号;根据所述第二用户终端的ip地址、所述第二用户终端所支持的应用程序的名称和所述应用程序的服务端口号,与所述第二用户终端建立连接;根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信。

可选的,所述处理器根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信时,具体用于:生成第一会话密钥;根据所述第二用户终端在所述区块链网络中的公钥对所述第一会话密钥进行加密;通过所述通讯接口将加密后的所述第一会话密钥发送给所述第二用户终端,以使所述第二用户终端采用所述第二用户终端在所述区块链网络中的私钥对所述加密后的所述第一会话密钥进行解密,得到所述第一会话密钥;通信。

可选的,所述处理器还用于:在所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信的过程中,通过所述通讯接口接收所述第二用户终端修改后的第一会话密钥;根据修改后的第一会话密钥与所述第二用户终端进行通信;或者在所述第一用户终端根据所述第一会话密钥与所述第二用户终端进行通信的过程中,修改所述第一会话密钥;通过所述通讯接口向所述第二用户终端发送修改后的所述第一会话密钥,以使所述第二用户终端根据修改后的所述第一会话密钥与所述第一用户终端进行通信。

可选的,所述处理器根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信时,具体用于:通过所述通讯接口接收所述第二用户终端发送的加密后的第二会话密钥,所述第二会话密钥是所述第二用户终端生成的,所述加密后的第二会话密钥是所述第二用户终端采用所述第一用户终端在所述区块链网络中的公钥对所述第二会话密钥进行加密后得到的;采用所述第一用户终端在所述区块链网络中的私钥,对所述加密后的第二会话密钥进行解密,得到所述第二会话密钥;根据所述第二会话密钥与所述第二用户终端进行通信。

可选的,所述处理器还用于:在所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信的过程中,通过所述通讯接口接收所述第二用户终端修改后的第二会话密钥;根据修改后的第二会话密钥与所述第二用户终端进行通信;或者在所述第一用户终端根据所述第二会话密钥与所述第二用户终端进行通信的过程中,修改所述第二会话密钥;通过所述通讯接口向所述第二用户终端发送修改后的所述第二会话密钥,以使所述第二用户终端根据修改后的所述第二会话密钥与所述第一用户终端进行通信。

可选的,所述处理器根据所述第一用户终端生成的第一会话密钥和/或所述第二用户终端生成的第二会话密钥与所述第二用户终端进行通信时,具体用于:生成第一会话密钥;根据所述第二用户终端在所述区块链网络中的公钥对所述第一会话密钥进行加密;通过所述通讯接口将加密后的所述第一会话密钥发送给所述第二用户终端,以使所述第二用户终端采用所述第二用户终端在所述区块链网络中的私钥对所述加密后的所述第一会话密钥进行解密,得到所述第一会话密钥,并根据所述第一会话密钥和所述第二用户终端生成的第二会话密钥,确定第三会话密钥;通过所述通讯接口接收所述第二用户终端发送的加密后的第二会话密钥,所述第二会话密钥是所述第二用户终端生成的,所述加密后的第二会话密钥是所述第二用户终端采用所述第一用户终端在所述区块链网络中的公钥对所述第二会话密钥进行加密后得到的;采用所述第一用户终端在所述区块链网络中的私钥,对所述加密后的第二会话密钥进行解密,得到所述第二会话密钥;根据所述第一会话密钥和所述第二会话密钥,生成第三会话密钥;根据所述第三会话密钥与所述第二用户终端进行通信。

图7所示实施例的第一用户终端可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

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

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

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

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

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

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

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

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