双证书部署的核心,是让服务器能根据客户端类型,自动选择最合适的加密通道。这个过程对用户完全透明,就像一条智能的“双向车道”,一边是面向全球的国际标准通道,另一边是符合中国合规要求的国密标准通道。

一、国际标准通道握手流程  (以TLS  1.2为例)

当用户使用Chrome、Firefox等国际通用浏览器访问时,会触发此流程。它遵循`RFC  4346`等国际标准,特点是服务器使用一张证书同时完成身份认证和密钥交换。

1.    `Client  Hello`:客户端发送请求,附带自身支持的加密套件列表和一个随机数(`ClientRandom`)。

2.    `Server  Hello`:服务器从中选择一组双方都支持的加密套件,并回复自己的随机数(`ServerRandom`)。

3.    `Certificate`:服务器发送其唯一的RSA/ECC证书给客户端。

4.    `Server  Hello  Done`:服务器表明初始协商消息已发送完毕。

5.    `Client  Key  Exchange`:客户端验证证书后,生成一个“预备主密钥”(Pre-Master  Secret),并用服务器证书中的公钥加密后发送给服务器。

6.    `Change  Cipher  Spec  &  Finished`:双方使用`ClientRandom`、`ServerRandom`和`Pre-Master  Secret`,通过相同算法计算出相同的“主密钥”和“会话密钥”。随后,双方发送`Finished`消息,验证整个握手过程未被篡改,并切换至加密通信。

二、中国密码通道握手流程  (以国密TLCP为例)

当用户使用360国密浏览器、红莲花浏览器等国密浏览器访问时,会触发此流程。它主要遵循`GM/T  0024-2014《SSL  VPN技术规范》`,特点是服务器使用两张证书:一张用于签名的签名证书和一张用于加密的加密证书。

1.    `Client  Hello`:客户端发起请求,表明自己支持国密协议(如TLCP  1.1)和国密套件(如`TLCP_ECC_SM4_GCM_SM3`)。

2.    `Server  Hello`:服务器选定双方都支持的国密协议版本和加密套件。

3.    `Certificate`:服务器同时发送签名证书和加密证书两张SM2证书给客户端。

4.    `Server  Key  Exchange`:服务器使用签名证书的私钥,对密钥交换的关键参数进行签名,以证明身份。

5.    客户端验证:客户端验证两张证书的合法性,并校验`Server  Key  Exchange`中的签名是否正确。

6.    `Client  Key  Exchange`:客户端生成“预备主密钥”,并使用服务器加密证书的公钥进行加密后发送。

7.    密钥派生:双方基于SM3算法,从预备主密钥和随机数中派生出相同的“主密钥”和“会话密钥”。

8.    `Change  Cipher  Spec  &  Finished`:与TLS  1.2类似,双方切换至加密通信,并发送`Finished`消息验证握手完整性。

三、核心差异对比

对比维度      🌍  国际标准通道  (TLS  1.2)      🇨🇳  中国密码通道  (国密TLCP)  

遵循标准          国际标准  (RFC  4346等)      国家标准  (GM/T  0024-2014)  

核心算法          RSA/ECC,  AES,  SHA系列      SM2,  SM4,  SM3  

证书体系              单证书:一张证书兼具签名和加密功能          双证书:签名证书  +  加密证书,功能分离  

密钥交换          RSA/ECDHE  密钥协商      SM2  密钥交换协议  (ECDHE_SM2)  

主要目标          全球通用性与兼容性      满足国内合规要求与自主可控  

双证书部署方案并非简单的技术叠加,而是一种兼顾合规与兼容的智慧设计。它通过“国际/国密双轨制”,在一套系统中实现了两种安全标准的无缝切换,既满足了国内的密码合规要求,又保障了全球用户的访问体验。