Mac-Osx

如何使用 SSL3 與伺服器通信?

  • January 10, 2019

我正在嘗試獲取可以為客戶端和 ALB 之間的請求解密的 Wireshark 跟踪。為了解密交易,我需要強制客戶端/伺服器禁用 PFC(完美前向保密)。我可以訪問伺服器私鑰。

當我這樣做時:

openssl s_client -connect server:443 -debug -msg -state -cipher AES128-SHA

有用。

但是,當我這樣做時:

openssl s_client -connect keystone-ext.develop.zillow.net:443 -debug -msg -state -cipher AES128-SHA -ssl3

它失敗。輸出如下:

SSL3 alert read:fatal:handshake failure SSL_connect:failed in SSLv3
read server hello A 31996:error:14094410:SSL
routines:SSL3_READ_BYTES:sslv3 alert handshake
failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/ssl/s3_pkt.c:1145:SSL
alert number 40 31996:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl
handshake
failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/ssl/s3_pkt.c:566:

我在用:

$ openssl version OpenSSL 0.9.8zh 14 Jan 2016

知道我做錯了什麼嗎?

如何使用 SSL3 與伺服器通信?

不。不要更改協議(或使用舊的 OpenSSL),這會改變安全性。完美的前向保密是一項功能。

相反,在客戶端或伺服器上使用會話密鑰日誌記錄。將環境變數設置SSLKEYLOGFILE為跟踪文件。這得到了一些客戶端的支持,特別是瀏覽器、NSS 和libcurl。然後將 Wireshark 指向它:Edit > Preferences, Protocols > SSL > (Pre)-Master-Secret 日誌文件名。

編輯:TLS 解密的另一個參考是來自 SharkFest ASIA 2018 的 SSL/TLS 解密展示。它指出 ECDHE 不能僅使用 RSA 私鑰解密。提醒一下,TLS 1.3 將是所有 PFS。它還描述了 SSL 密鑰記錄的更多實現的狀態,特別是 OpenSSL 和派生類允許應用程序呼叫SSLCTXsetkeylogcallback(),而 NSS 和 GnuTLS 具有SSLKEYLOGFILE環境變數。

因此,對於靜態連結的 OpenSSL,您可以讓開發人員使用不同的 TLS 庫,或者實現他們自己的帶有日誌記錄的回調函式,或者您自己探勘調試器來提取它。請注意,如果動態連結,則切換正在使用的 libssl(並更新它)會更容易。

替代方案包括提前終止 TLS,如在代理上並擷取未加密的數據包,或刪除 PFS 並使用私鑰解密。

引用自:https://serverfault.com/questions/947534