Sha-1
PBKDF2/RFC 2898 是否因為 SHA1 損壞而損壞?
我試圖在 PHP中重新實現ASP.NET Identity 密碼雜湊算法。它使用RFC 2898,它使用 HMAC SHA1。SHA1 已被 google 破解。這是否意味著一般的 RFC 2898 和目前的 ASP.NET 身份密碼雜湊格式被破壞了?
SHA-1 的特定用法使用 HMAC,然後將其作為 PBKDF2 的一部分進行迭代(實際上是為任何 PRF 定義的,而不僅僅是 HMAC-SHA1)。
截至今天 (2017-05-18) HMAC-SHA1 在碰撞和其他攻擊方面沒有被破壞,因此 PBKDF2-HMAC-SHA1 仍然被認為是安全的。HMAC 構造以及 PBKDF2 中的許多迭代,可以防止 Google 對 SHA1 的碰撞攻擊。
但是,新應用程序應至少遷移到SHA2-256 或 SHA3-256 作為散列原語,並且根本不使用 SHA1 實現任何東西,除非與其他系統兼容是絕對必要的。
在您的情況下,您需要與舊系統兼容,因此請繼續,但建構程式碼並製定過渡計劃以在不久的將來使用更新的雜湊函式。在大多數情況下,在密碼雜湊旁邊添加簡單的版本欄位就足夠了。