Sha-256

使用 SHA256 的低輪數時的安全權衡

  • October 9, 2017

我有一個將雜湊密碼重置令牌儲存在數據庫表中的 Web 應用程序。令牌是隨機生成的 256 位值。我目前正在使用 Python 的 passlib sha256_crypt函式來散列預設使用 535000 輪的令牌。

為了加快雜湊計算,我想減少 sha256_crypt 函式使用的輪數。Passlib 允許您選擇介於 1000 和 999999999 之間的整數值。鑑於我正在散列隨機 256 位值,將輪數減少到 1000 對我來說是否安全?這樣做會帶來任何嚴重的安全權衡嗎?

如評論中所述,假設密碼重置令牌是使用者請求其密碼時生成的一次性令牌。

PBKDF(循環中的鹽散列)用於使密碼猜測更加昂貴,以防數據庫遭到破壞。PBKDF 的整個問題是基於對使用者密碼具有低熵的觀察。

鑑於我正在散列隨機 256 位值,將輪數減少到 1000 對我來說是否安全?

讓我們假設密碼重置令牌是普通的。可能發生的最壞情況是攻擊者(具有讀取訪問權限)可以重用現有的重置令牌或創建新的重置令牌(請求新密碼)。

因此,您需要一些散列來隱藏原始令牌值,但如果重置令牌具有足夠的熵(隨機且足夠長),您可以使用簡單的散列。長度和隨機性會否定字典猜測過程,而不是昂貴的 PBKDF 函式。

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