Skip to content
Authentication

FIDO2

FIDO2 is an open authentication standard developed by FIDO Alliance, enabling passwordless login using cryptographic keys, biometrics, or physical security keys. It is the successor to U2F and UAF standards.

What is FIDO2?

FIDO2 Definition

FIDO2 (Fast Identity Online 2) is an open authentication standard developed by FIDO Alliance in collaboration with W3C. It enables passwordless, phishing-resistant authentication using public key cryptography, biometrics, or physical security keys.

FIDO2 Components

WebAuthn (Web Authentication API)

W3C standard for browser authentication:

  • JavaScript API for websites
  • Support by all major browsers
  • Communication with authenticators

CTAP (Client to Authenticator Protocol)

Communication protocol between device and authenticator:

  • CTAP1 - backward compatibility with U2F
  • CTAP2 - full FIDO2 functionality

How Does FIDO2 Work?

Registration Process

1. User selects "Register security key"
2. Server sends challenge (random data)
3. Authenticator generates key pair (public + private)
4. Private key stays on device
5. Public key is sent to server
6. Server stores public key for user

Login Process

1. User provides username
2. Server sends challenge
3. Authenticator signs challenge with private key
4. Signature is verified with public key on server
5. User is logged in

Types of Authenticators

Roaming Authenticators (External)

Physical security keys:

ManufacturerModelFeatures
YubicoYubiKey 5USB-A/C, NFC, biometrics
GoogleTitanUSB-C, NFC, Bluetooth
FeitianePassUSB, NFC
SoloKeysSolo V2Open source

Platform Authenticators (Built-in)

Authenticators integrated with device:

  • Windows Hello - biometrics, PIN
  • Touch ID / Face ID - Apple devices
  • Android Biometrics - fingerprint, face
  • Passkeys - synced across devices

Passkeys - Evolution of FIDO2

What Are Passkeys?

Passkeys are FIDO2 implementation with synchronization:

  • Stored in cloud (iCloud, Google)
  • Synced between user’s devices
  • Backup and recovery
  • Full FIDO2 compatibility

Passkeys vs Traditional FIDO2 Keys

AspectFIDO2 KeysPasskeys
StoragePhysical deviceCloud + device
SynchronizationNoneAutomatic
BackupNone (by design)Yes
PortabilityRequires keyAny device
SecurityVery highHigh

FIDO2 Security

Attack Resistance

Phishing:

  • Origin binding - key works only on registered domain
  • Attacker cannot intercept credentials

Man-in-the-Middle:

  • Cryptographic server verification
  • Challenge-response prevents replay

Credential Stuffing:

  • Unique keys for each service
  • No shared secrets

Brute Force:

  • Cryptographic keys (not passwords)
  • Attempt limits (lockout)

Security Model

Private key never leaves authenticator

Server stores only public key

Even with database breach - no threat

FIDO2 vs Other Methods

FIDO2 vs Passwords

AspectPasswordsFIDO2
PhishingVulnerableResistant
ReuseCommon problemImpossible
Brute forcePossibleImpossible
ConveniencePoorVery good
BreachesHigh riskNo risk

FIDO2 vs SMS/TOTP

AspectSMS/TOTPFIDO2
PhishingVulnerable (real-time)Resistant
SIM swapVulnerable (SMS)Resistant
ConvenienceMediumGood
CostsSMS has costsOne-time purchase

FIDO2 Implementation

Browser Support

  • Chrome 67+
  • Firefox 60+
  • Safari 13+
  • Edge 18+

Platforms

  • Windows 10/11 (Windows Hello)
  • macOS Big Sur+ (Touch ID)
  • iOS 14+ / Android 7+

Implementation Example (JavaScript)

Registration:

const credential = await navigator.credentials.create({
    publicKey: {
        challenge: serverChallenge,
        rp: { name: "Example Corp" },
        user: {
            id: userId,
            name: "user@example.com",
            displayName: "User"
        },
        pubKeyCredParams: [
            { type: "public-key", alg: -7 },  // ES256
            { type: "public-key", alg: -257 } // RS256
        ],
        authenticatorSelection: {
            userVerification: "preferred"

});

Login:

const assertion = await navigator.credentials.get({
    publicKey: {
        challenge: serverChallenge,
        allowCredentials: [{
            type: "public-key",
            id: credentialId
        }]

});

Use Cases

Enterprise

  • Workstation login
  • VPN and remote access
  • Internal applications
  • Regulatory compliance (PCI DSS, HIPAA)

Consumer

  • Service login (Google, Microsoft, GitHub)
  • Online banking
  • E-commerce
  • Social media

High Security

  • Critical infrastructure
  • Financial systems
  • Government administration
  • Healthcare

Challenges and Limitations

Challenges

  • Adoption - requires service support
  • Recovery - what if you lose your key?
  • Cost - physical keys have cost
  • Education - users accustomed to passwords

Solutions

  1. Backup authenticator - second spare key
  2. Recovery codes - one-time codes
  3. Passkeys - cloud synchronization
  4. Gradual deployment - MFA before passwordless

Future of Authentication

  • Passkeys as default method
  • Password elimination
  • Biometrics + FIDO2
  • Integration with identity providers

Standards and Regulations

  • NIST 800-63-4 - recommends FIDO2
  • PSD2/SCA - meets strong authentication requirements
  • Zero Trust - FIDO2 as foundation

FIDO2 represents the future of authentication, offering significantly higher security than passwords while improving user convenience.

Tags:

fido2 u2f authentication passwordless security keys webauthn

Want to Reduce IT Risk and Costs?

Book a free consultation - we respond within 24h

Response in 24h Free quote No obligations

Or download free guide:

Download NIS2 Checklist