WebAuthn is de authenticatielaag van de FIDO2-standaard. In plaats van te vertrouwen op door de gebruiker onthouden geheimen, maakt het gebruik van asymmetrische cryptografie. Tijdens registratie genereert de authenticator van een gebruiker (hardwaresleutel, secure enclave, TPM, enz.) een privé-/publiek-sleutelpaar dat is gekoppeld aan het relying-party-domein. De browser stuurt de publieke sleutel en attestation-gegevens naar de server, die deze opslaat als een credential-record. De privésleutel verlaat nooit het apparaat van de gebruiker.
Authenticatie-flow
Bij het inloggen verstuurt de server een willekeurige challenge. De browser stuurt deze challenge door naar de authenticator, die de aanwezigheid van de gebruiker verifieert (bv. knopdruk), optioneel gebruikersverificatie afdwingt (PIN, biometrisch) en de challenge ondertekent met de opgeslagen privésleutel. De server valideert de handtekening met de eerder geregistreerde publieke sleutel en controleert of de sign-counter van de authenticator is verhoogd, ter bescherming tegen gekloonde sleutels.
Passkeys
Passkeys breiden WebAuthn-credentials uit door cross-device-beschikbaarheid mogelijk te maken. Besturingssystemen synchroniseren credentials via end-to-end versleutelde cloudopslag. Een passkey kan worden ontgrendeld met de lokale authenticatiemethode van het apparaat (Touch ID, Face ID, Windows Hello, Android-biometrie) en worden gebruikt op verschillende browsers en apparaten. Dit elimineert de wrijving van iets onthouden of typen, terwijl hardware-gebaseerde beveiliging behouden blijft.
Voordelen ten opzichte van wachtwoorden
- Phishing-resistentie – de authenticator koppelt elke credential aan een specifieke origin; een phishingsite kan deze niet misleiden om een challenge voor een ander domein te ondertekenen.
- Geen gedeelde geheimen – zonder wachtwoorddatabase is het risico op credential-lekken drastisch verlaagd. Zelfs als de credential-opslag van een server is gecompromitteerd, krijgt de aanvaller alleen publieke sleutels.
- Betere UX – gebruikers bevestigen simpelweg een biometrische prompt of raken een security key aan. Cross-device-passkeys elimineren wachtwoord-resets en typefouten.
- Sterke multi-factor – WebAuthn kan voldoen aan "iets wat je hebt" (de authenticator) en "iets wat je bent/weet" (biometrisch of PIN) in één gebaar, en bereikt sterke MFA met minimale moeite.
- Bestand tegen replay en credential stuffing – challenges zijn eenmalig en privésleutels kunnen niet worden hergebruikt tussen diensten, wat replay-aanvallen en credential stuffing tegengaat.
