Passwords

pbkdf2 可以與固定鹽一起使用以提供確定性的慢散列嗎?

  • November 27, 2020

我需要一個確定性的密碼雜湊函式。相關攻擊不是問題。相同的密碼必須產生相同的雜湊。我只想在散列洩露的情況下保護密碼免受字典和暴力攻擊。

有沒有眾所周知的方法可以做到這一點?修復 bcrypt/PBKDF2/scrypt 的鹽就足夠了嗎?

是的,人們認為是這樣。

PBKDF2、scrypt 和 bcrypt 的要點是在相同的輸入上產生相同的輸出,否則它們將無用作為密鑰派生函式(KDF)。

我個人更喜歡Argon2,因為您可以對其進行更多調整,它可以更好地利用 RAM 和計算時間等。正如Wikipedia上所解釋的,PBKDF2 並不是最好的,因為它可以在 ASIC 設備上實現,這使得蠻力使用 ASIC 甚至 GPU 進行攻擊比使用某些其他 KDF 更容易。

對所有條目使用固定鹽只允許掛載針對您的特定應用程序的字典攻擊,儘管這仍然會受到它所暗示的計算成本的阻礙。只要您自己生成了鹽並且沒有使用通用值(例如空值),這並不令人擔憂。但總的來說*,我們從不推薦使用固定鹽*。

相反,請注意,好的做法是以確定的方式(例如從使用者名)派生鹽,或者將鹽儲存在密碼旁邊的數據庫中(這樣每個密碼都有不同的鹽。)

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