Public-Key

帶身份驗證的 Diffie-Hellman 密鑰交換:中間人查詢

  • May 5, 2020

我一直在閱讀 MiTM 攻擊,以及使用公鑰證書來預防它們。最近我了解了帶身份驗證的 Diffie-Hellman 密鑰交換,以及它如何使用簽名參數來防止 MiTM。

關於身份驗證的協議(如RFC5246, appendix-F.1.1.3中所列)所使用的過程,我並不完全清楚。我了解 Diffie-Hellman 在沒有它的情況下如何容易受到此類攻擊,但它究竟如何防止這些攻擊呢?

我了解消息已簽名,因此攻擊者 Mallory 無法修改 Alice 和 Bob 之間的消息。為什麼 Mallory 不能將 Bob 的證書轉發給 Alice,包括 Bob 的任何簽名參數,並最終通過在雙方之間中繼所有消息來截取協商好的會話密鑰?

僅僅是因為 Alice 和 Bob 都生成了自己的密鑰,這意味著會話密鑰不可恢復嗎?(在這種情況下,Mallory 更像是竊聽者/Eve?)此外,這是否意味著如果 Mallory 能夠以某種方式恢復私鑰,他/她可以計算 2 個單獨的密鑰交換並像以前一樣修改流量而無需身份驗證?

最後,假設 Mallory 設法破壞了私鑰並可以攔截和修改流量。在不更改證書/密鑰的情況下,在這種情況下是否有任何其他方法可以對 Bob 進行身份驗證,或者這是不可能的?

首先,PKI 使用私鑰和公鑰。私鑰只有使用者知道,而公鑰則通過使用證書進行安全通信。為了提供身份驗證和不可否認性,使用者可以使用他們的私鑰簽署消息並獲得數字簽名。任何其他使用者都可以通過使用聲稱的使用者的公鑰“解密”簽名來驗證簽名的真實性。

所以回答你的問題:

  1. 由於難以計算的 Diffie-Hellman 問題,Mallory 無法攔截協商的會話密鑰 $ g^{ab} $ 給定 $ g^a $ 和 $ g^b $ . 如果他不處理 Bob 的私鑰,他就無法冒充 Bob。
  2. 是的,你是對的。Mallory 只能竊聽加密的密文,無法獲知其內容。
  3. 不,由於 Diffie-Hellman 問題,即使 Mallory 知道 Bob 的私鑰,他也無法獲得(Alice 和 Bob 之間的通信的)會話密鑰。Mallory 在與 Alice 通信時能夠冒充 Bob,但無法在與 Bob 通信時冒充 Alice。但是,如果 Mallory 可以訪問 Alice 和 Bob 的私鑰,那麼 MiTM 攻擊是可能的。
  4. 不,Bob 必須更改他的公鑰-私鑰對,包括他的證書,除非有兩因素身份驗證(例如通過語音/文本消息或令牌)。

希望這可以幫助。

簡單地說,DHE_RSA 有兩個密鑰對,而不是 RSA_RSA 的一個密鑰對。

例如,

  1. 對於 AES128_CBC_SHA(長名稱是 RSA_RSA_AES128_CBC_SHA),您有一個密鑰對用於密鑰交換和身份驗證。
  2. 對於 ECDHE_RSA_AES_CBC_SHA,您有兩個密鑰對。ECC 密鑰對是臨時用於密鑰交換的。證書中的 RSA 密鑰對用於身份驗證。

因此,對於第二種情況,失去 RSA 證書私鑰並不重要。

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