Squid的tls_key_log无法替代SSLKEYLOGFILE实现TLS流量解密的问题求助
我目前已经实现了一套TLS流量解密方案:通过设置SSLKEYLOGFILE环境变量,配合Firefox浏览器、Squid中间代理,能在Wireshark 4.2.2中成功解密TLS流量。具体环境和操作如下:
- 操作系统:macOS 12.6
- Squid版本:6.6
- 操作命令:
export SSLKEYLOGFILE=$HOME/path/to/keylogfile.txt firefox
不过我原本以为Squid自带的tls_key_log配置应该能替代SSLKEYLOGFILE环境变量,达到同样的解密效果,但实际测试后发现完全不行——Wireshark里根本无法解密任何流量。
我的Squid配置如下:
http_port 3128 ssl-bump generate-host-certificates=on cert=/my/CA.pem sslcrtd_program /path/to/squid/6.6/libexec/security_file_certgen -s /path/to/ssl_db -M 4MB tls_key_log stdio:/path/to/tls_key.log
我查看了生成的tls_key.log,里面的内容格式大致是这样的:
0CLIENT_RANDOM ..... -
1RSA Session-ID:..... Master-Key:.....
CLIENT_RANDOM ..... .....2 master56CLIENT_RANDOM ..... -
3 master69RSA Session-ID:..... Master-Key:...........
CLIENT_RANDOM ..... ....
虽然其中的CLIENT_RANDOM条目也会出现在SSLKEYLOGFILE对应的日志文件里,但后者包含的密钥信息明显更完整,比如这些额外的条目:
CLIENT_RANDOM ... ...
CLIENT_HANDSHAKE_TRAFFIC_SECRET ... ...
SERVER_HANDSHAKE_TRAFFIC_SECRET ... ...
CLIENT_TRAFFIC_SECRET_0 ... ...
SERVER_TRAFFIC_SECRET_0 ... ...
EXPORTER_SECRET ... ...
所以我想请教一下,有没有办法让Squid的tls_key_log生成足够的密钥信息,从而让Wireshark能够正常解密TLS流量呢?
备注:内容来源于stack exchange,提问作者rnd_nr_gen

