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

数据传输方法和电子设备

文献发布时间:2023-06-19 09:27:35


数据传输方法和电子设备

技术领域

本申请涉及数据安全技术领域,具体而言,涉及一种数据传输方法和电子设备。

背景技术

通常情况下,网络数据传输基于TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等协议实现。

为了提升网络数据传输过程中的数据安全性,通常会在传输过程中进行加密处理,通常采用对称加密或非对称加密等加密方式实现。

通过现有的加密方式,使得在数据传输过程中,如果出现中间用户拦截数据的情况,可增大被拦截内容被破解的难度,避免被拦截的内容在传输过程中被破解。

但是,如果传输过程中使用的加密密钥、加密方法、协议在未来的某一天被事后破解或被人为泄露,会导致以前被拦截但未被立刻破解的传输内容存在回溯破解的风险,因此现有的数据处理方式存在较大安全隐患。

发明内容

本申请的目的在于提供一种数据传输方法和电子设备,能够改善现有的网络数据传输方式容易导致传输的内容被回溯破解的问题。

第一方面,本申请实施例提供一种数据传输方法,所述方法包括:

客户端为本次会话确定第一公共密钥,以及为所述本次会话生成第一临时密钥对,所述第一临时密钥对包括第一临时公钥以及与所述第一临时公钥对应的第一临时私钥;

所述客户端向所述服务端发送携带所述第一临时公钥的临时密钥交换请求,以供所述服务端根据所述临时密钥交换请求为所述本次会话生成第二临时密钥对,所述第二临时密钥对包括第二临时公钥以及与所述第二临时公钥对应的第二临时私钥;

所述客户端接收所述服务端发送的密钥交换结果,并通过所述第一公共密钥对所述密钥交换结果进行解密,得到所述服务端提供的所述第二临时公钥;

所述客户端根据所述第二临时公钥以及所述第一临时私钥生成第二公共密钥;

所述客户端通过所述第二公共密钥对本次会话中的传输数据进行加密,并将加密后得到的加密数据发送给所述服务端,以供所述服务端根据所述第一临时公钥以及所述第二临时私钥生成所述第二公共密钥,并通过所述第二公共密钥对所述加密数据进行解密,得到所述传输数据。

在传统的对称或非对称加密方式中,如果在网络侧传输的内容被拦截后,事后发生对称加密密钥或非对称加密密钥等静态密钥被泄露的情况,可能会导致之前被拦截的内容被回溯破解,导致数据泄露,而通过上述的方法,进行交互的双方在本次会话中传输实际想要传输的传输数据之前,先进行了临时密钥交换,交换内容并非是用来对传输数据加密的公共密钥,而是进行交互的双方为本次会话临时生成的具有时效性的临时公钥,在每次会话中实际上用于加密真实传输数据的密钥是根据交互双方的临时密钥所生成的第二共享密钥,该第二共享密钥作为临时共享密钥,并未在网络侧传输,也具有时效性,因此即使在网络侧传输的内容被拦截后,事后发生对称加密密钥或非对称加密密钥等静态密钥被泄露的情况,也只能得到第一次互相交换时所用的临时密钥交换请求,无法回溯破解得到本次会话中实际传输的传输数据(并且即使传输过程中的临时公钥被拦截,也无法根据拦截到的具有时效性的公钥实现对于加密数据的回溯破解),以此使得传输的加密数据难以被回溯破解,可提升数据安全性,可降低数据安全隐患。

此外,由于临时密钥对具有时效性,临时密钥对在失效后可自然消失,可以使得每次会话的加密密钥不会继续沿用到后续会话。

在可选的实施方式中,在所述客户端通过所述第二公共密钥对本次会话中的传输数据进行加密,并将加密后得到的加密数据发送给所述服务端之后,所述方法还包括:

所述客户端接收所述服务端根据所述传输数据发送的响应数据;

所述客户端响应于所述响应数据,根据所述第二临时公钥以及所述第一临时私钥生成所述第二公共密钥;

所述客户端通过所述第二公共密钥对所述响应数据进行解密,得到所述响应数据中的响应结果。

通过上述实现方式,客户端可以基于本次会话专用的第一临时私钥,以及本次会话中交换得到的第二临时公钥,生成专用于本次会话中进行解密的第二公共密钥,然后基于该第二公共密钥对本次会话中与传输数据有关的响应数据进行解密,以此得到客户端所需的响应结果。整个数据传输过程中,进行临时密钥交换后所生成的第二公共密钥视为临时公共密钥,临时公共密钥并未在网络侧传输,且具有时效性,因此可避免响应数据被回溯破解。

在可选的实施方式中,所述密钥交换结果中包括所述服务端根据所述临时密钥交换请求发送的所述本次会话中使用的会话标识;

所述客户端通过所述第二公共密钥对本次会话中的传输数据进行加密,并将加密后得到的加密数据发送给所述服务端,以供所述服务端根据所述第一临时公钥以及所述第二临时私钥生成所述第二公共密钥,并通过所述第二公共密钥对所述加密数据进行解密,得到所述传输数据,包括:

所述客户端获取待加密的传输数据;

所述客户端通过所述第二公共密钥对所述待加密的传输数据进行加密,得到经过加密的加密数据;

所述客户端生成携带所述加密数据和所述会话标识的会话数据包;

所述客户端将所述会话数据包发送给所述服务端,以供所述服务端根据所述会话数据包中的会话标识获取所述第一临时公钥和所述第二临时私钥,并根据所述第一临时公钥和所述第二临时私钥生成所述第二公共密钥,并通过所述第二公共密钥对所述加密数据进行解密,得到所述传输数据。

通过上述实现方式,在进行密钥交换以后,客户端可基于服务端为本次会话提供的会话标识传输加密数据。在进行密钥交换后需要对加密数据进行解密时,服务端可根据会话标识快速确定出当前能够用于生成临时公共密钥(第二公共密钥)的临时公、私钥,有利于在正常交互过程中对本次会话中的加密数据进行快速解密。

在可选的实施方式中,所述客户端为所述本次会话确定第一公共密钥,包括:

所述客户端根据所述服务端的第一公钥和所述客户端的第二私钥,为所述本次会话生成所述第一公共密钥,所述服务端的第一公钥和所述客户端的第二私钥预存在所述客户端。

通过上述实现方式,提供了一种可以快速生成第一公共密钥的实现方式。

在可选的实施方式中,所述客户端向所述服务端发送携带所述第一临时公钥的临时密钥交换请求,包括:

所述客户端通过所述第一公共密钥对所述第一临时公钥进行加密,得到加密后的第一临时公钥;

所述客户端根据所述加密后的第一临时公钥生成所述临时密钥交换请求,并将所述临时密钥交换请求发送给所述服务端。

通过上述实现方式,可提升临时密钥交换过程的数据安全性,可降低第一临时公钥被网络侧的第三方拦截破解的风险。

第二方面,本申请实施例提供一种数据传输方法,所述方法包括:

服务端接收客户端发送的临时密钥交换请求,所述临时密钥交换请求中包括所述客户端为本次会话生成的第一临时公钥;

所述服务端根据所述临时密钥交换请求,为所述本次会话生成第二临时密钥对,所述第二临时密钥对包括第二临时公钥以及与所述第二临时公钥对应的第二临时私钥;

所述服务端向所述客户端发送经过第一公共密钥加密过的密钥交换结果,以供所述客户端通过所述第一公共密钥对所述密钥交换结果进行解密,得到所述密钥交换结果中携带的所述第二临时公钥,并根据所述第二临时公钥生成第二公共密钥,并通过所述第二公共密钥对所述本次会话中的传输数据进行加密,得到加密数据;

