使用.sham密钥使用tshark嗅探TLS加密流量的问题


0

我在使用tshark(命令行Wireshark)在蜜网中解密TLS加密的syslog-ng数据包时遇到问题。目标是能够拦截从蜜罐到蜜罐日志服务器的数据包。我将私钥作为具有以下格式的.pem文件:

-----开始RSA私钥-----

{关键在这里}

-----结束RSA私钥------

用于捕获的命令是:

tshark -n -o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: TRUE" -o "ssl.keys_list: 0.0.0.0,0,data,/root/privkey_new.pem" -o "ssl.debug_file: SSL-Decrypt.log" -i eth1 -R "tcp.port==1999" -T fields -e data.data

这输出十六进制,但可以通过管道将其格式化为ASCII xxd -r -p

问题在于,尽管tshark的调试日志文件成功加载了密钥,但加密流量似乎没有被解密。

这是tshark的调试文件:

ssl_load_key: swapping p and q parameters and recomputing u
ssl_init IPv4 addr '0.0.0.0' (0.0.0.0) port '0' filename '/root/privkey_new.pem' password(only for p12 file) ''
ssl_init private key file /root/privkey_new.pem successfully loaded.
association_add TCP port 0 protocol data handle 0x7f2b49775a50

我设法通过使用TCPdump记录流量来解密流量,然后使用SSLDump对其进行解密。但我的目标是能够实时解密流量,而不是通过文件解密。 SSLDump不支持在没有IP地址的桥接接口上进行实时捕获。

我希望有人对这个问题有一些了解。

Answers:


2

虽然您提供的信息不足以判断您的实例是否是这种情况,但许多服务器已切换到提供“完美前向保密”的方案。也就是说,短暂的对称加密密钥是使用Diffie-Hellman而不是传统的一方生成的技术协商的,并使用证书密钥对进行非对称加密。

当然,这意味着如果不直接从客户端或服务器获取临时密钥(不太可能),则解密是不可能的。因为在这种情况下,密钥不是使用证书密钥对加密发送的,所以私钥对您没有帮助。 这是Perfect Forward Secrecy的重点。 即使您拥有私钥,您仍然无法解密捕获的流量。

如果您需要在自己的测试中进行流量监听,请通过可以输出传输内容的中继来运行流量( 就像我在这里写的那个 ),或关闭客户端/服务器上的PFS。这意味着禁用任何提及DH密钥交换的协议(例如DHE或ECDHE)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.