Cosa sono le Passkey e perche sostituiscono le password
Le Passkey sono credenziali crittografiche legate al dispositivo dell'utente. Sostituiscono le password tradizionali con autenticazione biometrica — impronta digitale, Face ID — o con il PIN del dispositivo. Il risultato: niente piu password da ricordare, niente piu password manager, niente piu rischi legati a credenziali deboli o riutilizzate.
Dal punto di vista tecnico, le Passkey si basano sul protocollo WebAuthn (Web Authentication API), uno standard W3C supportato da tutti i browser moderni: Chrome, Firefox, Safari, Edge. Anche i principali sistemi operativi — Windows, macOS, iOS, Android — gestiscono nativamente la sincronizzazione delle Passkey tra dispositivi.
Per chi sviluppa applicazioni web con Laravel, la domanda non era se adottare le Passkey, ma quando il framework avrebbe offerto un supporto nativo. Con Laravel 13, la risposta e adesso.
Come funzionano le Passkey in Laravel 13
Laravel 13 integra le Passkey in due punti dell'ecosistema:
- Starter kit: i template Breeze e Jetstream includono registrazione e login via Passkey out of the box, con interfaccia utente gia pronta e flusso completo
- Laravel Fortify: il backend di autenticazione gestisce il flusso WebAuthn sotto il cofano, con metodi dedicati per la registrazione, l'autenticazione e la gestione delle Passkey
Il flusso di registrazione
Quando un utente registra una Passkey, il processo e trasparente:
- L'applicazione genera una challenge crittografica e la invia al browser
- Il browser invoca l'API WebAuthn del sistema operativo
- L'utente conferma con biometria o PIN
- Il dispositivo genera una coppia di chiavi pubblica/privata
- La chiave pubblica viene inviata al server e salvata nel database con una migrazione dedicata
- La chiave privata resta sul dispositivo, non lascia mai il dispositivo dell'utente
Il flusso di login
Al login successivo, il processo e ancora piu rapido:
- L'applicazione invia una challenge
- L'utente sblocca con biometria o PIN
- Il dispositivo firma la challenge con la chiave privata
- Il server verifica la firma con la chiave pubblica salvata
- L'utente e autenticato — senza aver digitato nulla
Impatto sulla sicurezza: quali attacchi eliminano le Passkey
Le Passkey non sono solo piu comode delle password — sono oggettivamente piu sicure. Ecco i vettori di attacco che eliminano completamente:
- Phishing: le Passkey sono legate al dominio. Una Passkey creata per
tuosito.comnon funziona sutuosito-fake.com. L'attacco di phishing piu comune diventa impossibile. - Brute force: non esiste una password da indovinare. L'autenticazione si basa su crittografia asimmetrica, non su stringhe che possono essere enumerate.
- Credential stuffing: poiche non ci sono password, non ci sono credenziali da riutilizzare. Un data breach su un altro sito non compromette l'account dell'utente.
- Keylogging: l'utente non digita nulla. Non c'e input da intercettare.
- Man-in-the-middle: il protocollo WebAuthn include la verifica dell'origine, rendendo inefficaci gli attacchi MITM sull'autenticazione.
Compatibilita e fallback: gestire la transizione
Non tutti gli utenti hanno dispositivi che supportano le Passkey, e non tutti sono pronti ad abbandonare le password. Laravel 13 gestisce questa transizione in modo pragmatico:
- Il fallback a email e password resta disponibile per tutti gli utenti
- Un utente puo registrare piu Passkey per dispositivi diversi
- La migrazione aggiunge una tabella dedicata senza modificare la tabella
usersesistente - Il flusso di autenticazione rileva automaticamente se il browser supporta WebAuthn e propone la Passkey come opzione primaria, con fallback trasparente alla password tradizionale
Questo approccio graduale e fondamentale: non si puo forzare l'adozione delle Passkey, ma si puo incentivare offrendo un'esperienza di login superiore a chi le utilizza.
Implementazione pratica: cosa serve per attivare le Passkey
Per attivare le Passkey in un progetto Laravel 13, i passaggi sono minimi:
- Eseguire la migrazione che crea la tabella
passkeys - Aggiungere il trait
HasPasskeysal modelloUser - Configurare le rotte di registrazione e autenticazione Passkey in
fortify.php - Aggiungere il componente frontend per la registrazione e il login (incluso negli starter kit)
Per chi usa gli starter kit Breeze o Jetstream, tutto e gia configurato. Per progetti esistenti che usano Fortify direttamente, l'integrazione richiede circa 30 minuti di lavoro.
Considerazioni per applicazioni multi-tenant
In applicazioni multi-tenant, le Passkey richiedono attenzione aggiuntiva sulla configurazione del dominio. Poiche le Passkey sono legate al dominio, ogni tenant con un dominio diverso richiede Passkey separate. Laravel 13 gestisce questo scenario tramite la configurazione dinamica del relying party nel flusso WebAuthn, permettendo di adattare il dominio in base al tenant corrente.
Perche adottare le Passkey ora
Per chi lavora come sviluppatore freelance su progetti Laravel, offrire l'autenticazione via Passkey ai clienti e un valore aggiunto concreto. Non e un nice-to-have futuristico: e uno standard maturo, supportato da tutti i browser e sistemi operativi principali, con un'integrazione nativa nel framework.
Per applicazioni che gestiscono dati sensibili — gestionali, aree admin, piattaforme SaaS, applicazioni finanziarie — adottare le Passkey migliora la sicurezza in modo misurabile e offre un'esperienza utente superiore. Con Laravel 13, l'integrazione e nativa, documentata e testata: non c'e motivo per non iniziare.