课题研究 PKI与证书信任安全 子课题05 · 第04页 / 共8页
05子课题 · 国密SM2证书体系与信任生态

TLCP协议与传输安全机制第04页:TLCP协议与传输安全机制

TLCP(Transport Layer Cryptography Protocol,传输层密码协议)是国密体系的传输层安全协议国家标准(GB/T 38636-2020,2020年4月28日发布、2020年11月1日实施),其前身是2014年发布的密码行业标准GM/T 0024-2014《SSL VPN技术规范》。TLCP以SM2/SM3/SM4算法族与双证书架构为核心,定义记录层协议、握手协议族与密钥计算规则,支撑国密HTTPS、国密SSL VPN与政务金融安全接入。本页解析TLCP的协议架构、双证书握手流程、密码套件体系,并与国际TLS 1.2/1.3及RFC 8998国密套件对照,为第6页的双栈部署实践奠定协议基础。

TLCPGB/T 38636-2020GM/T 0024-2014ECC_SM4_SM3ECDHE_SM4_SM3IBC_SM4_SM3RFC 8998双证书握手研究状态:研究中
所属专题互联网基础设施安全 › PKI与证书信任安全
目标受众安全架构师、运维工程师、网关产品团队、密评从业人员
全文结构8页:总览 → 算法体系 → 证书架构 → TLCP协议 → 认证治理 → 改造实践 → 密评合规 → 防护展望

01 · 演进脉络与标准定位

1.1 从GM/T 0024到GB/T 38636-2020

国密传输层协议的演进分两步走:GM/T 0024-2014《SSL VPN技术规范》首次系统化定义国密SSL协议——其协议框架参照TLS 1.1(协议版本标识为0x0101,GMVer 1.1),在握手协议中增加ECC(SM2证书)与IBC(SM9标识)两类认证模式及配套密钥交换模式,取消传统DH密钥交换,并针对SSL VPN场景增加了网关-网关协议。GB/T 38636-2020 TLCP在此基础上完成国家标准化升级:去除产品要求、检测要求等产品化内容,将标准对象聚焦于密码协议本身;增加对可鉴别加密(GCM)的支持与密码套件优化;标准化表述全面规范化。TLCP不再局限于SSL VPN场景,而是作为通用传输层密码协议适用于各类网络服务,成为"国密HTTPS"的协议基石。

2020.4.28
TLCP发布日期
GB/T 38636-2020由国家市场监督管理总局、国家标准化管理委员会发布
2020.11.1
TLCP实施日期
新上国密传输系统应遵循TLCP国标而非GM/T 0024行标
0x0101
TLCP协议版本标识
GM/T 0024与GB/T 38636均采用0x0101版本标识;Wireshark 3.x等主流抓包工具已内置0xE0xx国密套件解析
2类
认证模式
ECC(SM2双证书)模式与IBC(SM9标识)模式

1.2 TLCP标准起草阵容反映的产业生态

GB/T 38636-2020的主要起草单位包括山东得安、格尔软件、信安世纪、卫士通、吉大正元、三未信安、海泰方圆、江南天安、中金金融认证中心(CFCA)、天融信等——基本涵盖国产密码产品主力厂商与头部CA,说明TLCP从诞生起就是"产业共识型"标准而非单一机构产物。这一生态结构对第5页的CA生态分析与第6页的改造选型均有参考意义。

02 · 协议架构解析

2.1 分层结构

TLCP沿用了TLS式分层:上层为握手协议族(握手协议、密码规格变更协议、报警协议),下层为记录层协议。记录层负责分片、压缩(可选)、MAC/AEAD保护、加密与传输;握手层负责算法协商、身份认证(双证书)与会话密钥建立。

2.2 密码套件体系

