Key-Exchange

預設情況下,OpenSSL 和 CryptoAPI 更喜歡哪種密鑰交換?

  • September 11, 2013

這是我所知道的。

當我使用 Chrome 連接到全新的 Linux Web 伺服器並點擊“鎖定”圖示時,密鑰交換算法被描述為“ECDHE_RSA”。(是的,我知道那是什麼。)

當我在 Windows 7 上連接 Internet Explorer 8 時,密鑰交換被描述為“具有 2048 位交換的 RSA”。我也知道那是什麼。

使用 Firefox,它說我受到“AES-256、256 位密鑰”的保護。這是(a)冗餘和(b)沒有告訴我密鑰交換算法。

當我openssl ciphers在全新的 Linux 機器上執行時,輸出開始於:

ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:...

(我懷疑這些是按照 OpenSSL 的偏好順序列出的,但我不知道這是在哪裡記錄的。)

ECDHE 代表“橢圓曲線 Diffie-Hellman,短暫”。太好了,但我想知道實際的密鑰交換算法,包括具體的橢圓曲線。

這是我真正想要的:一張大表,包含所有可能的 SSL 客戶端和伺服器對(所有版本),告訴我它們之間將協商什麼特定的密鑰交換算法(包括實際的橢圓曲線)。或足夠的資訊來建構該表。

我會滿足於簡單地了解最新版本的 OpenSSL 和 CryptoAPI 在預設情況下的行為方式以及記錄在哪裡。

給定一個啟用 SSL 的網站,Qualys SSL 測試器將告訴如果它們連接到該網站,一堆不同的瀏覽器將協商什麼密碼套件。它還將告訴您該伺服器支持的密碼套件列表以及每個主要瀏覽器都支持的密碼套件列表。

例如,這是您在其他地方提到的一個網站的輸出:output。標有“握手模擬”的部分將告訴您許多不同的主要瀏覽器將與此伺服器協商什麼密碼套件。例如:

  • Chrome 29 (Win 7) 將通過 TLS 1.2 協商 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA;
  • IE 8(Win 7)將通過 TLS 1.0(不提供前向保密)協商 TLS_RSA_WITH_AES_128_CBC_SHA;
  • Firefox 22 (Win 7) 將通過 TLS 1.0 協商 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA;

等等。這不會告訴您他們將使用什麼橢圓曲線或密鑰大小,但它會為您提供您正在尋找的其他資訊。

通過為每個可能的 SSL 伺服器測試一個代表性網站,您應該能夠接近所有(瀏覽器、伺服器)對協商的密鑰交換算法的網格。

引用自:https://crypto.stackexchange.com/questions/10208