Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.
FIDO2 vs U2F — What Changed and Why It Matters
U2F was the first open standard for hardware-based two-factor authentication. FIDO2 replaced it. Here is what actually changed, why U2F-only keys are no longer worth buying, and what developers need to know about the transition.
The Short Version
| U2F (CTAP1) | FIDO2 (CTAP2) | |
|---|---|---|
| API | u2f.register() / u2f.sign() | navigator.credentials.create() / .get() |
| Wire Protocol | CTAP1 — fixed-format APDU | CTAP2 — CBOR-encoded |
| User Verification | None (tap-only) | PIN, fingerprint, biometric |
| Resident Keys | No | Yes — up to 100+ |
| Passwordless Login | No | Yes |
| Attestation | X.509 cert, simple | Multiple formats (packed, TPM, android-key) |
| Extensions | None | hmac-secret, credProtect, minPinLength |
| Browser Support | Chrome only (deprecated API) | All modern browsers (WebAuthn) |
U2F: How It Worked
Universal 2nd Factor (U2F) was published by the FIDO Alliance in 2014. It defined a simple protocol: the security key stores a per-website key pair, and the browser sends a challenge that the key signs.
The flow was intentionally minimal:
- User types username + password
- Server sends a challenge
- Browser calls
u2f.sign() - User taps the key
- Key signs the challenge with its private key
- Server verifies the signature
U2F was second factor only. You always needed a password first. The key could not store credentials — it derived per-website key pairs from a master secret using a random nonce (the "key handle").
FIDO2: What Changed
FIDO2 (published 2018) is not just an upgrade — it is a fundamentally different architecture built on two specifications:
- WebAuthn (W3C) — the browser API, now implemented in Chrome, Firefox, Safari, and Edge
- CTAP2 (FIDO Alliance) — the wire protocol between browser and authenticator
1. Passwordless Login
FIDO2 introduced resident keys (also called discoverable credentials). The key stores the credential on-device, so the server does not need to send a key handle. This enables true passwordless flows: type your username, tap the key (or verify biometrics), and you are in.
U2F could never do this because it had no on-device credential storage.
2. User Verification
U2F keys had no concept of user verification beyond "someone tapped the button." FIDO2 added PIN and biometric verification. The authenticator can enforce that the user proved presence and identity before signing.
This is critical for passwordless: without user verification, anyone who steals your key can log in as you.
3. CTAP2 Wire Protocol
CTAP1 used fixed-format APDUs — simple but rigid. CTAP2 uses CBOR (Concise Binary Object Representation), a flexible binary encoding that supports extensible parameter maps. This makes it easy to add new commands and extensions without breaking backward compatibility.
4. Extensions
FIDO2 extensions allow authenticators to provide extra capabilities:
| Extension | Purpose |
|---|---|
| hmac-secret | Derive a symmetric secret from the key — useful for encrypting local data |
| credProtect | Require user verification before allowing credential use |
| minPinLength | Enforce minimum PIN length per credential |
| largeBlob | Store additional per-credential data on the key |
U2F had no extension mechanism whatsoever.
Backward Compatibility
The opposite is not true: U2F-only keys (like early Feitian ePass FIDO or original Yubico FIDO U2F Security Key) cannot participate in FIDO2 flows. They lack:
- Resident key storage
- PIN/biometric verification
- CBOR encoding (CTAP2)
Google, GitHub, and Microsoft have all moved to WebAuthn-first authentication. U2F-only keys still work as a second factor on these sites, but you lose passwordless login, biometric convenience, and the richer security properties of FIDO2.
Should You Upgrade?
Recommended FIDO2 Keys
YubiKey 5 NFC — Maximum protocol support (FIDO2 + PIV + OpenPGP + OATH). The developer's default choice. Check Price on Amazon
YubiKey 5C NFC — Same as above with USB-C. Check Price on Amazon
Feitian BioPass K49 Pro — FIDO2 with fingerprint sensor + NFC at lower cost. Great for biometric convenience. Check Price on Amazon
Protocol Comparison in Depth
Registration Flow
U2F: Browser calls u2f.register() → key generates key pair, returns key handle + attestation cert → server stores key handle.
FIDO2: Browser calls navigator.credentials.create() → key generates resident key (if requested), returns authenticatorData + attestation object → server stores credential ID. The attestation object is CBOR-encoded and contains rich metadata (AAGUID, COSE key, extensions).
Authentication Flow
U2F: Server sends key handle + challenge → key signs → browser returns signature. Always requires password first.
FIDO2: Server sends challenge (no key handle needed for resident keys) → user verifies via PIN/biometric → key returns signed authenticatorData. Can replace the password entirely.
Attestation
U2F attestation was a single X.509 certificate chain. FIDO2 supports multiple attestation formats:
| Format | Used By |
|---|---|
| packed | Most third-party keys (Feitian, SoloKeys) |
| tpm | Windows Hello (TPM 2.0) |
| android-key | Android authenticators |
| apple | iOS/macOS Touch ID & Face ID |
| none | Self-attested (passkeys on phones) |
You can decode any of these with our FIDO2 CBOR Attestation Parser.
What About Passkeys?
Passkeys are FIDO2 credentials synced across devices via cloud (iCloud Keychain, Google Password Manager). They use the same WebAuthn API but are platform authenticators rather than roaming authenticators (hardware keys).
Passkeys and security keys are complementary: passkeys for everyday convenience, hardware keys for high-security accounts where you want the private key to never leave a single physical device.
Summary
| Question | Answer |
|---|---|
| Is FIDO2 backward compatible with U2F? | Yes — every FIDO2 key also speaks CTAP1/U2F |
| Can U2F keys do passwordless? | No — need resident keys + user verification |
| Should I still buy U2F-only keys? | No — they are discontinued and obsolete |
| Do I need a hardware key if I have passkeys? | Yes for high-security accounts — passkeys sync to the cloud, hardware keys do not |
Related
Best Security Keys — Full buyer's guide | FIDO2 & CTAP Protocol Guide — Deep technical walkthrough | FIDO2 Attestation Guide — Attestation formats explained | FIDO2 CBOR Attestation Parser — Decode attestation data