Rsa
為什麼不使用 Diffie Hellman 公鑰進行身份驗證?
所以我一直在閱讀有關 Diffie Hellman 的資訊,特別是它容易受到的中間人攻擊。
我知道目前在 ssl 中解決了這些問題,例如通過使用 rsa 簽名來驗證 dh 公鑰(如 $ g^a $ mod n bit) 以防止中間人破壞連接。
我也知道在 RSA 身份驗證中使用的伺服器的公鑰是由 CA 提供的,這就是瀏覽器知道它是有效的方式。
我也知道 ssl 中使用的 DH 是 ECDH,但無論如何我認為我的問題仍然適用,我會對 ECDH 或普通 DH 的答案感興趣。
然而,我不明白為什麼證書頒發機構 (CA) 不能簡單地提供伺服器 $ g^a $ mod n(公共 DH 密鑰)而不是他們的公共 RSA 密鑰,以避免必須使用 RSA。
我知道不使用它的一個原因是因為前向保密性只能通過基於會話的 DH 密鑰獲得,但為什麼即使非前向保密 RSA 也從未實現過(據我所知,它沒有)曾經用於此目的?
擁有一個持久的 DH 公鑰會引入一個數學漏洞,還是有其他原因沒有這樣做?
謝謝
這稱為靜態 DH。可以直接使用 OpenSSL來完成,但支持它的客戶端並不多。以這種方式使用 DH 沒有數學上的漏洞,但它從未真正起飛。RSA 簽名的基礎設施已經到位,因此無需切換到另一種算法。