Rsa

RSA 在 DHE_RSA 密碼套件中扮演什麼角色?

  • February 25, 2018

我在這篇文章中讀到,使用 RSA 公鑰加密預主密鑰對於前向保密攻擊是不安全的。如果是對手,則記錄客戶端和伺服器之間的所有通信。並且伺服器稍後被攻擊者停用和檢索,並且攻擊者還檢索儲存在伺服器中的私鑰。他可以解密預主密鑰並生成主密鑰並破譯客戶端和伺服器之間所有記錄的通信。

為了防止前向保密攻擊,可以為 premaster 交換實現Diffie-Hellman Ephemeral Mode

現在我的問題。如果使用 DHE,RSA 在其中扮演什麼角色?因為我見過帶有 RSA 和 DHE 的密碼套件。

臨時 Diffie-Hellman(DHE 或 ECDHE)使用兩個臨時密鑰對,使用後應丟棄。但是,要建立安全連接,您需要知道與之建立連接的實體。如果不是這種情況,則可能會進行冒充或中間人攻擊。

所以本例中的 RSA 指向伺服器的密鑰對,其公鑰在伺服器證書中。此證書用於在證書儲存區(例如瀏覽器或系統儲存區中的證書)中建立到可信(根)證書的鏈。該鏈經過驗證和驗證,以便在一定程度上可以信任伺服器的公鑰(通過信任證書儲存中的所有CA 建立的信任級別是一個持續的爭論)。

現在您已經建立了對公鑰的信任,伺服器的私鑰可以用於兩個相關的目標:

  1. 伺服器的實體認證和
  2. 確保客戶端和伺服器確實生成了臨時公鑰和參數。

RSA 算法用於伺服器上的私鑰計算,以簽署用於執行密鑰協商的消息,以就主密鑰達成一致。該主密鑰又用於派生用於加密數據流的會話密鑰。客戶端使用 RSA 算法驗證公鑰、參數並確保伺服器控制用於簽名生成(伺服器實體認證)的私鑰。

直接加密主密鑰(在舊的 RSA_密碼套件中)的優點是它建立了主密鑰並在一次操作中執行實體身份驗證。幸運的是,與 RSA 私鑰操作相比,DH 和 ECDH 都相對較快。


筆記:

  • 顯然證書需要有一個 RSA 公鑰,所以伺服器不能使用 ECDSA 證書;
  • 預設情況下,客戶端經過身份驗證 - 要對客戶端進行身份驗證,伺服器需要明確請求客戶端身份驗證,這就是為什麼您需要在大多數網站上登錄(或者在付款時進行身份驗證);
  • 證書本身可能由與 RSA 不同的算法簽名,如果使用客戶端證書,那麼它們也可能使用不同的算法。

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