Hash

HMAC 的安全性是否與密碼本身的安全性同等重要?

  • January 3, 2016

我有點不清楚基於雜湊的 MAC 如何工作……所以我想知道,你的雜湊函式的安全性與整體密碼的安全性一樣重要嗎?基本上,如果你能破解散列,這會破壞密碼嗎?

我知道在大多數情況下,破解也不是特別可行。

根據您的評論:

正確…但看起來許多 HMAC 系統基本上最終都包括明文 + 密鑰的散列以及密文。所以看起來破解雜湊會有效地破壞整個加密,不是嗎?

您可能對如何將 HMAC 用作密碼系統的一部分存在誤解,問題的開頭線強化了這一點。

HMAC 輸入不是明文+密鑰,而只是密文,或者只是明文。單獨的密鑰用作​​ HMAC 過程的一部分,以將散列函式的初始值更改為秘密。然後使用秘密 IV 對輸入進行散列,然後使用不同的秘密 IV 再次對輸出進行散列。生成秘密 IV 的密鑰與密碼使用的密鑰不同。

目前的最佳實踐是對密文進行 MAC 處理,如果身份驗證失敗,甚至不嘗試解密。如果明文是 MAC’d,則首先需要解密。使用 HMAC 時,如果明文經過 MAC 處理,攻擊者可以破壞 MAC 或密文並多次重新發送,迫使接收者每次都解密消息。如果密碼容易受到定時攻擊,則此方法可用於恢復密碼密鑰材料。必須為散列函式提供針對定時攻擊的相同安全性,因為密文 MAC 故障甚至不會觸及加密密鑰,但可以允許恢復 MAC 密鑰。在這方面,HMAC 的安全性與密碼的安全性同樣重要。這也是 MAC 密鑰和密碼密鑰不同的原因之一,因此恢復其中一個不會損害另一個。

使用 HMAC 時對密文進行 MAC 化的其他原因之一是,處理相同的明文會產生相同的 MAC,而當使用大多數模式正確加密時,相同的明文會產生不同的密文,這是許多應用程序所必需的重要屬性.

由於 HMAC 使用散列的方式,它比使用的散列更健壯。會危害 HMAC 的離線攻擊是原像攻擊,它將恢復原始消息,特別是生成秘密 IV 的部分。因為 HMAC 雜湊兩次,即使是像 MD5 這樣的破碎雜湊,這也是非常困難的。

亞歷克斯的回答也提出了一個重要的觀點。即使在密鑰輪換之後,損壞的 HMAC(密鑰恢復)也不會恢復消息,並且只允許使用該密鑰偽造 MAC,現在不再使用該密鑰。MAC 密鑰在該密鑰的生命週期內必須是安全的,該密鑰通常足夠短,以至於暴力攻擊來恢復它幾乎是不可行的。出於同樣的原因,密鑰也應該足夠大。

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