[Mac] 使用 Wireshark 檢視客戶端支援的 TLS cipher suite

[Mac] 使用 Wireshark 檢視客戶端支援的 TLS cipher suite

最近在看專案 TLS cipher 的問題…

如果是用 curl 的話,它提供了 SSL ciphers 這頁裡列出的 cipher,

用 –ciphers 就可以指定要使用的 cipher,

像是想要指定 ECDHE-RSA-AES128-GCM-SHA256 和 ECDHE-RSA-AES256-SHA384 的話,

就用 ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384 (用 : 隔開):

curl -L -v --ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384 https://www.whitehouse.gov

 

用 Wireshark 觀察一下 TLS handshake 的過程,

先用搜尋條件 tls (或是再搭配上其他 ip.addr 之類的條件),

找到有興趣的 TLS 連線其中一個封包 (packet) 後,可以按右鍵 > Follow > TCP Stream:

 

這樣就可以把整個 TCP 連線都列出來~

客戶端一開始會送出 TLS 的 Client Hello 封包,

裡面的 Cipher Suites 欄位就會列出客戶端希望使用的 cipher 列表。

正如剛剛在 curl 中指定的參數,下面也看到了同樣的兩個 cipher

(另外多出來的 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

代表的似乎是「客戶端支援 Secure Renegotiation」):

 

這樣子,用 Wireshark (或 tcpdump) 就可以確認送出去的 cipher suite 囉~

 

參考資料:

Transport Layer Security (TLS) Renegotiation Indication Extension

SSL Legacy Renegotiation vs Secure Renegotiation Explained using Wireshark DevCentral

(本頁面已被瀏覽過 1,013 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料