一种数据加密传输的方法和装置与流程

文档序号:35827484发布日期:2023-10-22 13:09阅读:48来源:国知局
一种数据加密传输的方法和装置与流程

本发明涉及计算机,尤其涉及一种数据加密传输的方法和装置。


背景技术:

1、ssl(secure sockets layer,安全套接字层)是一种安全通信协议,用于在计算机网络上保护数据传输的安全性,基于ssl协议实现了一些加密库以用于进行数据的加密传输。由于传统的ssl/tls(transport layer security,传输层安全)协议使用的是国际算法,非国密算法(国密即国家密码局认定的国产密码算法),因此一些加密库,例如boringssl(是google开发的一个安全性高、性能优秀的加密库,整体架构的设计灵活,加解密性能高),也是仅支持国际算法的。

2、在实现本发明的过程中,发明人发现现有技术中,使用boringssl加密库来进行数据传输时,虽然能够提供一定的数据加密和传输安全保护,但对于国家关键信息等重要数据的保护可能存在一定的安全风险,适用性较差。


技术实现思路

1、有鉴于此,本发明实施例提供一种数据加密传输的方法和装置,能够对国家关键信息等重要数据进行安全保护,从而更好的保障数据的安全性和保密性,避免了数据安全风险,提高了加密库的适用性。

2、为实现上述目的,根据本发明实施例的一个方面,提供了一种数据加密传输的方法,所述方法由客户端执行,所述方法包括:向服务端发送握手请求,所述握手请求包括所述客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;接收所述服务端返回的握手响应、服务端证书和密钥协商请求,所述握手响应包括所述服务端从所述加密套件列表中选择的目标加密套件,所述服务端证书包括签名证书、加密证书和证书链,所述签名证书用于进行签名操作,所述加密证书用于进行数据加密,所述证书链用于由所述客户端验证签名证书和加密证书的真实性;对所述服务端证书进行验证,在验证通过的情况下,基于所述目标加密套件生成客户端会话密钥,并使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息,将所述服务端会话密钥验证消息发送给所述服务端,以使所述服务端根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,并在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息;接收所述客户端会话密钥验证消息,使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证;在所述客户端会话密钥验证通过的情况下,使用所述客户端会话密钥与所述服务端进行数据加密传输。

3、可选地,所述握手请求还包括客户端随机数,所述握手响应还包括服务端随机数,基于所述目标加密套件生成客户端会话密钥,包括:生成预主密钥,并根据所述预主密钥、所述客户端随机数和所述服务端随机数生成主密钥,基于所述目标加密套件对所述主密钥进行处理生成客户端会话密钥。

4、可选地,使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息,包括:使用所述服务端证书对所述预主密钥进行加密生成加密预主密钥;生成客户端随机数消息,基于所述目标加密套件,使用所述客户端会话密钥对所述客户端随机数消息进行加密,得到客户端加密随机数消息;基于所述目标加密套件对所述客户端随机数消息进行处理得到第一哈希值,使用所述服务端加密证书对所述第一哈希值进行加密得到加密第一哈希值;根据所述加密预主密钥、所述加密第一哈希值和所述客户端加密随机数消息生成服务端会话密钥验证消息。

5、可选地,所述服务端根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,包括:所述服务端使用所述服务端证书的私钥对所述加密预主密钥进行解密得到所述预主密钥,并根据所述预主密钥、所述客户端随机数和所述服务端随机数生成主密钥,基于所述目标加密套件对所述主密钥进行处理生成服务端会话密钥;所述服务端使用所述服务端会话密钥对所述客户端加密随机数消息进行解密得到服务端随机数消息,并基于所述目标加密套件对所述服务端随机数消息进行处理得到第二哈希值;所述服务端使用所述服务端证书的私钥对所述加密第一哈希值进行解密得到所述第一哈希值,将所述第一哈希值与所述第二哈希值进行比较,以进行服务端会话密钥验证。

6、可选地,在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息,包括:在验证通过的情况下,所述服务端基于所述目标加密套件和所述服务端会话密钥对所述服务端随机数消息进行加密,生成客户端会话密钥验证消息。

