WebAuthn (Web Authentication) è uno standard web sviluppato dal World Wide Web Consortium (W3C) e dalla FIDO Alliance per consentire un'autenticazione sicura, senza password sul web. Fa parte del più ampio framework FIDO2 e mira a ridurre la dipendenza dalle password tradizionali, che sono spesso vulnerabili al phishing, al credential stuffing e ad altri attacchi.
Alla base, WebAuthn consente agli utenti di autenticarsi utilizzando la crittografia a chiave pubblica. Invece di un nome utente e una password, gli utenti registrano una coppia di chiavi pubblica-privata univoca con un'applicazione web (la Relying Party). La chiave privata è archiviata in modo sicuro su un autenticatore — come una chiave di sicurezza hardware, uno smartphone o un dispositivo biometrico integrato — mentre la chiave pubblica è archiviata sul server.
Durante l'autenticazione, il server emette una sfida che deve essere firmata dalla chiave privata dell'utente. La sfida firmata viene restituita e verificata tramite la chiave pubblica memorizzata, garantendo l'integrità e l'origine della risposta. Questo approccio impedisce l'intercettazione o il riutilizzo delle credenziali.
WebAuthn supporta una gamma di autenticatori e dispositivi, rendendolo flessibile sia per gli sviluppatori che per gli utenti. Consente inoltre l'autenticazione a più fattori (MFA) se combinato con altri fattori come PIN o dati biometrici, migliorando significativamente la sicurezza senza sacrificare la facilità d'uso.