|
|
|
|
|
by gruez
1647 days ago
|
|
>An alternative is account locking after a number of failures, which is much better. However it also brings problems. It means that your 2FA must only be accessible for people who already have passed one level of security, otherwise you have a denial of service vulnerability. Isn't that how most 2fa flows work? You enter username + password, if it gets accepted you move onto a second page where you enter your 2fa code. > Plus you need all the account unlocking procedures etc, and need to make sure they are secure, and not actually effectively another attack route. But realistically speaking don't you need a password reset flow? If so you can just reuse the password reset flow for lockouts as well. |
|
For TOTP-based 2FA, it would ideally prompt for all three (username/password/TOTP code) immediately, not indicating which part of auth failed.
This may not always be desired, for example when TOTP is just one among several 2FA options.
In those cases, at the very least always prompt for 2FA for accounts that require it, regardless of if password auth succeeded or not. Don’t tell the user if it was the password or TOTP code that failed.