所述服务端在接收到所述客户端发送的所述加密数据时,根据所述第一临时公钥和所述第二临时私钥生成所述第二公共密钥;

所述服务端通过所述第二公共密钥对所述加密数据进行解密,得到所述传输数据。

通过上述方法,在本次会话中传输实际想要传输的传输数据之前,先进行了临时密钥交换,并且,交换的内容并非是用来对传输数据加密的公共密钥,而是进行交互的双方为本次会话临时生成的临时公钥。在每次会话中,实际上用于加密真实传输数据的密钥是第二共享密钥,但该第二共享密钥作为临时共享密钥,并未在网络侧传输,且具有时效性,即使在网络侧传输的内容被拦截之后出现第一公共密钥被泄露的情况,拦截者也只能得到交互双方在第一次交换时的临时密钥交换请求(只能得到具有一定时效性的内容),无法在事后根据过期的临时密钥对加密数据进行回溯破解,以此使得传输的加密数据难以被回溯破解,可提升数据安全性,可降低数据安全隐患。

在可选的实施方式中,在所述服务端通过所述第二公共密钥对所述加密数据进行解密,得到所述传输数据之后,所述方法还包括:

所述服务端根据所述传输数据得到响应结果;

所述服务端通过所述第二公共密钥对所述响应结果进行加密,得到响应数据;

所述服务端将所述响应数据发送给所述客户端,以供所述客户端根据所述第二临时公钥以及所述客户端的第一临时私钥生成所述第二公共密钥,并通过所述第二公共密钥对所述响应数据进行解密,得到所述响应结果。

通过上述实现方式,可以增大响应数据被回溯破解的困难度,可提升响应数据的数据安全性。

在可选的实施方式中,所述密钥交换结果中包括所述本次会话中使用的会话标识;

所述服务端向所述客户端发送经过第一公共密钥加密过的密钥交换结果,包括:

所述服务端根据所述临时密钥交换请求,生成所述第一公共密钥;

所述服务端通过所述第一公共密钥对所述第二临时公钥进行加密,得到加密后的第二临时公钥;

所述服务端生成携带所述加密后的第二临时公钥和所述会话标识的密钥交换结果。

通过上述实现方式,服务端为本次会话提供了会话标识,接收到密钥交换结果的客户端可根据该会话标识传输加密数据。

在可选的实施方式中,在所述服务端接收客户端发送的临时密钥交换请求之后,所述方法还包括:

所述服务端获取所述客户端的第二公钥和所述服务端的第一私钥;

所述服务端以所述客户端的第二公钥和所述服务端的第一私钥作为输入数据,通过椭圆曲线密钥交换算法生成所述第一公共密钥;

所述服务端通过所述第一公共密钥对所述临时密钥交换请求进行解密,得到所述第一临时公钥。

通过上述实现方式可以提升密钥交换过程的安全性,可降低第一临时公钥被网络侧的第三方拦截破解的风险。

第三方面,本申请实施例提供一种电子设备,包括:

存储器;

处理器;

所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时执行前述第一方面或第二方面所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种数据传输方法的流程图。

图2为本申请实施例提供的一种数据传输方法的部分流程图。

图3为本申请实施例提供的一种数据传输方法中的密钥交换过程的流程图。

图4为本申请实施例提供的一种电子设备的功能结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

请参阅图1,图1为本申请实施例提供的一种数据传输方法的流程图。该方法是一种可防止被回溯破解的网络内容加解密处理方法。

如图1所示,该方法包括:步骤S11-S19。在S11-S19中的步骤可视为与同一次会话有关的内容。

其中,S11-S15作为本次会话中的密钥交换过程,S15之后的步骤可视为本次会话中的内容加密传输过程。需要说明的是,在本申请实施例中,每次进行新的会话时均会进行密钥交换过程。

S11:客户端为本次会话确定第一公共密钥,以及为本次会话生成第一临时密钥对,第一临时密钥对包括第一临时公钥以及与第一临时公钥对应的第一临时私钥。

