Design Recovery Codes as Backup Authenticators
Strong authentication creates a recovery problem: what happens when the user loses the device, key, or application that normally proves who they are? If recovery is much weaker than normal sign-in, an attacker can ignore the strong authenticator and target the fallback instead. If recovery is too difficult, legitimate users can permanently lose access. A recovery code is a secret generated in advance and kept by the user for this failure case. It acts as a backup authenticator: possession of the code can restore access when the normal authenticator is unavailable.