套件密钥交换加密/MAC认证模式
ECC_SM4_SM3SM2密钥交换(静态加密证书密钥)SM4-CBC + HMAC-SM3ECC(双证书)
ECDHE_SM4_SM3SM2临时密钥交换(前向安全)SM4-CBC + HMAC-SM3ECC(双证书)
IBC_SM4_SM3SM9标识密钥交换SM4-CBC + HMAC-SM3IBC(SM9)
GCM变体套件对应上述交换方式SM4-GCM可鉴别加密(AEAD)ECC/IBC

2.3 套件标识速查(GB/T 38636-2020 密码套件列表)

套件名称套件标识说明
ECDHE_SM4_CBC_SM30xE011SM2临时密钥交换(前向安全)+SM4-CBC+SM3
ECDHE_SM4_GCM_SM30xE051SM2临时密钥交换+SM4-GCM(AEAD一体化)
ECC_SM4_CBC_SM30xE013SM2静态加密密钥+SM4-CBC+SM3(无前向安全)
ECC_SM4_GCM_SM30xE053SM2静态加密密钥+SM4-GCM
IBSDH_SM4_CBC_SM3 / GCM0xE015 / 0xE055SM9标识密钥交换(DH协商型)
IBC_SM4_CBC_SM3 / GCM0xE017 / 0xE057SM9标识密钥交换(加密传输型)
RSA_SM4_CBC_SM3 等兼容套件0xE019 / 0xE059等过渡兼容性质,密评场景不应默认启用

注:套件标识经GB/T 38636-2020套件列表与GmSSL、gotlcp、Wireshark等公开实现源码交叉核对(Wireshark源码epan/dissectors/packet-tls-utils.c收录全部0xE0xx国密套件)。

套件演进体现两个趋势:①从前向安全性较弱的静态密钥交换(ECC_SM4_SM3)向前向安全的临时交换(ECDHE_SM4_SM3)迁移;②从CBC+MAC的"加密与校验分离"向GCM的AEAD一体化迁移。这与国际TLS 1.2→1.3的演进方向同构,但节奏与驱动力不同——国密侧由标准化进程与密评合规共同驱动。

2.3 密钥计算

TLCP密钥计算采用"主密钥→工作密钥"两级结构:握手协商产生预主密钥,经PRF(基于SM3/HMAC-SM3)派生主密钥,再由主密钥派生记录层的加密密钥、MAC密钥与IV。SM3在此承担全部密钥派生函数的杂凑底座,算法组合保持全链路国密化。

03 · 双证书握手流程

3.1 服务端认证握手(ECC模式)

TLCP握手流程(ECC双证书模式,简化示意)
与国际TLS的关键差异:服务端发送两张证书;密钥交换基于SM2
说明:消息序列按GB/T 38636-2020握手协议族简化;实际报文字段以标准文本为准。

3.2 双证书在握手中的分工

  • 签名证书:用于ServerKeyExchange等握手消息的签名——证明"握手的对方确实持有该主体私钥",承担身份认证职能;
  • 加密证书:其公钥用于加密客户端生成的预主密钥(或承载SM2密钥交换的静态密钥分量),承担密钥传输/协商职能——这正对应第3页所述"签名密钥自持、加密密钥KM托管"的架构在协议层的投射。

3.3 双向认证(客户端证书)

TLCP保留客户端认证能力:高安全场景(网银专业版、政务内网接入、SSL VPN)可要求客户端出示其SM2双证书,服务端验证客户端签名证书——实现通信双方的双向身份鉴别。这也是国密SSL VPN区别于普通HTTPS部署的核心能力之一,对钓鱼防护的含义将在第8页展开(双向认证使"仅仿冒服务端"的钓鱼成本显著抬高)。

04 · 与国际TLS及RFC 8998国密套件对比

4.1 协议层对比

