Hash

攻擊者可以從相同明文的另一個散列(都使用不同的鹽)計算散列嗎?

  • May 8, 2017

想像一下,生成了兩個相同密碼的 PBKDF2-SHA-512 雜湊。每個都有單獨的鹽。如果攻擊者擁有一個散列和兩個散列的鹽,他是否能夠計算失去的散列,或者他會在猜測它時獲得顯著優勢?

我的情況: 使用者輸入了應該用於 AES 加密的密碼。密碼經過一次雜湊處理以獲得 AES 密鑰。然後使用與第一個不同的鹽生成使用者輸入的密碼的第二個散列,並與兩個散列的鹽一起發送到伺服器。劫持伺服器的攻擊者能否計算出用作 AES 密鑰的雜湊值?

想像一下,生成了兩個相同密碼的 PBKDF2-SHA-512 雜湊。每個都有單獨的鹽。如果攻擊者擁有一個散列和兩個散列的鹽,他是否能夠計算失去的散列,或者他會在猜測它時獲得顯著優勢?

不,散列的想法是不可能反轉散列。您當然可以猜測雜湊,然後可以計算兩個輸出,但是使用兩種不同的鹽不會給攻擊者帶來任何優勢。


但是請注意,通過執行兩次 PBKDF2,您可以為攻擊者提供一些優勢,他們只需執行一次 PBKDF2 即可驗證猜測的正確性。基本上,與攻擊者相比,您的優勢會減少一點。

這就是為什麼您也可以使用 PBKDF2 一次,然後使用 KBKDF 創建兩個值,例如 HKDF(-expand) 兩次,並帶有兩個不同的標籤。KBKDF(例如 HKDF)不執行密鑰強化,因此 PBKDF2 隱含的工作因子不需要在伺服器上執行兩次。

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