文章总结: 本文解析了国密TLCP协议握手层的十种消息类型及枚举值,并给出Wireshark精准过滤命令。文章指出可利用tls.handshake.type字段匹配消息,同时提供通过检测密码套件是否包含SM3或SM4来快速识别国密流量的实战技巧,对流量排查与协议分析具有直接指导价值。 综合评分: 84 文章分类: 网络安全,安全工具,技术标准
TLCP 握手消息类型定义及 Wireshark 精确定位分析指南
原创
利刃信安 利刃信安
利刃信安
2026年7月12日 21:30 北京
在小说阅读器读本章
去阅读
TLCP 握手消息类型定义及
Wireshark 精确定位分析指南
GB/T 38636 · tls.handshake.type · 国密SM套件识别
01
PART
前言与背景
BACKGROUND
本指南基于国家密码管理局发布的 TLCP(传输层密码协议,GB/T 38636) 标准,对握手层(Handshake Layer)的消息类型进行详细拆解。同时,为您提供 Wireshark 网络抓包工具中精准过滤、定位此类消息的高级实用命令。
02
PART
握手消息类型定义
HANDSHAKE TYPES
…text
握手消息类型定义如下:
enum {
client_hello(1), server_hello(2),
certificate(11), server_key_exchange (12),
certificate_request(13), server_hello_done(14),
certificate_verify(15), client_key_exchange(16),
finished(20), (255)
} HandshakeType;
03
PART
完整 TLCP 握手消息类型对照表(已修正)
TYPE TABLE
| 消息名称 (Name) | 枚举值 (Type) | 发送方 | 核心作用 | | — | — | — | — | | client_hello | 1 | 客户端 | 发起连接,协商国密套件与随机数 | | server_hello | 2 | 服务端 | 确认协议版本与选定的国密套件 | | certificate | 11 | 服务端 | 发送包含 SM2 公钥的国密 X.509 证书链 | | server_key_exchange | 12 | 服务端 | 发送 ECDHE 临时公钥及 SM2 签名(实现前向保密) | | certificate_request | 13 | 服务端 | 向客户端请求国密证书(双向认证时使用) | | server_hello_done | 14 | 服务端 | 标记服务端握手消息发送结束 | | certificate_verify | 15 | 客户端 | 使用 SM2 私钥签名验证(双向认证所需) | | client_key_exchange | 16 | 客户端 | 发送客户端 ECDHE 临时公钥参数 | | finished | 20 | 双方 | 基于 SM3 的 PRF 验证整个握手过程完整性 | | (保留) | 255 | – | 协议系统保留值,不能用于实际消息 |
04
PART
Wireshark 精准定位命令及逐个代码分析
WIRESHARK FILTERS
Wireshark 中针对 TLCP/TLS 协议的过滤器需要精准无误。以下是针对所有握手包的精准过滤命令及详细代码解读。
- 过滤所有握手记录层数据包
…wireshark
tls.record.content_type == 22
命令分析:
tls:协议名称。TLCP 记录层与 TLS 记录层结构完全一致,因此使用 tls 作为前置域名。
.record:指明我们要过滤的是“记录层(Record Layer)”。
.content_type:记录层头部的一个 1 字节字段,指示记录层内部承载的高层协议类型。
== 22:比较运算符及数值。根据 TLCP/TLS 标准,数值 22 固定代表“握手(Handshake)”协议。因此该命令等同于:“筛选出所有包含握手内容的记录包”。
- 精确过滤特定的握手消息类型
Wireshark 支持直接依据握手头部字节进行精确定位。命令格式为 tls.handshake.type == [枚举值]。
| 想要定位的握手包 | Wireshark 精准过滤命令代码 | 注意事项 | | — | — | — | | 客户端问候包 | tls.handshake.type == 1 | 握手流量的起点 | | 服务端问候包 | tls.handshake.type == 2 | 密码套件协商成功的标志 | | 国密证书包 | tls.handshake.type == 11 | 可在此查看具体的 X.509 证书链 | | 服务端密钥交换 | tls.handshake.type == 12 | TLCP 国密 ECDHE 核心交互包 | | 证书请求包 | tls.handshake.type == 13 | 双向认证的关键信号 | | 服务端 Hello Done | tls.handshake.type == 14 | 等待客户端下一步动作的分水岭 | | 证书验证包 | tls.handshake.type == 15 | 客户端身份合法性校验包 | | 客户端密钥交换 | tls.handshake.type == 16 | 最终完成密钥协商的核心包 | | 结束包 | tls.handshake.type == 20 | 握手成功建立的“通关凭证” |
- 快速识别 TLCP 国密流量的附加技巧
由于 TLCP 并不完全通过版本号标识自己,而是通过密码套件(Cipher Suites)被识别出来的。
正确的 Wireshark 套件识别命令:
…wireshark
tls.handshake.ciphersuite contains “SM3” || tls.handshake.ciphersuite contains “SM4”
代码分析:tls.handshake.ciphersuite 字段存储了协商出来的密码套件名称。通过 contains “SM3” 或 “SM4″,可以快速精准地过滤出使用了国密哈希(SM3)和国密对称加密(SM4)的流量。
标准 TLCP 国密套件名称列表:
1. TLS_ECC_SM4_GCM_SM3
2. TLS_ECC_SM4_CBC_SM3
3. TLS_SM4_GCM_SM3
4. TLS_SM4_CBC_SM3
⚡ 高级实战建议:
如果在抓包时发现 Server Hello 消息中,Cipher Suite 字段显示为上述包含 SM 开头的国密套件,则无论 Wireshark 的协议列显示为 TLS 还是 TLCP,均可确定这是一条 TLCP 国密流量。
我是利刃信安,网络安全和密码安全、数据安全领域的小白。
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见
点赞
在看
转发
如有疑问,请联系: Mannix6
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:利刃信安 利刃信安 利刃信安《TLCP 握手消息类型定义及 Wireshark 精确定位分析指南》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论