← Knowledge Base

Phishing-Resistant MFA: Why Your Current MFA Probably Is Not Enough

  • MFA
  • Identity
  • Security
  • Microsoft 365
  • Passkeys

TL;DR

Turning on multi-factor authentication (MFA) was the right move, but attackers have caught up with the common types. SMS codes, authenticator app codes, and push prompts can all be stolen, intercepted, or spammed until someone taps “approve” by mistake. Phishing-resistant MFA is the class of MFA that a fake login page physically cannot steal, because the credential is cryptographically tied to the real website. In practice that means passkeys, FIDO2 security keys, and Windows Hello for Business.


Now for the more technical explanation

The problem: “we have MFA” is not the finish line

MFA dramatically cut account takeovers, so attackers adapted. The weakness in most MFA is that the second factor is a shared secret or an approval that can be captured or coaxed out of you in real time. The main attacks:

The common thread: all of these factors can be relayed. If you can read a code or tap approve, so can a fake site standing between you and the real one.

What is phishing-resistant MFA?

Phishing-resistant MFA removes the thing that can be relayed. Instead of a code you type, the credential is a cryptographic key pair bound to the specific website, and it proves possession without ever revealing a secret.

This is the FIDO2 / WebAuthn standard, and it is what powers passkeys, security keys, and Windows Hello for Business.

The MFA ladder, worst to best

A quick mental ranking, weakest first:

  1. SMS / voice codes (SIM-swappable, interceptable). Better than nothing, but retire these.
  2. Email codes (only as strong as the email account, which is often the thing you are trying to protect).
  3. Authenticator app codes / TOTP (not relayed automatically, but still phishable if you type them into a fake site).
  4. Push approval (convenient, but vulnerable to fatigue/bombing).
  5. Number-matching push (you type a number shown on the login screen into the app). A real improvement that kills blind approval and push bombing, and worth enabling everywhere as a baseline. But it is still phishable via AiTM, so it is a strong stopgap, not the destination.
  6. Phishing-resistant: passkeys, FIDO2 security keys, Windows Hello for Business, certificate-based. This is the goal.

Getting everyone to at least number matching is a good baseline. Getting your high-value accounts to level 6 is the win.

What to actually deploy

Enforcing it (this ties into Conditional Access)

Deploying the credentials is only half the job; you have to require them, or people will keep using the weaker factor. In Microsoft 365 / Entra:

Attackers do not attack the strong door; they attack the fallback. Your phishing-resistant rollout is only as strong as what happens when someone loses their key or phone.

A sensible rollout

  1. Baseline now: turn on number matching for everyone to kill push bombing, and start disabling SMS/voice.
  2. Admins next: issue hardware security keys to every privileged account and require phishing-resistant MFA for those roles in Conditional Access.
  3. Everyone else: roll out passkeys (and Windows Hello for Business on managed PCs), register a backup credential per user, then require phishing-resistant methods broadly.
  4. Close the back doors: remove weak MFA methods and tighten help-desk recovery so nobody can downgrade around your new controls.

The short version

Having MFA is no longer the same as being protected, because push prompts, SMS, and app codes can all be relayed by a real-time phishing proxy or spammed until someone approves. Phishing-resistant MFA (passkeys, FIDO2 security keys, and Windows Hello for Business) fixes this by binding the credential to the real website so a fake one gets nothing. Deploy it, enforce it with Conditional Access authentication strengths, start with your admins, register backups, and shut the weak methods and soft recovery paths that let attackers go around it.

Written by Tom Langston, IT Infrastructure and Cybersecurity.