Authenticated-Encryption

AES-CTR + UMAC 的加密和 MAC 是否安全?

  • February 19, 2017

OpenSSH 將(尤其是在舊版本中)在 encrypt-and-MAC 中使用 AES-CTR 和 MAC。這通常是不安全的(意味著存在安全密碼和安全 MAC,因此在加密和 MAC 中使用它們是不安全的)。

但是,據我了解,SSH 中使用的 AES-CTR + MAC安全的,至少對於實際使用的 MAC 選擇而言是安全的,因為:

  1. 使用的 MAC(HMAC 和 UMAC/VMAC + 加密 MAC 標籤)是 保護隱私的:MAC 標籤不會洩露任何關於明文的資訊,至少對於不知道 MAC 密鑰的人來說是這樣。在 HMAC 的情況下,我相信這是因為 HMAC 是一個強大的 PRF;在 UMAC/VMAC 的情況下,MAC 的安全性完全依賴於在傳輸前對 MAC 進行加密,而 MAC 的加密也保證了明文的資訊不被洩露。
  2. 在加密和身份驗證之間不進行編碼。加密的數據和認證的數據是一回事。
  3. 有問題的密碼使用 CTR 模式——換句話說,它是一個流密碼。因此,對密文的任何更改都會導致明文發生一對一的更改——明文的完整性因此意味著密文的完整性。

我的結論是,由於協議的細節,這些密碼套件實際上是安全的。

我的推理正確嗎?更重要的是,我的結論正確嗎?我不是密碼學家,並且零信任我沒有犯愚蠢的錯誤。

Encrypt-and-MAC 不保護機密性,因為同一消息的兩次加密將具有相同的 mac 標籤,從而揭示了消息相等的事實。

SSH 在計算 mac 標籤的數據中包含一個計數器,因此它從不會兩次計算同一消息的 mac 標籤(即使相同的數據被傳輸兩次),所以這個特殊的弱點不是問題。

然而,這並不是對加密和 MAC 的認可。不要使用它。

(如果你有一個奇怪的 MAC,encrypt-and-MAC 會比相等洩漏更多,但很少有合理的 MAC 是奇怪的。)

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