Ssl
如何在數據包擷取中解密通過 SMTP 的 STARTTLS 通信(如果我有私鑰)?
出於故障排除的目的,我需要查看通過 SMTP 將電子郵件發送到我的 sendmail 伺服器時的外觀。上游伺服器需要 SMTP 連接才能使用 STARTTLS,因此數據包擷取僅顯示加密數據。
有沒有辦法用wireshark解密傳輸看看?當然假設我有我的 sendmail 伺服器上使用的私鑰?
我看到有幾個線上可用的程序引用了
RSA key lists
wireshark 中的功能(例如: https: //support.citrix.com/article/CTX116557)。但這似乎仍然不適合我。這與前向保密有關嗎?我可以不在較新的協議/密碼上這樣做嗎?
只有完成 RSA 密鑰交換,了解 RSA 私鑰才足夠。現代系統改為使用 Diffie Helmann 密鑰交換(DHE*、ECDHE* 密碼)來提供前向保密。在這種情況下,私鑰僅用於驗證伺服器而不用於密鑰交換,因此知道私鑰無助於獲取加密密鑰。
相反,將需要 SSL預主密鑰,因為它用於派生加密密鑰。雖然某些瀏覽器支持在某些特殊調試模式下導出此密鑰,但其他客戶端通常不支持。
至於你的具體問題,我會嘗試一個中間人“攻擊”,即使客戶端獲得加密流量,它也會以普通方式記錄所有流量。這與 HTTPS 的中間代理類似,只是它支持初始純連接並理解 STARTTLS 升級到 TLS。通過快速搜尋,我發現了 starttls-mitm並且sslsplit 對此有一些 beta 支持。當然,客戶端需要連接到中間代理中的人並信任它獲得的證書,這可能是原始伺服器證書,因為您似乎可以訪問它。
另一種選擇是在特定 MTA 中啟用調試,以防它為您的特定問題提供足夠詳細的資訊。