7、可选地,所述加密算法包括密钥协商算法、非对称加密算法、对称加密算法和摘要算法;所述密钥协商请求是基于所述目标加密套件中的密钥协商算法和非对称加密算法来实现的;基于所述目标加密套件对所述主密钥进行处理生成客户端会话密钥,包括:基于所述目标加密套件中的摘要算法对所述主密钥进行处理生成客户端会话密钥;基于所述目标加密套件,使用所述客户端会话密钥对所述客户端随机数消息进行加密,包括:基于所述目标加密套件中的对称加密算法,使用所述客户端会话密钥对所述客户端随机数消息进行加密;基于所述目标加密套件对所述客户端随机数消息进行处理得到第一哈希值,包括:基于所述目标加密套件中的摘要算法对所述客户端随机数消息进行处理得到第一哈希值;基于所述目标加密套件对所述服务端随机数消息进行处理得到第二哈希值,包括:基于所述目标加密套件中的摘要算法对所述服务端随机数消息进行处理得到第二哈希值;所述服务端基于所述目标加密套件和所述服务端会话密钥对所述服务端随机数消息进行加密,生成客户端会话密钥验证消息,包括:所述服务端基于所述目标加密套件中的对称加密算法和所述服务端会话密钥对所述服务端随机数消息进行加密,生成客户端会话密钥验证消息。

8、可选地,所述加密算法包括对称加密算法,所述方法还包括:基于所述目标加密套件中的对称加密算法生成白盒加密算法,并使用所述白盒加密算法对所述预主密钥进行加密后存储。

9、可选地,使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证,包括:使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密得到第一客户端随机数消息,根据所述第一客户端随机数消息和所述客户端随机数消息进行客户端会话密钥验证。

10、根据本发明实施例的另一方面,提供了一种数据加密传输的方法,所述方法由服务端执行,所述方法包括:接收客户端发来的握手请求,所述握手请求包括所述客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;生成握手响应、服务端证书和密钥协商请求并发送给所述客户端,所述握手响应包括所述服务端从所述加密套件列表中选择的目标加密套件,所述服务端证书包括签名证书、加密证书和证书链,所述签名证书用于进行签名操作,所述加密证书用于进行数据加密,所述证书链用于由所述客户端验证签名证书和加密证书的真实性,以使所述客户端在对所述服务端证书验证通过的情况下,基于所述目标加密套件生成客户端会话密钥,并使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息;接收所述客户端发来的服务端会话密钥验证消息,根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,并在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息并发送给所述客户端,以使所述客户端使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证;在所述客户端会话密钥验证通过的情况下,接收客户端发来的使用所述客户端会话密钥加密的数据,并使用所述服务端会话密钥与所述客户端进行数据加密传输。

11、可选地,所述加密算法包括对称加密算法,所述方法还包括:所述客户端基于所述目标加密套件中的对称加密算法生成白盒加密算法,并使用所述白盒加密算法对所述预主密钥进行加密后存储到所述客户端。

12、根据本发明实施例的又一方面,提供了一种数据加密传输的方法,所述方法包括:客户端向服务端发送握手请求,所述握手请求包括所述客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;服务端生成握手响应、服务端证书和密钥协商请求并发送给所述客户端,所述握手响应包括所述服务端从所述加密套件列表中选择的目标加密套件,所述服务端证书包括签名证书、加密证书和证书链,所述签名证书用于进行签名操作,所述加密证书用于进行数据加密,所述证书链用于由所述客户端验证签名证书和加密证书的真实性;所述客户端对所述服务端证书进行验证,在验证通过的情况下,基于所述目标加密套件生成客户端会话密钥,并使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息,将所述服务端会话密钥验证消息发送给所述服务端;所述服务端根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,并在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息并发送给所述客户端;所述客户端使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证;在所述客户端会话密钥验证通过的情况下,使用所述客户端会话密钥与所述服务端进行数据加密传输;所述服务端使用所述服务端会话密钥与所述客户端进行数据加密传输。

13、可选地,所述加密算法包括对称加密算法,所述方法还包括:所述客户端基于所述目标加密套件中的对称加密算法生成白盒加密算法,并使用所述白盒加密算法对所述预主密钥进行加密后存储到所述客户端。

