Skip to content

Increase the default factor for PBKDF2 based password hashing schemes #2366

Open
@mooreds

Description

@mooreds

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions