Diffie-Hellman

這種 Diffie-Hellman 密鑰交換變體是否容易受到中間人攻擊?

  • April 22, 2016

眾所周知,沒有身份驗證的 Diffie-Hellman 密鑰交換協議容易受到中間人攻擊。如果我們改用 STS(站到站協議),那將是安全的。

我的問題是:假設我們使用具有如下簽名的 Diffie-Hellman 密鑰交換協議的變體:

  1. 愛麗絲 $ \rightarrow $ 鮑勃: $ Bx = g^{Ax} ,S_a(Bx) $
  2. 愛麗絲 $ \leftarrow $ 鮑勃: $ By = g^{Ay} ,S_b(By) $

然後他們有一個共享密鑰 $ g^{(Ax\ \times\ Ay)} $ .

它類似於 STS,但不一樣。

  1. 那麼它對中間人攻擊是否安全?
  2. 假設 Eve 是一個活躍的中間人,Eve 以後能否解密 Alice 或 Bob 的消息?(假設 Alice 和 Bob 不會在這個頻道發送 Ax,Ay)

簡短的回答:不,它不容易受到中間人攻擊,假設 Alice 和 Bob 都擁有對方的正確簽名驗證密鑰。

然而,中間人攻擊可能發生在交換簽名驗證密鑰的時刻。因此,如果 $ sig_{X} $ 是 X 方的簽名密鑰,對交易所本身的攻擊可能如下(使用您的符號):

愛麗絲 $ \rightarrow $ 夏娃: $ Bx = g^{Ax}, \mathsf{Sign}(sig_{Alice}, Bx) $

前夕 $ \rightarrow $ 鮑勃: $ Bx^\prime = g^{Ax^\prime}, \mathsf{Sign}(sig_{Eve}, Bx^\prime) $

然後

鮑勃 $ \rightarrow $ 夏娃: $ By = g^{Ay}, \mathsf{Sign}(sig_{Bob}, By) $

前夕 $ \rightarrow $ 愛麗絲: $ By^\prime = g^{Ay^\prime}, \mathsf{Sign}(sig_{Eve}, By^\prime) $

愛麗絲和鮑勃會接受轉錄,相信他們實際上是在互相交談(因為他們分別相信 $ sig_{Eve} $ 是對方的實際簽名密鑰)。因此,該協議將與未經身份驗證的 DH 交換完全一樣安全。

另一方面,如果 Alice(例如)以“可驗證”的方式收到 Bob 的密鑰,例如通過受信任的證書頒發機構,或者在與 Bob 的面對面會議期間,攻擊不會發生:Alice 會檢測到 $ \mathsf{Sign}(sig_{Eve}, By^\prime) $ 鮑勃實際上並未簽名。在實踐中(例如在 Tor 中),至少一方擁有另一方的經過認證的公共加密密鑰,並將其一半的 DH 加密發送。這被認為是安全的。

此外,無論如何,正如kodlu 的回答所指出的那樣,該協議容易受到重放攻擊。

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