Authenticator Assurance Levels (AAL)

An Authenticator Assurance Level (AAL) is a way of saying how much you can trust a login. The more it takes to prove who you are, and the harder that proof is to fake, the higher the assurance. NIST sets out three rungs that climb in that order: AAL1 (some assurance), AAL2 (high confidence), and AAL3 (very high confidence).

The thing to keep straight: AAL is a property of the whole login event, not of any single method. Each level stacks on the one below it, and the same technique can sit at different levels depending on how it's set up.

The Three Levels (one glance)

AAL1 - SOME ASSURANCE One factor over a secure channel. Typing a password at login is the textbook case.
AAL2 - HIGH CONFIDENCE Two factors that are genuinely different, plus proper cryptography. Examples: password then approve a push on your phone; or unlock a synced passkey with your device PIN or fingerprint.
AAL3 - VERY HIGH CONFIDENCE Everything AAL2 asks for, plus a physical key that an attacker can't spoof even with a phishing lure. Examples: password then tap a FIDO security key; or a passkey that is locked to a single device.

What separates AAL2 from AAL3 is hardware binding. A synced passkey gets you AAL2, because syncing lets it roam across your devices and even copy to other users. A device-bound passkey, which lives on exactly one chip, gets you AAL3. Same passkey idea, two different levels.

Explore each level

> AAL1 - SOME ASSURANCE Requirement: prove it's you with a single factor, over a secure channel.
  • Example: logging in with a password.
  • Factor in play: Knowledge (something you know).
> AAL2 - HIGH CONFIDENCE Requirement: prove it's you with two factors that come from different categories, using approved cryptographic techniques. This is the everyday "strong MFA" bar.
  • Example: type your password, then approve a push on your phone with the Auth0 Guardian app. That's Knowledge followed by Possession.
  • Example: approve the sign-in with the same PIN or fingerprint you use to unlock your device, backed by a synced passkey that is allowed to roam across your devices.
> AAL3 - VERY HIGH CONFIDENCE Requirement: everything AAL2 needs, plus a "hard" key that resists verifier impersonation - meaning a phishing or man-in-the-middle attack can't trick you into handing over a usable credential.
  • Example: type your password, then tap or insert a FIDO security key. The key only answers to the real site, so a lookalike login page gets nothing.
  • Example: approve the sign-in with the PIN, fingerprint, or security key that unlocks your device, backed by a device-bound passkey that can exist on only one piece of hardware.
The additive chain, memorised once: every level stacks on the one before it. AAL2 starts from AAL1 (one factor, secure channel) and adds a second, different factor plus real cryptography. AAL3 takes all of AAL2 and adds a phishing-proof, hardware-bound key.

How this maps to Auth0 MFA

You can line the AAL ladder up against the authenticators from the MFA cheat sheet. Push (the Auth0 Guardian app) and synced passkeys get you to AAL2. FIDO security keys and device-bound passkeys - the phishing-resistant, WebAuthn class - push you into AAL3.

Level What it requires Auth0 authenticators that can get there
AAL1 One factor over a secure channel Password (Knowledge), Email magic link (Knowledge), Phone SMS/voice (Possession)
AAL2 Two different factors + proper cryptography Password + Auth0 Guardian push; synced passkey; WebAuthn device biometrics
AAL3 AAL2 + phishing / MITM resistance Password + FIDO WebAuthn security key; device-bound passkey

See MFA & Authentication Factors for the full authenticator-to-factor comparison.

Gotchas worth drilling

  • Synced passkeys are NOT AAL3. They land at AAL2 because sync lets them roam from device to device, and even reach other people. That mobility is precisely what disqualifies them. Only device-bound passkeys, locked to a single chip, reach AAL3.
  • AAL describes the login, not the gadget. The clearest proof: one passkey technology can satisfy AAL2 (synced) or AAL3 (device-bound) purely by how it's enrolled. Don't think "this authenticator is AAL3" - think "this way of logging in lands at AAL3."
  • Anti-phishing kicks in at AAL3, not AAL2. AAL2 already demands approved cryptography, but the impersonation-resistance requirement is what lifts you into AAL3. That's the real difference between pushing a notification and tapping a FIDO key.