可选的,在执行S11之前,客户端、服务端可各自预存一对公私密钥以及对方的公钥。例如,客户端可预存该服务端的第一公钥,以及该客户端自身的第二公钥和该第二公钥对应的第二私钥。同理,服务端可预存该客户端的第二公钥,以及该服务端自身的第一公钥和该第一公钥对应的第一私钥。其中,第一公钥和第一私钥是一对密钥,第二公钥和第二私钥是一对密钥。

其中,对于预存的第一公钥、第一私钥、第二公钥和第二私钥,可以视为静态密钥。在一个实例中,第一公钥可记为SpubKey,第一私钥可记为SPriKey,第二公钥可记为CPubKey,第二私钥可记为CpriKey。

在本申请实施例中,客户端可基于第一公钥和第二私钥生成第一公共密钥。服务端可基于第二公钥和第一私钥生成与客户端相同的第一公共密钥。在一个实例中,第一公共密钥可记为sharedkey1。

关于该客户端、服务端分别存储的一对公私钥,仅用于在本次会话中参与密钥交换过程,不用于对具体的传输数据进行加密,用于对具体的传输数据进行加密的是本申请实施例中的公共密钥(例如后续描述中的第二公共密钥)。

关于S11中的第一临时密钥对,第一临时密钥对是客户端特意为本次会话生成的临时密钥对,具有随机性、时效性。第一临时密钥对中的第一临时公钥和第一临时私钥是一对密钥,第一临时公钥用于进行密钥交换。在一个实例中,第一临时公钥可记为cTmpPubKey,第一临时私钥可记为cTmpPriKey。

在客户端确定本次会话需要使用的第一公共密钥以及第一临时密钥对之后,可执行S12。

S12:客户端向服务端发送携带该第一临时公钥的临时密钥交换请求。

其中,临时密钥交换请求用于提示需要继续进行数据交互的双方进行密钥交换。

在本申请实施例中,密钥交换是指在客户端、服务端之间将各自为本次会话所生成的临时公钥进行交换。客户端在向服务端发送携带第一临时公钥的临时密钥交换请求后,可等待服务端反馈特意为本次会话生成的第二临时公钥(即S13-S14)。

S13:服务端在接收到客户端发送的该临时密钥交换请求时,根据该临时密钥交换请求为本次会话生成第二临时密钥对,该第二临时密钥对包括第二临时公钥以及与第二临时公钥对应的第二临时私钥。

在本申请实施例中,该临时密钥交换请求或该请求中携带的第一临时公钥可以是经过加密的,用于对第一临时公钥进行加密的密钥是客户端生成的第一公共密钥。即使S12的传输步骤中未携带该第一公共密钥,但由于服务端可以根据预存的密钥生成与客户端一侧相同的第一公共密钥,因此服务端能够根据生成的第一公共密钥对该临时密钥交换请求进行解密,服务端在解密后可得到客户端想要交换的第一临时公钥。

其中,服务端在接收到该客户端发送的临时密钥交换请求时,可以为本次会话随机生成第二临时密钥对,得到第二临时公钥以及与第二临时公钥对应的第二临时私钥。在一个实例中,第二临时公钥可记为sTmpPubKey,第二临时私钥可记为sTmpPriKey。

在服务端为本次会话生成第二临时密钥对之后,可以执行S14,以将第二临时公钥提供给该客户端。

S14:服务端向客户端发送经过第一公共密钥加密过的密钥交换结果,密钥交换结果中携带第二临时公钥。

其中,服务端可在接收到客户端发送的该临时密钥交换请求时,自行根据预存的密钥生成该第一公共密钥,并通过生成的第一公共密钥对密钥交换结果中携带的第二临时公钥进行加密,以此得到经过第一公共密钥加密过的密钥交换结果,且密钥交换结果携带该第二临时公钥。