维度TLS 1.2TLS 1.3TLCP(GB/T 38636-2020)
握手往返2-RTT(完整握手)1-RTT,支持0-RTT恢复2-RTT级(参照TLS 1.1架构)
密码套件大量历史套件,含弱套件仅5个AEAD套件,弱化协商国密套件族(ECC/IBC × CBC/GCM)
证书形态单证书单证书双证书(签名+加密)
前向安全依赖套件(ECDHE套件具备)强制前向安全ECDHE_SM4_SM3套件具备
中间件兼容成熟成熟国际设备/中间盒识别能力弱,常需透传或专用网关
可观测性CT强制(2018起)CT强制无CT机制

4.2 RFC 8998:走向国际框架的国密套件

IETF RFC 8998《ShangMi (SM) Cipher Suites for TLS 1.3》(2021年3月发布)定义了两个国密套件:TLS_SM4_GCM_SM3(0x00,0xC6)与TLS_SM4_CCM_SM3(0x00,0xC7)。其设计要点:保留TLS 1.3的1-RTT握手、0-RTT恢复与强制前向安全骨架;命名曲线注册curveSM2(0x0029);签名方案注册sm2sig_sm3(0x0708);服务端在TLS 1.3框架下使用双证书——签名证书用于握手签名,加密证书承载密钥交换所需的静态密钥。这一路线使国密算法可以运行在国际TLS 1.3协议栈之上,大幅降低国际互操作成本,是"算法自主+协议接轨"的代表性方案(Tongsuo/铜锁等已实现)。

选型启示:新建系统若需兼顾国际客户端与合规要求,可评估"RFC 8998套件+双证书"路线(国密TLS 1.3);对接存量国密生态(国密浏览器、SSL VPN网关)则以TLCP套件为主。二者并存期的协商策略设计详见第6页双栈部署。

05 · 部署模式与工程要点

5.1 典型部署拓扑

模式结构适用场景
网关代理模式国密SSL卸载网关部署于业务前端,后端为明文或传统TLS存量系统快速改造、集中证书管理
服务端直改模式应用服务器直接加载国密双证书(Tongsuo/GmSSL改造Nginx等)新建系统、性能敏感场景
双栈并存模式同站点同时提供国际TLS与国密TLCP(同端口协商或分端口)需同时服务国际与国密客户端
SSL VPN模式网关-网关或客户端-网关国密隧道,支持双向认证跨域互联、移动办公接入

5.2 工程要点清单

  • 证书配置:服务端须同时正确配置签名证书与加密证书,两证书密钥用法不得错配(第3页红线);证书链需包含至国密根。
  • 套件收敛:生产环境仅启用必要套件(优先ECDHE/GCM变体),禁用弱套件与静态交换套件的默认启用,除非对端兼容强制要求。
  • SNI与域名:国密网关须正确处理SNI以支持多站点;证书CN/SAN与实际域名严格一致。
  • 中间盒穿越:部分国际厂商负载均衡/WAF不能识别TLCP,需配置TCP透传或在网关层终结;上线前做全链路探测。
  • 调试工具:主流Wireshark版本可解析GM/T 0024/TLCP流量;亦可使用Tongsuo/openssl s_client的-ntls选项联调。
  • 性能:SM2握手比RSA-2048握手轻量(签名短、验签快),但国密算法在国产品密卡中的性能差异大,高并发场景应做压测基线。
双栈Nginx(Tongsuo)国密+国际双证书配置示意
server {
    listen 443 ssl;
    # 国际证书(单证书)
    ssl_certificate     rsa.crt;
    ssl_certificate_key rsa.key;
    # 国密双证书(签名+加密)
    ssl_sign_certificate      sm2_sign.crt;
    ssl_sign_certificate_key  sm2_sign.key;
    ssl_enc_certificate       sm2_enc.crt;
    ssl_enc_certificate_key   sm2_enc.key;
    # 同时启用国密TLS与国际套件,按客户端能力协商
    ssl_ciphersuites "TLS_SM4_GCM_SM3:TLS_AES_128_GCM_SHA256";
    enable_ntls on;
}

06 · 安全性分析

6.1 协议层风险