14、根据本发明实施例的又一方面,提供了一种数据加密传输的装置,所述装置位于客户端,所述装置包括:握手请求模块,用于向服务端发送握手请求,所述握手请求包括所述客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;响应接收模块,用于接收所述服务端返回的握手响应、服务端证书和密钥协商请求,所述握手响应包括所述服务端从所述加密套件列表中选择的目标加密套件,所述服务端证书包括签名证书、加密证书和证书链,所述签名证书用于进行签名操作,所述加密证书用于进行数据加密,所述证书链用于由所述客户端验证签名证书和加密证书的真实性;密钥协商模块,用于对所述服务端证书进行验证,在验证通过的情况下,基于所述目标加密套件生成客户端会话密钥,并使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息,将所述服务端会话密钥验证消息发送给所述服务端,以使所述服务端根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,并在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息;密钥验证模块,用于接收所述客户端会话密钥验证消息,使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证;第一数据传输模块,用于在所述客户端会话密钥验证通过的情况下,使用所述客户端会话密钥与所述服务端进行数据加密传输。

15、根据本发明实施例的又一方面,提供了一种数据加密传输的装置,所述装置位于服务端,所述装置包括:请求接收模块,用于接收客户端发来的握手请求,所述握手请求包括所述客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;响应返回模块,用于生成握手响应、服务端证书和密钥协商请求并发送给所述客户端,所述握手响应包括所述服务端从所述加密套件列表中选择的目标加密套件,所述服务端证书包括签名证书、加密证书和证书链,所述签名证书用于进行签名操作,所述加密证书用于进行数据加密,所述证书链用于由所述客户端验证签名证书和加密证书的真实性,以使所述客户端在对所述服务端证书验证通过的情况下,基于所述目标加密套件生成客户端会话密钥,并使用所述客户端会话密钥和所述服务端证书生成服务端会话密钥验证消息;密钥协商验证模块,用于接收所述客户端发来的服务端会话密钥验证消息,根据所述服务端会话密钥验证消息和所述服务端证书的私钥进行服务端会话密钥验证,并在验证通过的情况下使用服务端会话密钥生成客户端会话密钥验证消息并发送给所述客户端,以使所述客户端使用所述客户端会话密钥对所述客户端会话密钥验证消息进行解密并进行客户端会话密钥验证;第二数据传输模块,用于在所述客户端会话密钥验证通过的情况下,接收客户端发来的使用所述客户端会话密钥加密的数据,并使用所述服务端会话密钥与所述客户端进行数据加密传输。

16、根据本发明实施例的又一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的数据加密传输的方法。

17、根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的数据加密传输的方法。

18、上述发明中的一个实施例具有如下优点或有益效果:通过向服务端发送握手请求,所述握手请求包括客户端支持的加密套件列表,其中,每个加密套件包括的加密算法是国密算法;接收服务端返回的握手响应、服务端证书和密钥协商请求,握手响应包括所述服务端从加密套件列表中选择的目标加密套件,服务端证书包括签名证书、加密证书和证书链,签名证书用于进行签名操作,加密证书用于进行数据加密,证书链用于由客户端验证签名证书和加密证书的真实性;对服务端证书进行验证,在验证通过的情况下,客户端和服务端进行会话密钥协商和密钥验证,并在密钥验证通过后,使用会话密钥进行数据加密传输的技术方案,通过将加密库中核心的加密算法由国际算法全部切换成国密相关的算法实现,且证书管理部分添加成国密ssl协议特有的双证书处理模式,使得在使用boringssl加密库等仅支持国际算法的加密库来进行数据传输时,可以对国家关键信息等重要数据进行安全保护,从而更好的保障数据的安全性和保密性,避免了数据安全风险,提高了加密库的适用性。同时,本发明的加密套件采用高效的国密算法,具有较高的加密和解密性能,可以提高用户的网络使用体验。通过使用白盒加密算法对客户端本地的密钥进行加密存储,可以更好地管理和保护密钥,减少密钥泄漏的风险,进一步提高数据传输的安全性。

19、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

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