可选的,如果需要进行多次会话,在本次会话的密钥交换结果中可以包括本次会话中使用的会话标识(即,session ID)。通过会话标识可以对不同的会话进行区分。

当然,可以理解的是,由于每次会话都进行了临时密钥交换过程,且本次会话的传输数据是基于临时密钥交换结果进行传输的,即使没有刻意标注会话标识,每次会话也是可以独立完成的。例如,可以在独立的每次会话中,客户端、服务端双方之间基于最新存储的临时密钥实现本申请实施例提供的方法。

S15:客户端接收服务端发送的密钥交换结果,并通过第一公共密钥对密钥交换结果进行解密,得到服务端提供的第二临时公钥。

其中,客户端可直接获取S11中确定的第一公共密钥,也可以是在接收到服务端提供的密钥交换结果后,根据预存的密钥即时生成与S11相同的第一公共密钥。客户端在得到服务端发送的密钥交换结果,并且确定第一公共密钥的情况下,可通过第一公共密钥对该密钥交换结果进行解密,从而得到该密钥交换结果中携带的第二临时公钥,即,得到服务端基于前述临时密钥交换请求提供的第二临时公钥。以此实现客户端与服务端之间的临时密钥交换过程。

S16:客户端根据第二临时公钥以及第一临时私钥生成第二公共密钥。

其中,在临时密钥交换成功的情况下,客户端可基于当前存储的临时密钥生成第二公共密钥。客户端当前存储的临时密钥包括服务端为本次会话提供的第二临时公钥,以及S11中已经确定出的第一临时私钥。客户端可基于第二临时公钥以及该第一临时私钥生成第二公共密钥。

第二公共密钥可视为本次会话的临时公共密钥,可作为本次会话中的传输数据的加密密钥。在一个实例中,第二公共密钥可记为sharedkey2。

客户端在生成第二公共密钥之后,可执行S17。

S17:客户端通过该第二公共密钥对本次会话中的传输数据进行加密,并将加密后得到的加密数据发送给服务端。

其中,客户端可在临时密钥交换成功的情况下,获取本次会话中需要传输的传输数据,并通过S16生成的第二公共密钥对该传输数据进行加密,加密结束后得到加密数据。然后将该加密数据发送给服务端。

其中,该传输数据可视为本次会话中,客户端实际上想要传输给服务端的有效会话内容。

S18:服务端在接收到该客户端发送的加密数据时,根据第一临时公钥以及第二临时私钥生成第二公共密钥。

基于S17,服务端可接收客户端发送的加密数据,并在接收到该加密数据后,生成用于对该加密数据进行解密的第二公共密钥。本申请实施例中,即使未在传输过程中传输加密密钥,服务端也可以根据之前的密钥交换过程中得到的第一临时公钥,以及服务端之前为本次会话生成的第二临时私钥,生成与客户端一侧相同的第二公共密钥。

关于具体生成公共密钥的方式将在下文进行描述。

S19:服务端通过该第二公共密钥对该加密数据进行解密,得到传输数据。

其中,服务端在生成第二公共密钥后,可通过生成的第二公共密钥对客户端发送的加密数据进行解密,得到客户端在本次会话中提供的传输数据,整个传输过程实现了数据安全。

在上述S11-S19的方法中,进行交互的双方在本次会话中传输实际想要传输的传输数据之前,先进行了临时密钥交换,并且交换内容并非是用来对传输数据加密的公共密钥,而是进行交互的双方为本次会话临时生成的临时公钥。在每次会话中,实际上用于加密真实传输数据的密钥是第二共享密钥,但该第二共享密钥作为临时共享密钥,并未在网络侧传输,且具有时效性。在传统的对称或非对称加密方式中,如果在网络侧传输的内容被拦截后,事后发生对称加密密钥或非对称加密密钥等静态密钥被泄露的情况,可能会导致之前被拦截的内容被回溯破解,导致数据泄露,而通过上述S11-S19的方法,交互双方在本次会话中传输实际想要传输的传输数据之前先进行了临时密钥交换(交换内容并非是用来对传输数据加密的公共密钥,而是进行交互的双方为本次会话临时生成的具有时效性的临时公钥),并且每次会话中实际上用于加密真实传输数据的密钥是根据交互双方的临时密钥所生成的第二共享密钥,该第二共享密钥作为临时共享密钥,并未在网络侧传输,因此即使在网络侧传输的内容被拦截后,事后发生对称加密密钥或非对称加密密钥等静态密钥被泄露的情况,最多也只能得到临时密钥交换请求,无法回溯破解得到本次会话中实际传输的传输数据,以此使得传输的加密数据难以被回溯破解,可提升数据安全性,可降低数据安全隐患。

此外,由于临时密钥对具有时效性,可以使得每次会话的加密密钥不会继续沿用到后续会话,临时密钥对在过期失效后可自然消失,即使传输过程中的临时公钥被拦截,也无法根据拦截到的过期的公钥实现对于加密数据的回溯破解,以此可避免网络数据传输过程中遭拦截的历史加密数据被回溯破解,可降低数据安全隐患。

可选的,如图2所示,为了在同一次会话中能够实现客户端与服务端之间的快速数据反馈,客户端在向服务端发送加密数据(S17)之后,服务端在对加密数据进行解密得到传输数据(S19)之后,数据传输方法还可以包括步骤S21-S26。

S21:服务端根据传输数据得到响应结果。

示例性的,服务器可根据S19得到的传输数据执行一些数据获取、查询、计算等操作,得到该传输数据对应的响应结果。

如果服务端基于加密数据得到的传输数据中包括数据查询请求,服务器可根据该传输数据中的数据查询请求进行数据查询,得到该数据查询请求对应的查询结果作为响应结果。

S22:服务端通过第二公共密钥对响应结果进行加密,得到响应数据。

服务端在得到响应结果后,可基于当前使用的第二公共密钥(例如S18中生成的第二公共密钥)对该响应结果进行加密,得到响应数据。

服务端在得到响应结果后,也可以获取当前存储的第一临时公钥以及第二临时私钥,生成第二公共密钥,由于在本次会话中并未继续进行密钥交换,因此即使重新生成第二公共密钥,得到的也是与S18相同的公共密钥,服务端可通过此时生成的第二公共密钥对该响应结果进行加密,得到响应数据。

S23:服务端将响应数据发送给客户端。

服务端在得到响应数据后,可将该响应数据发送给该客户端。

S24:客户端接收服务端根据传输数据发送的响应数据。

S25:客户端响应于响应数据,根据第二临时公钥以及第一临时私钥生成第二公共密钥。

其中,客户端在接收到响应数据后,可根据此时存储的第二临时公钥以及第一临时私钥生成前述的第二公共密钥。由于此时未继续进行密钥交换,因此,此时得到的第二公共密钥与前述S16中的公共密钥相同,且与服务端在本次会话中的S18中生成的公共密钥相同。

S26:客户端通过第二公共密钥对响应数据进行解密,得到响应数据中的响应结果。

可选的,关于S23,服务端可向客户端发送携带会话标识的响应数据包,该响应数据包中包括服务端提供给客户端的响应数据。通过该会话标识有利于服务端或客户端区分当前传输的内容是否与之前传输的加密数据存在关联,通过该会话标识有利于服务端或客户端对不同的会话进行区分。

客户端在接收到该响应数据包后,可基于该会话标识确定本次会话中的第二公共密钥,或根据该会话标识获取前述的(或当前存储的)第二临时公钥以及第一临时私钥,生成前述的第二公共密钥,从而基于第二公共密钥对该响应数据包中的响应数据进行解密,得到响应数据中的响应结果。

通过上述S21-S26的实现方式,服务端可基于本次会话专用的第二临时私钥以及本次会话中交换得到的第一临时公钥,生成专用于本次会话中进行解密的第二公共密钥,然后向客户端提供经过该第二公共密钥加密过的响应结果。客户端可以基于本次会话专用的第一临时私钥,以及本次会话中交换得到的第二临时公钥,生成专用于本次会话中进行解密的第二公共密钥(与服务端生成的相同),然后基于该第二公共密钥对本次会话中服务端提供的响应数据进行解密,以此得到客户端在本次会话中所需要的响应结果。整个数据传输过程中,进行临时密钥交换后所生成的第二公共密钥作为本次会话中的临时公共密钥,临时公共密钥并未在网络侧传输,且具有时效性,因此可避免响应数据被回溯破解。上述的实现方式可以增大响应数据被回溯破解的困难度,可提升响应数据的数据安全性。

作为一种实现方式,S11中的客户端为本次会话确定第一公共密钥的实现过程可包括:S111。

S111:客户端根据服务端的第一公钥和客户端的第二私钥,为本次会话生成第一公共密钥,服务端的第一公钥和客户端的第二私钥预存在客户端。

其中,客户端可获取预存的第一公钥和第二私钥,并将获取到的第一公钥和第二私钥作为输入数据,通过椭圆曲线密钥交换算法生成第一公共密钥。

椭圆曲线密钥交换算法可简记为ECDH,可简称为椭圆算法,全称是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange),主要是用来在一个不安全的通道中建立起安全的共有加密资料。在本申请实施例中,在交互双方未存储完全相同的密钥的情况下,基于椭圆曲线密钥交换算法可以生成公共密钥(包括第一公共密钥或第二公共密钥)。

本申请实施例中,在客户端、服务端之间未传输第一公共密钥的情况下,为了能够从临时密钥交换请求中得到第一临时公钥,服务端可基于客户端生成第一公共密钥的原理生成与客户端一侧相同的第一公共密钥。服务端生成第一公共密钥的实现过程可包括步骤S131。通过S111和S131可以使得客户端、服务端能够基于各自预存的不同密钥生成相同的第一公共密钥。

S131:服务端根据客户端的第二公钥和服务端的第一私钥生成第一公共密钥。其中,客户端的第二公钥和服务端的第一私钥预存在服务端。

其中,服务端可获取预存的第二公钥和第一私钥,并将获取到的第二公钥和第一私钥作为输入数据,通过椭圆曲线密钥交换算法生成第一公共密钥。

基于此原理,服务端生成的第一公共密钥与S111中客户端生成的第一公共密钥相同。

基于S111、S131,可快速生成第一公共密钥,有利于快速、安全完成密钥交换过程。

在客户端生成第一公共密钥的情况下,可通过第一公共密钥对第一临时公钥进行加密,得到加密后的第一临时公钥。客户端可根据加密后的第一临时公钥生成前述的临时密钥交换请求,并将临时密钥交换请求发送给服务端。

需要说明的是,在本申请实施例中,如果基于S111通过客户端的公钥和服务端的私钥产生共享密钥(此处是指第一公共密钥),并且基于此共享密钥对客户端自己为本次会话的第一临时公钥进行加密(如图3所示),然后向服务端发送临时密钥交换请求,可以降低第一临时公钥被网络侧的第三方拦截破解的风险,因此可以提升临时密钥交换过程的数据安全性。

在服务端生成第一公共密钥的情况下,可在接收到客户端发送的该临时密钥交换请求时,通过该第一公共密钥对临时密钥交换请求进行解密,得到临时密钥交换请求中携带的第一临时公钥。以此可以提升临时密钥交换过程的数据安全性。

可选的,上述S14的密钥交换结果中可以包括服务端根据临时密钥交换请求发送的本次会话中使用的会话标识。则上述S14可以包括:S141-S144。

S141:服务端根据临时密钥交换请求,生成第一公共密钥。

其中,服务端可在接收到临时密钥交换请求后,生成第一公共密钥。关于服务端生成第一公共密钥的实现方式,请参阅前述与S131相关的内容。