风险说明缓解
静态套件无前向安全ECC_SM4_SM3套件使用静态加密密钥参与交换,长期私钥泄露可回溯解密历史会话优先ECDHE套件;对保密性要求高的通道禁用静态套件
协商降级双栈部署中攻击者可能强制降级到非国密通道或弱套件回退白名单+审计留痕(第6页);强制国密场景关闭国际通道
私钥集中存放网关模式下一台设备承载大量服务端私钥(含KM托管接口),成为高价值目标网关HSM化;私钥分级;访问与操作审计
实现缺陷部分早期国密SSL实现对证书链校验、时间窗校验不严格以标准符合性测试用例回归;选用过检测认证的产品
可观测性缺失无CT机制使伪造/误签国密证书难以被全网发现CA侧签发监控+国密浏览器黑名单生态(第8页)

6.2 与国际TLS的同构教训

国际TLS三十年的安全史(子课题04)表明:传输协议的实际安全水位由"默认配置、实现质量、密钥管理"三者决定,协议文本本身只是上限。TLCP同样遵循这一规律——密评与产品检测认证制度(第7页)正是为把"实现质量"纳入强制轨道而设。研究者与使用者应把关注重心从"协议是否国密"转向"套件是否收敛、私钥是否合规托管、回退是否受控、审计是否留痕"。

07 · 开源实现生态对照

项目背景协议/能力支持典型用途
Tongsuo(铜锁)蚂蚁集团开源,OpenSSL衍生TLCP双证书(NTLS)、RFC 8998套件、OpenSSL兼容API服务端/Nginx国密改造主流选项
GmSSL北京大学团队开源GB/T 38636-2020 TLCP(版本标识0x0101)、国密X.509、SM9、ZUC协议研究、嵌入式与教学
gotlcpGo语言社区开源实现TLCP全部国密套件(0xE011~0xE05A)、双证书服务端/客户端Go服务端国密接入
TencentKona国密套件腾讯开源TLCP双证书、RFC 8998、PKCS#12/JKS国密证书密钥库、CRL/OCSPJava/Android生态国密改造
openHiTLS社区开源密码学套件TLCP 1.1(0x0101)、curveSM2、sm2sig_sm3、KeyUsage强制校验开关终端与轻量化场景
Wireshark开源网络分析工具内置0xE0xx国密套件解析(含CBC/GCM全族)TLCP流量抓取与联调分析

合规边界:开源实现适用于研发、联调与协议验证;生产环境承载商密业务的密码产品(SSL VPN网关、服务器密码机、签名验签服务器等)仍须选用具备商用密码产品认证证书的合规产品(第5、7页),开源组件与商用产品混用时须明确合规责任界面。

本节参考来源(本页)

以下均为真实可查的权威来源,用于支撑本页协议事实。

[1]

GB/T 38636-2020《信息安全技术 传输层密码协议(TLCP)》(2020-04-28发布,2020-11-01实施):国家标准全文公开系统 openstd.samr.gov.cn。

[2]

GM/T 0024-2014《SSL VPN技术规范》(TLCP前身,参照TLS 1.1架构):密码行业标准文本渠道 oscca.gov.cn。

[3]

IETF RFC 8998《ShangMi (SM) Cipher Suites for TLS 1.3》(2021年3月):rfc-editor.org/rfc/rfc8998。

[4]

Tongsuo(铜锁)项目NTLS/双证书部署文档:github.com/Tongsuo-Project/Tongsuo。

[5]

RFC 8446(TLS 1.3)与RFC 6066/7919等国际协议对照背景:rfc-editor.org。

[6]

国密套件标识(0xE011/0xE013/0xE051等)交叉验证来源:GmSSL源码(github.com/guanzhi/GmSSL)、gotlcp套件定义(gitee.com/Trisia/gotlcp)、Wireshark packet-tls-utils.c。

[7]

TencentKona国密套件开源公告(TLCP双证书与RFC 8998支持、PKCS#12/JKS国密证书密钥库):github.com/tencent/TencentKonaSMSuite。