Description
Increase the default factor for PBKDF2 based password hashing schemes
Description
Currently, the FusionAuth default is 24,000 iterations for Salted PBKDF2 HMAC SHA-256, the default hash.
There is no recent NIST guidance on this.
OWASP recommends 600,000 iterations.
It would be worth while to review the current defaults and either document a recommended factor, or change our default to be similar to other industry standards.
The default value of 24,000
was set 8 or 9 years ago, and it is likely time for an update.
However, to note, we do provide a configuration to allow the FusionAuth admin to set a preferred factor so that the password factor can be updated over time (during login, password change, etc) to account for increasing CPU capacity. Regardless of our default value, it would be a good practice to periodically review the desired factor as CPU capacity increases.
To review this setting in your configuration, see Tenants > Edit > Passwords > Cryptographic hash settings > Factor
. When Re-hash on login or change
is enabled, the configured scheme and factor will be updated on next password touch (change, login, etc) for the user. Using this configuration allows you to upgrade the password hash complexity overtime.
Comparison
Here are some other hashing defaults:
Keycloak: 600,000 for pbkdf2-sha256
Auth0: 10 for bcrypt, doesn't use pbkdf2-sha256 as default hashing algorithm
Frontegg and Stytch do not publish their hash iterations (that I could find).
Community guidelines
All issues filed in this repository must abide by the FusionAuth community guidelines.