Passwords

PBKDF2-SHA256+SHA256 用於密碼儲存

  • August 27, 2014

我最近看到一篇有趣的論文,詳細介紹了強化會話 cookie 的使用。每個 cookie 都包含密碼散列的原像,並且原像被再次散列並與儲存的密碼散列進行比較,作為 cookie 身份驗證過程的一部分。

為了使其工作,我們必須能夠從每個 Web 請求的原像中快速計算密碼雜湊。使用普通的 PBKDF2-SHA256 儲存密碼並不容易。但是,如果我們將密碼儲存為:

$ SHA256(PBKDF2(password, salt, iterations=10000)) $

我們可以從原像快速移動, $ PBKDF2(password,salt,iterations=10000) $ , 通過計算得到儲存的雜湊值 $ SHA256(preimage) $ .

與僅儲存 PBKDF2-SHA256 摘要相比,這裡的相對弱點是什麼?

感謝您@Stephen Touset的解決方案。

為了避免將會話 cookie 綁定到使用者密碼(並避免使用 PBKDF2-SHA256+SHA256),我們可以簡單地創建一個隨機 $ key $ 用於登錄時的使用者。 $ SHA256(key) $ 然後儲存在數據庫中,以及將會話綁定到特定使用者的會話 ID。

$ key $ 然後用作會話 cookie 中的原像。根據每個請求,我們計算 $ SHA256(key) $ ,並將其與儲存在數據庫中的值進行比較。

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