抓包分析入门
抓包定位问题的方法围绕握手消息、证书与警报三类内容展开:用过滤条件只看握手阶段,用证书消息确认服务端下发的链,用警报消息定位失败原因。需要解密时,客户端可以导出会话密钥日志供分析工具载入;服务端私钥无法解密具备前向保密的会话,这一点常被误解。
基本信息
| 过滤表达式 | 按握手消息类型过滤(问候、响应、证书) |
|---|---|
| 警报 | 查看告警级别与描述编号 |
| 解密前提 | 只有不具前向保密的旧式密钥交换可用私钥解 |
| 密钥日志 | 由客户端导出,分析工具载入 |
典型使用场景
- 握手失败排错:从警报信息定位原因
- 证书链核对:确认服务端下发的链内容
- 性能分析:查看握手往返次数
- 自研客户端调试:确认消息顺序与内容
- 安全排查:确认是否存在异常降级
常用命令
常用命令
tshark -i eth0 -f 'tcp port 443' -Y 'tls.handshake' -T fields -e ip.src -e tls.handshake.type | head -20
tshark -r tls.pcap -Y 'tls.alert_message' -T fields -e tls.alert_message.desc | head
tshark -r tls.pcap -Y 'tls.handshake.type == 11' -V | head -40消息类型与用途
| 消息 | 用途 | 排错价值 |
|---|---|---|
| 客户端问候 | 发起握手,携带扩展 | 确认客户端能力 |
| 服务端响应 | 选定套件与参数 | 确认协商结果 |
| 证书 | 下发服务端证书链 | 核对链内容与顺序 |
| 警报 | 通报错误 | 定位失败原因 |
生产环境抓包要注意隐私与合规:载荷可能包含用户数据,留存与共享前先脱敏并限定范围,密钥日志要按高敏感文件管理。
落地建议
- 抓包文件设置采集范围与时长上限
- 密钥日志单独存放并严格限制访问
- 分析结论与配置变更记录关联留档
- 把常见警报编号整理成排查对照表
试图用私钥解密具备前向保密的会话不可行;这类会话只能通过客户端导出的会话密钥日志解密,不要在生产环境尝试绕过。