CN115314214A - 一种基于支持硬件加速国密算法的tls协议实现方法 - Google Patents
一种基于支持硬件加速国密算法的tls协议实现方法 Download PDFInfo
- Publication number
- CN115314214A CN115314214A CN202210693029.7A CN202210693029A CN115314214A CN 115314214 A CN115314214 A CN 115314214A CN 202210693029 A CN202210693029 A CN 202210693029A CN 115314214 A CN115314214 A CN 115314214A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- key
- algorithm
- handshake
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000001133 acceleration Effects 0.000 title claims abstract description 26
- 238000004891 communication Methods 0.000 claims abstract description 22
- 230000003993 interaction Effects 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于支持硬件加速国密算法的TLS协议实现方法,包括以下步骤:步骤1、配置客户端协议版本、签名算法、密码套件列表;步骤2、客户端生成公私钥、密钥交换参数;步骤3、客户端生成握手请求消息传至服务端;步骤4、服务端选择通讯协议、签名证书、密码套件;步骤5、服务端生成公私钥、密钥交换参数、共享密钥;步骤6、服务端生成握手回应消息传至客户端并得到会话密钥;步骤7、服务端对签名证书进行加密传至客户端;步骤8、客户端息得到会话密钥;步骤9、客户端通过会话密钥对服务端签名证书进行解密和验证完成握手;步骤10、服务端、客户端进行消息交互。本发明既能保证通信的安全性,又提升了运行效率。
Description
技术领域
本发明涉及通讯协议方法领域,具体是一种基于支持硬件加速国密算法的TLS协议实现方法。
背景技术
国密算法,即国家商用密码算法,是由国家密码管理局认定和公布的密码算法标准及其应用规范,包括SM系列等。TLS是国际标准的通讯传输层安全协议,在保护用户数据机密性、完整性以及身份鉴别等方面发挥了重大作用。目前国际标准的TLS1.3协议中的密钥协商以及配套的密码套件并不支持国密算法;而现行对应TLS的国家标准GB/T 38636-2020信息安全技术传输层密码协议(TLCP),其握手过程类似TLS1.2,并没有引入TLS1.3的新特性;同时目前国内大部分基于golang的国密TLS协议实现,使用的国密算法仍是纯软实现,性能上相较对应的国际算法有差距。
发明内容
本发明的目的是提供一种于支持硬件加速国密算法的TLS协议实现方法,以解决现有技术纯软国密算法套件实现的TLS协议安全性和性能表现较差的问题。
为了达到上述目的,本发明所采用的技术方案为:
一种基于支持硬件加速国密算法的TLS协议实现方法,包括以下步骤:
步骤1、配置客户端的TLS协议版本列表、签名算法列表、密码套件列表,其中客户端的TLS协议版本列表中以TLS1.3协议作为优先级最高的通讯协议,客户端的签名算法列表中以签名证书SM2-with-SM3作为优先级最高的签名证书,客户端的密码套件列表中以国密密码套件TLS_SM4_GCM_SM3作为优先级最高的密码套件;
步骤2、客户端采用密钥算法生成客户端的公钥、私钥以及密钥交换参数;
步骤3、客户端将步骤1中TLS协议版本列表信息、签名算法列表信息、密码套件列表信息以及步骤2中密钥算法信息和密钥交换参数,组合为握手请求消息,并由客户端将所述握手请求消息传输至服务端;
步骤4、服务端收到客户端发送的握手请求消息后,根据握手请求消息包含的内容,选择优先级最高的TLS1.3协议作为服务端与客户端之间的通讯协议、选择签名证书SM2-with-SM3作为服务端的签名证书,以及选择国密密码套件TLS_SM4_GCM_SM3作为服务端的密码套件;
步骤5、服务端根据握手请求消息包含的内容,采用与客户端相同的密钥算法生成服务端的公钥、私钥以及密钥交换参数,并结合客户端的密钥交换参数计算出客户端、服务端双方的共享密钥;
步骤6、服务端将步骤4中服务端的通讯协议信息、签名证书信息、密码套件信息以及步骤5中的密钥算法信息、密钥交换参数,组合为握手回应消息,由服务端将握手回应消息传输至客户端,并且服务端通过步骤5得到的共享密钥派生得到会话密钥;
步骤7、服务端通过步骤6得到的会话密钥对服务端选择的签名证书进行加密,并由服务端将加密的签名证书传输至客户端;
步骤8、客户端收到服务端发送的握手回应消息后,根据握手回应消息的内容,采用密钥算法,基于服务端的密钥交换参数、客户端的公钥,计算得到所述共享密钥,并通过共享密钥派生得到所述会话密钥;
步骤9、客户端通过步骤8得到的会话密钥,对收到的服务端的签名证书进行解密和验证,验证通过完成服务端、客户端的握手;
步骤10、握手完成后,服务端、客户端双方进行消息交互,消息交互时通过所述会话密钥对信息进行加解密和验证。
进一步的,步骤1所述的国密密码套件TLS_SM4_GCM_SM3中,使用SM4算法作为握手成功后的通信用对称加密算法,使用SM3作为作为GCM分组模式中的验证算法。
进一步的,所述密钥算法为椭圆曲线加密算法,具体采用SM2曲线SM2-P-256。
步骤2中,客户端将椭圆曲线ID和客户端公钥作为客户端的密钥交换参数;步骤5中,服务端将椭圆曲线ID和服务端的公钥作为服务端的密钥交换参数。
步骤5中,服务端根据椭圆曲线、客户端密钥交换参数中包含的公钥、服务端的私钥计算得到共享密钥;步骤8中,客户端根据椭圆曲线、服务端密钥交换参数中包含的服务端公钥、客户端的公钥计算得到所述共享密钥。
进一步的,步骤6中,服务端派生得到的会话密钥根据需要进行更新。
本发明提供了一种基于支持硬件加速国密算法的TLS协议实现方法。本发明实现了支持硬件加速的国密算法SM2、SM3、SM4,以提升运算效率;然后将前述国密算法应用于TLS1.3协议的实现,既能保证通信的安全性,又提升了运行效率。因此,本发明相比现有技术基于golang的国密TLS协议,具有以下优点:
1.相比国际标准的TLS1.3,本发明方法的密钥协商过程支持国密椭圆曲线SM2-P-256,并采用国密算法的密码套件TLS_SM4_GCM_SM3,在安全自主可控上有明显优势。
2.相比国家标准的TLCP,本发明方法的握手过程支持TLS1.3的新特性,更加安全,也更加高效。(使用更少的通信来回,协商出更安全的会话密钥)
3.相比目前基于golang的主流的国密TLS实现库,通过使用支持硬件加速功能的国密算法,有效提高了TLS握手过程的性能表现。
附图说明
图1是本发明实施例方法流程框图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1所示,本实施例提供了一种将国密算法应用于TLS1.3协议的实现方法,基本过程与TLS1.3标准(RFC 8446)一致,但在服务端与客户端进行密钥协商过程中,支持使用SM2-P-256曲线进行密钥交换,并添加了密码套件TLS_SM4_GCM_SM3,该密码套件使用支持硬件加速的国密算法SM3与SM4,本实施例具体包括以下步骤:
(1)配置客户端支持的TLS协议版本列表,TLS协议版本列表包括优先级最高的通讯协议TLS1.3。
开始握手之前,客户端需要准备握手请求消息ClientHello,从支持的TLS协议版本列表开始,通过配置客户端的TLS协议版本列表,使TLS协议版本列表支持的最高版本是TLS1.3。
(2)配置客户端支持的签名算法列表,加入支持硬件加速的签名证书SM2-with-SM3。
国际标准的TLS1.3支持的签名算法没有支持硬件加速的国密签名算法SM2-with-SM3,本实施例将签名证书SM2-with-SM3加入到客户端的签名算法列表中,并作为优先选择。
(3)配置客户端支持的密码套件列表,加入支持硬件加速的密码套件TLS_SM4_GCM_SM3。
目前,现有国际标准的TLS1.3支持的密码套件只有以下三个:
TLS_AES_128_GCM_SHA256;
TLS_AES_256_GCM_SHA384;
TLS_CHACHA20_POLY1305_SHA256、
本实施例采用新的国密密码套件TLS_SM4_GCM_SM3,该国密密码套件TLS_SM4_GCM_SM3标准定义如下:
密码套件标准名称:TLS_SM4_GCM_SM3;
用途:该密码套件为支持国密的TLS1.3握手过程中可协商的密码套件,用于后续连接会话通信中使用的对称加密算法与验证算法。
说明:该密码套件TLS_SM4_GCM_SM3使用支持硬件加速的SM4算法作为TLS握手成功后的通信用对称加密算法,其加密强度为128位,分组模式为GCM;并且该密码套件使用支持硬件加速的SM3作为作为GCM分组模式中的验证算法,用于TLS通信中的消息验证。
(4)在客户端使用支持硬件加速的椭圆曲线SM2P256生成密钥交换参数。
本步骤中,客户端使用椭圆曲线加密算法生成自己的公、私钥,并将椭圆曲线ID与客户端的公钥作为密钥交换参数,用于同服务端协商一个共享的密钥。本实施例椭圆曲线加密算法中采用支持硬件加速的SM2曲线SM2-P-256作为生成公、私钥的曲线使用。
(5)组合握手请求消息ClientHello发送给服务端
本步骤中,客户端将TLS协议版本列表信息、签名算法列表信息、密码套件列表信息以及密钥算法信息和密钥交换参数,组合为握手请求消息ClientHello发送给服务端。
该步骤为明文发送。虽然是明文,但即使被拦截,也只有椭圆曲线ID和客户端公钥暴露,拦截者无法推算出客户端私钥,也就无法计算出双方的共享密钥。相比传统的RSA等算法的好处是安全强度更高,且本实施例使用国密的椭圆曲线SM2,更加自主可控,相比国标的ECC曲线不必担心曲线有后门等安全问题。
(6)服务端接收到握手请求消息ClientHello,根据握手请求消息包含的内容选择TLS版本,优先选择TLS1.3。
本步骤中,服务端接收到握手请求消息ClientHello后,先根据客户端与自己都支持的TLS协议,选择其中最高的版本TLS1.3,作为服务端与客户端协商确定的通讯协议。
(7)服务端协商密码套件,根据握手请求消息包含的内容,优先选择支持硬件加速的密码套件TLS_SM4_GCM_SM3。
本步骤中,服务端根据客户端与自己都支持的密码套件列表,选择密码套件TLS_SM4_128_GCM_SM3作为最优先的密码套件。
(8)服务端使用支持硬件加速的SM2曲线SM2-P-256生成服务端的密钥交换参数。
本步骤中,服务端同样使用椭圆曲线加密算法,并采用支持硬件加速的SM2曲线SM2-P-256生成服务端的公私钥,并将椭圆曲线ID与服务端的公钥作为服务端的密钥交换参数,后续步骤会发送给客户端用于计算共享密钥。
(9)服务端基于支持硬件加速的SM2曲线SM2-P-256生成的密钥参数与客户端密钥交换参数计算共享密钥。
本步骤中,服务端已经知道的SM2曲线SM2-P-256,并从客户端的密钥交换参数中得到客户端的公钥,再结合服务端自己的私钥,因此可以计算出共享密钥。
(10)服务端根据客户端支持的签名算法选择服务端证书,优先使用支持硬件加速的签名证书SM2-with-SM3。
本步骤中,服务端继续根据客户端支持的签名算法,选择相同的签名证书SM2-with-SM3,用于后续发送给客户端验证自己的身份。
(11)服务端发送握手回应消息ServerHello给客户端。
本步骤中,服务端准备基本完成后,将服务端的通讯协议信息、签名证书信息、密码套件信息、密钥算法信息、密钥交换参数,组合为握手回应消息ServerHello发送给客户端。该步骤为明文发送。
虽然是明文,但即使被拦截,也只有椭圆曲线ID和服务端公钥暴露,拦截者无法推算出服务端私钥,也就无法计算出双方的共享密钥。因此相比传统的RSA等算法的好处是安全强度更高,且本实施例使用国密的椭圆曲线SM2,更加自主可控,相比传统的国标的ECC曲线不必担心曲线有后门等安全问题。
(12)服务端基于共享密钥计算本次连接会话密钥并开始使用。
本步骤中,服务端发送握手回应消息ServerHello之后,不必等客户端回信,即可马上开始使用步骤9计算出的服务端的共享密钥进一步派生出本次连接的会话密钥,并开始使用。从这里开始,使用密码套件TLS_SM4_GCM_SM3来对通信内容做对称加解密和校验。同时会话密钥可以在后续必要时进行更新,即采用TLS_SM4_GCM_SM3密码套件中的SM4作为加密算法,SM3作为校验算法,会话密钥作为SM4加密密钥。
(13)服务端发送签名证书以及其他必要消息。
本步骤中,服务端采用会话密钥并基于密码套件TLS_SM4_GCM_SM3中的算法对步骤10选择好的服务端的签名证书以及其他必要消息进行加密后,再发送给客户端。
(14)客户端接收到握手回应消息ServerHello,基于支持硬件加速的SM2曲线SM2-P-256以及密钥交换参数计算共享密钥。
本步骤中,客户端会先接收到握手回应消息ServerHello,此时客户端也同时知道了椭圆曲线SM2-P-256,并从服务端的密钥交换参数中得到服务端公钥,再结合客户端的公钥,因此也可以计算出双方的共享密钥。
(15)客户端基于共享密钥计算本次连接会话密钥并开始使用。
本步骤中,客户端进一步根据共享密钥派生本次连接的会话密钥,并开始使用。从这里开始,使用会话密钥并基于密码套件TLS_SM4_GCM_SM3中的算法来对通信内容做对称加解密和校验。同时会话密钥可以在后续必要时进行更新。
(16)客户端接收服务端的签名证书及其他必要消息.
本步骤中,在此之后客户端接收到服务端发送的后续握手消息,包括服务端的签名证书等,都使用双方已经协商好的会话密钥并基于密码套件TLS_SM4_GCM_SM3进行解密和验证。
(17)握手完成开始收发消息。
客户端验证通过服务端发送的签名证书后,客户端、服务端握手完成,客户端、服务端双方开始正常收发消息。正常收发消息时使用双方已经协商好的会话密钥密码套件TLS_SM4_GCM_SM3进行加解密和验证。
目前golang的主流国密算法库中的SM2/SM3/SM4算法都是纯软实现的计算逻辑,安全性上当然比国际主流的ECDCH/SHA256/AES要更自主可控,但性能上差距较大。本实施例使用基于golang的,支持硬件加速的SM2/SM3/SM4算法代替这些纯软实现的国密算法。硬件加速功能是根据具体的CPU架构,比如AMD64架构,通过AVX2等指令集来进行相关性能优化,目前有一些golang开源项目已经初步实现。硬件加速功能本身不是本方法设计范围。
本实施例还公开了一种将国密算法应用于TLS1.3协议的实现系统,该系统包括客户端的处理器、可读存储介质,以及服务端的处理器、可读存储介质。客户端的处理器读取相应可读存储介质中的程序时,完成本实施例方法步骤(1)-步骤(5),以及步骤(14)-步骤(17)。服务端的处理器读取相应可读存储介质中的程序时,完成本实施例方法步骤(6)-步骤(13),以及步骤(17)。
其中,客户端的可读存储介质中的程序包括配置模块、处理模块、消息交互模块。配置模块用于实现对客户端TLS协议版本列表、签名算法列表、密码套件列表、密钥算法的配置;处理模块用于实现组合握手请求信息以及计算客户端的公钥、私钥、密钥交换参数、共享密钥、会话密钥;消息交互模块用于实现客户端与服务端的消息交互。
服务端的可读存储介质中的程序包括选择模块、处理模块、消息交互模块。选择模块用于实现客户端对TLS协议版本、签名算法、密码套件、密钥算法的选择;处理模块用于实现组合握手回应消息以及计算服务端的公钥、私钥、密钥交换参数、共享密钥、会话密钥;消息交互模块用于实现服务端与客户端的消息交互。
本发明所述的实施例仅仅是对本发明的优选实施方式进行的描述,并非对本发明构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中工程技术人员对本发明的技术方案作出的各种变型和改进,均应落入本发明的保护范围,本发明请求保护的技术内容,已经全部记载在权利要求书中。
Claims (7)
1.一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,包括以下步骤:
步骤1、配置客户端的TLS协议版本列表、签名算法列表、密码套件列表,其中客户端的TLS协议版本列表中以TLS1.3协议作为优先级最高的通讯协议,客户端的签名算法列表中以签名证书SM2-with-SM3作为优先级最高的签名证书,客户端的密码套件列表中以国密密码套件TLS_SM4_GCM_SM3作为优先级最高的密码套件;
步骤2、客户端采用密钥算法生成客户端的公钥、私钥以及密钥交换参数;
步骤3、客户端将步骤1中TLS协议版本列表信息、签名算法列表信息、密码套件列表信息以及步骤2中密钥算法信息和密钥交换参数,组合为握手请求消息,并由客户端将所述握手请求消息传输至服务端;
步骤4、服务端收到客户端发送的握手请求消息后,根据握手请求消息包含的内容,选择优先级最高的TLS1.3协议作为服务端与客户端之间的通讯协议、选择签名证书SM2-with-SM3作为服务端的签名证书,以及选择国密密码套件TLS_SM4_GCM_SM3作为服务端的密码套件;
步骤5、服务端根据握手请求消息包含的内容,采用与客户端相同的密钥算法生成服务端的公钥、私钥以及密钥交换参数,并结合客户端的密钥交换参数计算出客户端、服务端双方的共享密钥;
步骤6、服务端将步骤4中服务端的通讯协议信息、签名证书信息、密码套件信息以及步骤5中的密钥算法信息、密钥交换参数,组合为握手回应消息,由服务端将握手回应消息传输至客户端,并且服务端通过步骤5得到的共享密钥派生得到会话密钥;
步骤7、服务端通过步骤6得到的会话密钥对服务端选择的签名证书进行加密,并由服务端将加密的签名证书传输至客户端;
步骤8、客户端收到服务端发送的握手回应消息后,根据握手回应消息的内容,采用密钥算法,基于服务端的密钥交换参数、客户端的公钥,计算得到所述共享密钥,并通过共享密钥派生得到所述会话密钥;
步骤9、客户端通过步骤8得到的会话密钥,对收到的服务端的签名证书进行解密和验证,验证通过完成服务端、客户端的握手;
步骤10、握手完成后,服务端、客户端双方进行消息交互,消息交互时通过所述会话密钥对信息进行加解密和验证。
2.根据权利要求1所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,步骤1所述的国密密码套件TLS_SM4_GCM_SM3中,使用SM4算法作为握手成功后的通信用对称加密算法,使用SM3作为作为GCM分组模式中的验证算法。
3.根据权利要求1所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,所述密钥算法为椭圆曲线加密算法。
4.根据权利要求3所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,所述椭圆曲线加密算法采用SM2曲线SM2-P-256。
5.根据权利要求3或4所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,步骤2中,客户端将椭圆曲线ID和客户端公钥作为客户端的密钥交换参数;步骤5中,服务端将椭圆曲线ID和服务端的公钥作为服务端的密钥交换参数。
6.根据权利要求5所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,步骤5中,服务端根据椭圆曲线、客户端密钥交换参数中包含的公钥、服务端的私钥计算得到共享密钥;步骤8中,客户端根据椭圆曲线、服务端密钥交换参数中包含的服务端公钥、客户端的公钥计算得到所述共享密钥。
7.根据权利要求1所述的一种基于支持硬件加速国密算法的TLS协议实现方法,其特征在于,步骤6中,服务端派生得到的会话密钥根据需要进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210693029.7A CN115314214B (zh) | 2022-06-17 | 2022-06-17 | 一种基于支持硬件加速国密算法的tls协议实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210693029.7A CN115314214B (zh) | 2022-06-17 | 2022-06-17 | 一种基于支持硬件加速国密算法的tls协议实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314214A true CN115314214A (zh) | 2022-11-08 |
CN115314214B CN115314214B (zh) | 2024-10-15 |
Family
ID=83854401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210693029.7A Active CN115314214B (zh) | 2022-06-17 | 2022-06-17 | 一种基于支持硬件加速国密算法的tls协议实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314214B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115955302A (zh) * | 2022-12-02 | 2023-04-11 | 杭州脉讯科技有限公司 | 一种基于协同签名的国密安全通信方法 |
CN116685001A (zh) * | 2023-06-12 | 2023-09-01 | 成都理工大学 | 带有动态加密功能的Lora自组网通讯方法 |
CN117424742A (zh) * | 2023-11-03 | 2024-01-19 | 中国人民解放军国防科技大学 | 一种无感知传输层安全协议会话密钥还原方法 |
CN117749413A (zh) * | 2023-11-15 | 2024-03-22 | 中金金融认证中心有限公司 | 基于tlcp商密协议的安全通信方法及安全通信系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118027A (zh) * | 2013-02-05 | 2013-05-22 | 中金金融认证中心有限公司 | 基于国密算法建立tls通道的方法 |
WO2016086546A1 (zh) * | 2014-12-02 | 2016-06-09 | 中国科学院声学研究所 | 网络保密数据明文的采集方法及系统 |
KR20190129478A (ko) * | 2018-05-11 | 2019-11-20 | 국민대학교산학협력단 | Ssl/tls 기반의 네트워크 보안 장치 및 방법 |
CN110995414A (zh) * | 2019-12-23 | 2020-04-10 | 中金金融认证中心有限公司 | 基于国密算法在tls1_3协议中建立通道的方法 |
-
2022
- 2022-06-17 CN CN202210693029.7A patent/CN115314214B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118027A (zh) * | 2013-02-05 | 2013-05-22 | 中金金融认证中心有限公司 | 基于国密算法建立tls通道的方法 |
WO2016086546A1 (zh) * | 2014-12-02 | 2016-06-09 | 中国科学院声学研究所 | 网络保密数据明文的采集方法及系统 |
KR20190129478A (ko) * | 2018-05-11 | 2019-11-20 | 국민대학교산학협력단 | Ssl/tls 기반의 네트워크 보안 장치 및 방법 |
CN110995414A (zh) * | 2019-12-23 | 2020-04-10 | 中金金融认证中心有限公司 | 基于国密算法在tls1_3协议中建立通道的方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115955302A (zh) * | 2022-12-02 | 2023-04-11 | 杭州脉讯科技有限公司 | 一种基于协同签名的国密安全通信方法 |
CN116685001A (zh) * | 2023-06-12 | 2023-09-01 | 成都理工大学 | 带有动态加密功能的Lora自组网通讯方法 |
CN116685001B (zh) * | 2023-06-12 | 2024-06-11 | 成都理工大学 | 带有动态加密功能的Lora自组网通讯方法 |
CN117424742A (zh) * | 2023-11-03 | 2024-01-19 | 中国人民解放军国防科技大学 | 一种无感知传输层安全协议会话密钥还原方法 |
CN117424742B (zh) * | 2023-11-03 | 2024-03-26 | 中国人民解放军国防科技大学 | 一种无感知传输层安全协议会话密钥还原方法 |
CN117749413A (zh) * | 2023-11-15 | 2024-03-22 | 中金金融认证中心有限公司 | 基于tlcp商密协议的安全通信方法及安全通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115314214B (zh) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792169B2 (en) | Cloud storage using encryption gateway with certificate authority identification | |
CN110380852B (zh) | 双向认证方法及通信系统 | |
US8438628B2 (en) | Method and apparatus for split-terminating a secure network connection, with client authentication | |
CN115314214B (zh) | 一种基于支持硬件加速国密算法的tls协议实现方法 | |
US8788805B2 (en) | Application-level service access to encrypted data streams | |
CN108650210A (zh) | 一种认证系统和方法 | |
WO2017106793A1 (en) | Systems and methods for secure multi-party communications using a proxy | |
EP2173055A1 (en) | A method, a system, a client and a server for key negotiating | |
US20210367767A1 (en) | Methods and systems for secure network communication | |
CN109861813B (zh) | 基于非对称密钥池的抗量子计算https通信方法和系统 | |
WO2016107322A1 (zh) | 安全浏览器的实现方法和安全浏览器装置 | |
WO2019100217A1 (zh) | 生物识别信息传输建立方法、装置、系统及存储介质 | |
CN112637136A (zh) | 加密通信方法及系统 | |
US10630466B1 (en) | Apparatus and method for exchanging cryptographic information with reduced overhead and latency | |
CN102857479A (zh) | 网络通讯的加密方法和系统 | |
WO2018231519A1 (en) | Cloud storage using encryption gateway with certificate authority identification | |
US20240113885A1 (en) | Hub-based token generation and endpoint selection for secure channel establishment | |
US20230080139A1 (en) | Communication method and communications apparatus | |
JP2020532177A (ja) | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 | |
CN108040071B (zh) | 一种VoIP音视频加密密钥动态切换方法 | |
US20240154944A1 (en) | Encrypted data communication and gateway device for encrypted data communication | |
WO2020042023A1 (zh) | 一种即时通信的数据加密方法及装置 | |
CN109474667B (zh) | 一种基于tcp和udp的无人机通信方法 | |
KR20040013966A (ko) | 이동 통신망에서의 인증 및 키 합의 방법 | |
CN114707158A (zh) | 基于tee的网络通信认证方法以及网络通信认证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |