密钥日志能打开什么
密钥日志是客户端提供的调试能力:把每个会话的密钥材料写进本地文件,抓包工具加载这份文件后就能离线解密会话内容,看到明文的应用数据。它解决了加密流量不可读的问题,但前提有三条——客户端本身支持该能力、日志与抓包在时间上对应、以及日志文件被完整保留。由于日志内容等价于会话凭据,只能在受控环境按需开启,用完及时清理。
基本信息
| 适用平台 | 支持该能力的客户端与本机工具链;抓包工具侧做解密 |
|---|---|
| 启用方式 | 设置环境变量指向日志文件后重启目标程序 |
| 工具配置 | 在协议的预设主密钥日志设置中指定该文件 |
| 前提 | 日志与抓包时间对应,客户端支持该能力 |
典型使用场景
- 排查加密接口的请求响应内容问题
- 验证客户端与服务端在加密层的字段一致性
- 分析新版本协议下不可见的证书与握手扩展
- 核对网关对加密请求的改写行为
- 在受控测试环境复现线上问题
- 为接口联调提供明文对照材料
启用步骤
启用步骤
export SSLKEYLOGFILE=/tmp/keys.log # 指定日志文件位置
# 重启目标应用使其生效,再开始抓包
# 在抓包工具中指定该日志文件,随后即可看到明文
# 顺序要求: 先设变量并重启应用,再抓包,最后加载日志
# 日志与抓包批次不一致时会解不开,需成对保留检查项逐项读法
| 检查项 | 说明 | 常见问题 |
|---|---|---|
| 客户端是否支持 | 并非所有客户端都提供该能力 | 不支持的客户端无法用此法解密 |
| 日志是否生成 | 文件应有内容且持续写入 | 环境变量未作用于目标进程时为空 |
| 时间是否对应 | 日志覆盖抓包的时间段 | 批次混用会导致部分会话解不开 |
| 解密结果 | 应用数据是否可读 | 仍不可读需核对协议版本与协商结果 |
密钥日志等价于会话凭据,必须按敏感数据处理:限定保存位置、控制访问权限、排查结束后及时删除,不要提交到代码仓库或工单附件。
没有密钥日志时,较新版本协议握手之后的内容本来就不可解,这属于正常现象,不必当作抓包异常。