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)
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
- Example: logging in with a password.
- Factor in play: Knowledge (something you know).
- 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.
- 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.
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.