

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Multi-Factor Authentication
incomplete
2: TOTP
incomplete
3: Hardware Tokens
incomplete
4: Passkeys
incomplete
5: Choosing an MFA Method
incomplete
6: Account Recovery
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
Strong MFA doesn't do much good if an attacker can bypass it through an easier recovery path. Account recovery restores control after a user loses the authenticators needed to sign in, and it has to answer a tough question:
How do we restore access without making it easy for attackers to exploit the recovery process?
Email recovery is not automatically insecure. A strong, short-lived recovery code sent to a previously verified address can be appropriate in some cases. But an email-only bypass can be too weak for a high-risk account.
Attackers know this, so they target recovery flows directly. Recovery has to balance:
Alternatives to email recovery include:
Recovery should be rare, rate-limited, and auditable – and no easier for an attacker than the account's risk level permits. Notify the user through an independent channel after every recovery!
Backup codes are supposed to be single-use, but the app never marks them as used.
Make checking and consuming a backup code one atomic database operation.
With Bearly Secure still running, run and submit the CLI tests from the project root.