RFC Webauthn
Questo argomento ha l’obiettivo di documentare gli obiettivi del progetto Discourse relativi all’autenticazione FIDO2 / Webauthn.
Perché?
Aggiungere il supporto Webauthn a Discourse aumenterà la sicurezza degli account utente, consentendo account senza password facilmente accessibili utilizzando le funzioni sicure dei dispositivi, come il lettore di impronte digitali di uno smartphone.
Metodi di autenticazione
- Webauthn come autenticatore a due fattori (funziona come un’alternativa a Google Authenticator)
- Webauthn come autenticatore a primo fattore (funziona come un’alternativa al login sociale)
- Webauthn come autenticatore multifattore (accesso senza nome utente)
Webauthn come autenticatore a due fattori
Questo consentirà a un utente Discourse, che ha già un account attivo, di utilizzare Webauthn come 2FA, dove attualmente supportiamo solo TOTP.
Qualsiasi metodo Webauthn può funzionare qui, sia esso biometria del dispositivo (lettore di impronte digitali su Android, Windows Hello su laptop), un chip sicuro del dispositivo (TPM, enclave sicura) o una chiave hardware (come un Yubikey).
Questo sarà disponibile per ogni utente che naviga con:
- Microsoft Edge su Windows, utilizzando Windows Hello (con riconoscimento facciale, lettore di impronte digitali o PIN)
- Chrome su macOS, utilizzando Touch ID
- Telefono Android
- Laptop/Desktop/Telefono + Chiave fisica (Yubikey, Google Titan)
Webauthn come autenticatore a primo fattore (account senza password)
Consente a un utente di accedere al proprio account Discourse utilizzando l’autenticazione Webauthn come alternativa a una password. Se è configurato un autenticatore a primo fattore, all’utente verrà richiesto di utilizzare l’autenticatore al posto della password.
Gli stessi metodi di autenticazione per l’autenticazione a due fattori funzioneranno anche per l’autenticazione a primo fattore: biometria, chip sicuro o chiave hardware.
Flusso di registrazione
Nessun campo password
Flusso di accesso
Webauthn come autenticatore multifattore (accessi senza nome utente)
Esporrà un metodo di accesso alternativo che richiede solo l’input Webauthn. La chiave di sicurezza registrata invierà inoltre le informazioni sull’ID utente al server Discourse.
Questo metodo di autenticazione richiede attualmente una chiave di autenticazione moderna (ad esempio Yubikey 5) più Google Chrome 76+, poiché si basa su una funzionalità chiamata “Resident Keys”. Poiché ciò archivia i dati sull’autenticatore, possono esserci limiti; ad esempio, Yubikey 5C può archiviare al massimo 25 di queste chiavi.
Flusso di registrazione
Questi flussi sono un’evoluzione rispetto a quello per gli accessi senza password, non un flusso di accesso separato. Ciò consente un’implementazione iterativa.
Nessun campo password, aggiunge una casella di controllo extra per l’uso delle Resident Keys
Flusso di accesso
Se il nome utente viene lasciato vuoto, proveremo a recuperare un
user_id dall’autenticatore
Riferimenti
Demo
https://webauthndemo.appspot.com/
Risorse
https://medium.com/@herrjemand/introduction-to-webauthn-api-5fd1fb46c285


