S142:服务端通过第一公共密钥对第二临时公钥进行加密,得到加密后的第二临时公钥。

需要说明的是,如果基于S131通过服务端的公钥和客户端的私钥产生共享密钥(此处是指第一公共密钥),并且基于此共享密钥对服务端自己为本次会话生成的第二临时公钥进行加密(即S131+S141+S142),然后向客户端发送密钥交换结果(可参照图3所示的密钥交换流程),可以降低第二临时公钥被网络侧的第三方拦截破解的风险,同样可以提升临时密钥交换过程的数据安全性。

S143:服务端生成携带加密后的第二临时公钥和会话标识的密钥交换结果。

S144:服务端将携带该会话标识和该加密后的第二临时公钥的密钥交换结果发送给该客户端。

在客户端得到该会话标识后,基于该会话标识,上述S17可以包括S171-S174,上述S18可以包括S181-S184。其中,在S171-S174、S181-S184中与加密数据、传输数据、第二公共密钥有关的内容可参阅前述方法中的有关内容,在此不再赘述。

S171:客户端获取待加密的传输数据。

S172:客户端通过第二公共密钥对待加密的传输数据进行加密,得到经过加密的加密数据。

S173:客户端生成携带加密数据和会话标识的会话数据包。

S174:客户端将会话数据包发送给服务端。

S181:服务端接收客户端发送的会话数据包。

S182:服务端根据会话数据包中的会话标识获取第一临时公钥和第二临时私钥。

在S182之后执行S183。

S183:服务端根据第一临时公钥和第二临时私钥生成第二公共密钥。

在S183之后执行S184。

S184:并通过第二公共密钥对加密数据进行解密,得到传输数据。

可选地,客户端可以根据实际用户需求,与服务端之间重新协商临时密钥对,以进行新的会话,并生成新的会话中使用的新的共享密钥。

综上所述,由于在上述方法中,每次加密的传输数据、响应结果都使用了交互双方的临时密钥以产生共享密钥,以至于当临时密钥丢失后,别人将难以解密之前加密过的内容,可改善回溯破解问题。上述方法可较好应用于数据安全产品,具有较好的抗破解、抗泄密性,可提升数据传输过程中的数据安全性。

需要说明的是,在本申请实施例提供的方法中,与客户端有关的内容可以视为通过部署有客户端的第一设备实现,可视为应用于第一设备,本申请实施例提供的数据传输方法中与服务端有关的内容可以视为通过部署有服务端的第二设备实现,可视为应用于第二设备。

基于同一发明构思,如图4所示,本申请实施例还提供一种电子设备400。该电子设备400包括:存储器401、处理器402和通信组件403。该电子设备400可用于实现前述由服务端实现的方法或由客户端实现的方法。

通信组件403包括通信总线,通信总线用于实现电子设备400中各个组件之间的直接或间接连接。

存储器401是一种存储介质,可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory)。

处理器402具有运算处理能力,可以是但不限于中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等通用处理器;还可以是专用处理器或者其他可编程逻辑器件搭建的处理器。处理器402可以实现本申请实施例提供的方法、步骤及逻辑框图。

存储器401上存储有处理器402可执行的计算机程序,处理器402用于执行存储器401中存储的计算机程序,从而实现前述实施例提供的方法中的部分或全部步骤。

需要说明的是,图4所示结构仅作为示意,具体应用时可以有更多的组件,或具有不同于图4所示的其他配置方式。

在本申请所提供的实施例中,应该理解到,所揭露实施例,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,多个单元或组件可以结合或者可以集成到另一个系统。另一点,所讨论的相互之间的连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

需要说明的是,上述方法对应的功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以用软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例方法的全部或部分步骤。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 电子设备间的数据传输方法、电子设备及数据传输系统
  • 电子设备的数据传输方法及其介质和电子设备
技术分类

06120112178570