Elliptic-Curves

試圖了解 ECC 在 TLS 證書中的使用

  • June 5, 2015

我正在查看此網站的證書:https ://www.cloudflare.com ,它具有基於 ECC 的認證。

我只是想知道是否有可能了解使用了哪個橢圓曲線以及使用了哪個點。

另一件事:我不明白為什麼證書中有 RSA 2048 公鑰而不是 ECC 密鑰。

CloudFlare 的網站確實使用了 ECC,但僅用於會話密鑰協議。使用 RSA 2048 位私鑰執行身份驗證。相應的 RSA 公鑰在證書中。換句話說,雖然 ECC 正在使用,但它不用於身份驗證,因此不是證書的一部分。

密碼套件是:

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

這意味著 TLS 與 ECDHE(臨時橢圓曲線 Diffie-Hellman)密鑰協議、基於 RSA 的身份驗證(以及證書)。臨時部分意味著伺服器上沒有使用靜態私有 ECDH 密鑰,因此證書中不存在公共 ECDH 密鑰。

或者,按照RFC 4492 第 2.4 節的規定:

2.4 ECDHE_RSA

此密鑰交換算法與 ECDHE_ECDSA 相同,只是伺服器的證書必須包含授權簽名的 RSA 公鑰,並且 ServerKeyExchange 消息中的簽名必須使用相應的 RSA 私鑰計算。伺服器證書必須使用 RSA 簽名。

因此,聲明 CloudFlare 網站正在使用 ECC 證書(不是認證,該術語意味著其他東西)是不正確的。它使用執行ECDH 密鑰協商的**密碼套件


使用的顯式或命名參數在握手期間確定。客戶端能夠包含支持的曲線列表,按照RFC 4492 第 5.1.1 節的優先順序排列。點格式 - 未壓縮(預設)或壓縮 - 也可以指示。由於 EC 點本身是短暫的(短暫的),您只能通過分析握手來檢索它們。


為了完整起見,密碼套件的其餘部分:使用 GCM 認證 (AEAD) 模式加密的 AES-128 位加密。最終的 SHA-256 用作密鑰生成(或密鑰派生)和驗證的密鑰雜湊 (HMAC) 的定義。

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