Deploying phishing-resistant MFA across the org
Not all MFA is equal. How to roll out FIDO2 / WebAuthn and passkeys at scale, rank your factors by real-world strength, handle enrollment and recovery, and retire SMS.
What to implement
Standardize on phishing-resistant MFA (FIDO2/WebAuthn security keys and passkeys) for all users, prioritizing administrators and high-risk roles first. Treat push and TOTP as interim factors, deprecate SMS, block legacy protocols that bypass MFA, and design enrollment and account-recovery so they are as phishing-resistant as the login itself.
MFA dramatically reduces account takeover, but attackers have adapted: real-time phishing proxies (adversary-in-the-middle) relay one-time codes and push approvals, and MFA-fatigue attacks spam users until someone taps approve. CISA's guidance is unambiguous: the goal is phishing-resistant MFA, which those attacks cannot defeat.
Rank your factors honestly
- FIDO2 / WebAuthn security keys and passkeys (strongest). Origin-bound public-key cryptography; the credential only works on the genuine domain, so AiTM phishing fails outright.
- PIV / smart cards. Certificate-based, phishing-resistant; common in government and high-assurance estates.
- Authenticator app (TOTP) / number-matching push (interim). Better than SMS, but phishable via AiTM proxies. Number matching mitigates fatigue but not real-time relay.
- SMS / voice OTP (deprecate). Vulnerable to SIM-swap and interception; NIST discourages it as a primary factor. Keep only as a last-resort fallback where nothing else is possible.
Phishing-resistant does not mean 'strong MFA generally'
Only FIDO2/WebAuthn and PKI/PIV are phishing-resistant. TOTP and push (even with number matching) are not, because a proxy can relay them in real time. If a control objective says 'phishing-resistant MFA,' TOTP does not satisfy it. Plan for FIDO2 as the destination, not the fallback.
Sequence the rollout
- Administrators and privileged accounts first: highest blast radius, smallest population, fastest win.
- Then internet-facing and high-risk roles (finance, executives, IT, developers with production access).
- Then the general population, in waves aligned to teams so support can absorb enrollment questions.
- Provision two authenticators per user (e.g. a security key plus a platform passkey) so a lost factor doesn't lock people out.
Close the bypasses
MFA you can route around is MFA you don't have. The most common escapes:
- Legacy authentication protocols (IMAP/POP/SMTP basic auth, legacy sign-in) that never prompt for MFA: disable them via conditional access.
- MFA-exempt accounts and "break-glass" logins: inventory them, protect break-glass with strong physical controls and monitoring.
- Session/token theft: enforce reasonable session lifetimes, token binding where available, and reauthentication for sensitive actions.
- Weak recovery: an SMS-based reset undermines a FIDO2 login; see below.
Enrollment and recovery are part of the threat model
Attackers target the weakest step. If enrollment or recovery falls back to a phishable factor, the whole scheme degrades to that factor's strength.
- Bind first-time enrollment to a trusted context (managed device, in-person / supervised, or an existing strong factor) rather than emailing a self-enroll link.
- For recovery, require another registered strong authenticator or a verified helpdesk process with identity proofing, not SMS or security questions.
- Harden the helpdesk against social engineering: callers requesting MFA resets are a primary attack vector, so require out-of-band identity verification and log every reset.
- Issue and register backup security keys for critical staff.
Rollout metrics to track
Percentage of users on phishing-resistant factors (overall and for admins specifically), count of accounts still allowing SMS or exempt from MFA, number of legacy-auth sign-ins still succeeding, helpdesk MFA-reset volume with verification evidence, and count of users with fewer than two registered authenticators.