TLCP握手消息类型定义及Wireshark精确定位分析指南

admin 2026-07-13 05:04:25 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析了国密TLCP协议握手层的十种消息类型及枚举值,并给出Wireshark精准过滤命令。文章指出可利用tls.handshake.type字段匹配消息,同时提供通过检测密码套件是否包含SM3或SM4来快速识别国密流量的实战技巧,对流量排查与协议分析具有直接指导价值。 综合评分: 84 文章分类: 网络安全,安全工具,技术标准


cover_image

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 协议的过滤器需要精准无误。以下是针对所有握手包的精准过滤命令及详细代码解读。

  1. 过滤所有握手记录层数据包

…wireshark

tls.record.content_type == 22

命令分析

tls:协议名称。TLCP 记录层与 TLS 记录层结构完全一致,因此使用 tls 作为前置域名。

.record:指明我们要过滤的是“记录层(Record Layer)”。

.content_type:记录层头部的一个 1 字节字段,指示记录层内部承载的高层协议类型。

== 22:比较运算符及数值。根据 TLCP/TLS 标准,数值 22 固定代表“握手(Handshake)”协议。因此该命令等同于:“筛选出所有包含握手内容的记录包”

  1. 精确过滤特定的握手消息类型

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 | 握手成功建立的“通关凭证” |

  1. 快速识别 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 精确定位分析指南》

评论:0   参与:  0