Guida per gli sviluppatori di passkey per i soggetti affidabili

Scopri come integrare le passkey nel tuo servizio.

Struttura di un sistema di passkey

Un sistema di passkey è costituito da alcuni componenti:

  • Parte attendibile: nel contesto della passkey, un componente aggiuntivo (RP) gestisce l'emissione e l'autenticazione di passkey. L'RP deve gestire un client, ovvero un sito web o un'app che crea passkey o autentica con passkey, e un server per la registrazione, l'archiviazione e la verifica delle credenziali generate dalle passkey sul client. Un'applicazione mobile con passkey deve essere associata a un dominio del server RP utilizzando il meccanismo di associazione fornito dal sistema operativo, ad esempio Digital AssetLinks.
  • Authenticator: un dispositivo di elaborazione come un cellulare, un tablet, un laptop o un computer che può creare e verificare le passkey usando la funzionalità di blocco schermo offerta dal sistema operativo.
  • Gestore delle password: software installato sui dispositivi dell'utente finale che pubblica, archivia e sincronizza le passkey, ad esempio Gestore delle password di Google.

Flusso di registrazione

Utilizza l'API WebAuthn su un sito web o la libreria di Gestore delle credenziali su un'app Android per creare e registrare una nuova passkey.

Per creare una nuova passkey, è necessario fornire alcuni componenti chiave:

  • ID RP: fornisci l'ID del componente sotto forma di dominio web.
  • Informazioni utente: l'ID utente, il nome utente e un nome visualizzato.
  • Credenziali da escludere: informazioni sulle passkey memorizzate in precedenza per evitare la registrazione duplicata.
  • Tipi di passkey: indica se utilizzare il dispositivo stesso ("autenticatore della piattaforma") come autenticatore o un token di sicurezza rimovibile ("autenticatore multipiattaforma / Roaming"). Inoltre, i chiamanti possono specificare se rendere le credenziali rilevabili in modo che l'utente possa selezionare un account con cui accedere.

Quando un RP richiede di creare una passkey e l'utente la verifica con uno sblocco dello schermo, viene creata una nuova passkey e viene restituita una credenziale di chiave pubblica. Inviala al server e memorizza l'ID credenziale e la chiave pubblica per l'autenticazione futura.

Flusso di registrazione

Scopri nel dettaglio come creare e registrare una passkey:

Flusso di autenticazione

Utilizza l'API WebAuthn su un sito web o la libreria di Gestore delle credenziali su un'app Android per l'autenticazione con una passkey registrata.

Per eseguire l'autenticazione con una passkey, è necessario fornire un paio di componenti chiave:

  • ID RP: fornisci l'ID del componente sotto forma di dominio web.
  • Sfida: una verifica generata dal server che impedisce gli attacchi di ripetizione.

Quando un RP richiede un'autenticazione con una passkey e l'utente la verifica con uno sblocco dello schermo, viene restituita una credenziale di chiave pubblica. La invii al server e verifica la firma con la chiave pubblica archiviata.

Flusso di autenticazione

Scopri nel dettaglio come eseguire l'autenticazione con una passkey:

Integrazioni lato server

Al momento della creazione di una passkey, il server deve fornire parametri chiave come una verifica, informazioni utente, ID credenziali da escludere e altro ancora. Verifica quindi la credenziale della chiave pubblica creata inviata dal client e archivia la chiave pubblica nel database. Per l'autenticazione con una passkey, il server deve convalidare attentamente la credenziale e verificare la firma per consentire all'utente di accedere.

Tuttavia, la creazione autonomamente di un server di passkey non è efficace in termini di tempo e potrebbe causare bug che potrebbero portare a un incidente di sicurezza critico. Ti consigliamo di utilizzare una delle librerie open source disponibili o una soluzione che possa aiutarti a velocizzare l'integrazione delle passkey.

Per trovare l'elenco delle librerie open source, consulta la sezione Librerie di passkeys.dev o un elenco di librerie WebAuthn basato sul crowdsourcing. Per trovare una soluzione, FIDO Alliance dispone di un elenco di server FIDO2 certificati.

Meccanismi di autenticazione esistenti (legacy)

Se supporti le passkey sul tuo servizio esistente, la transizione dal meccanismo di autenticazione precedente, come le password alle passkey, non avverrà entro un giorno. Sappiamo che saresti più incline a eliminare il più presto possibile il metodo di autenticazione più debole, ma questo potrebbe causare confusione negli utenti o lasciare indietro alcuni utenti. Per il momento ti consigliamo di mantenere il metodo di autenticazione esistente.

Ecco alcuni motivi:

  • Alcuni utenti in un ambiente non compatibile con le passkey: il supporto delle passkey si sta espandendo ampiamente su più sistemi operativi e browser, ma chi utilizza versioni precedenti non può ancora utilizzare le passkey.
  • L'ecosistema delle passkey è ancora in fase di sviluppo: l'ecosistema delle passkey si sta evolvendo. I dettagli dell'UX e la compatibilità tecnica tra i diversi ambienti possono migliorare.
  • Gli utenti potrebbero non essere ancora pronti a vivere con una passkey: ci sono persone che esitano a scoprire nuove cose. Man mano che l'ecosistema delle passkey matura, potrà capire come funzionano le passkey e perché sono utili per loro.

Rivedi il meccanismo di autenticazione esistente

Mentre le passkey rendono l'autenticazione più semplice e sicura, mantenere i vecchi meccanismi è come lasciare un buco. Ti consigliamo di rivedere e migliorare i tuoi meccanismi di autenticazione esistenti.

Password

Creare password efficaci e gestirle per ogni sito web è un'attività complessa per gli utenti. Ti consigliamo vivamente di utilizzare un gestore delle password integrato nel sistema o uno autonomo. Apportando una piccola modifica al modulo di accesso, i siti web e le app possono fare un'enorme differenza per la sicurezza e l'esperienza di accesso. Verifica come apportare queste modifiche:

Autenticazione a due fattori

Sebbene l'utilizzo di un gestore delle password aiuti gli utenti a gestire le password, non tutti gli utenti le usano. La richiesta di una credenziale aggiuntiva denominata password unica (OTP) è una pratica comune per proteggere questi utenti. Le OTP vengono in genere fornite tramite un'email, un SMS o un'app di autenticazione come Google Authenticator. Poiché le OTP in genere sono un breve testo generato dinamicamente e valido solo per un intervallo di tempo limitato, riduce la probabilità di compromissione dell'account. Questi metodi non sono efficaci come una passkey, ma sono molto migliori che lasciare agli utenti solo una password.

Se selezioni il metodo di erogazione dell'OTP per l'invio di una OTP tramite SMS, consulta le seguenti best practice per semplificare l'esperienza utente di inserimento dell'OTP.

Federazione delle identità

La federazione delle identità è un'altra opzione per consentire agli utenti di accedere in modo semplice e sicuro. Con la federazione delle identità, i siti web e le app possono consentire agli utenti di accedere utilizzando l'identità dell'utente di un provider di identità di terze parti. Ad esempio, l'opzione Accedi con Google genera grandi conversioni per gli sviluppatori e gli utenti trovano l'autenticazione basata su password più semplice e preferibile. La federazione delle identità è complementare alle passkey. È l'ideale per registrarsi, in quanto il sito web o l'app può ottenere informazioni di base del profilo dell'utente in un solo passaggio, mentre le passkey sono perfette per semplificare la riautenticazione.

Tieni presente che, una volta che Chrome avrà eliminato gradualmente i cookie di terze parti nel 2024, alcuni sistemi di federazione delle identità potrebbero essere interessati a seconda di come vengono creati. Per mitigare l'impatto, è in fase di sviluppo una nuova API browser chiamata Federated Credential Management API (FedCM). Se gestisci un provider di identità, dai un'occhiata ai dettagli e scopri se dovresti adottare FedCM.

L'accesso tramite link magico è un metodo di autenticazione in cui un servizio invia un link di accesso su un'email in modo che l'utente possa fare clic per autenticarsi. Anche se ciò consente agli utenti di accedere senza ricordare la password, il passaggio tra il browser o l'app e il client di posta sarà un fastidio. Inoltre, poiché il meccanismo di autenticazione si basa sull'email, la debole sicurezza del provider email può mettere a rischio gli account degli utenti.

Risorse per l'apprendimento

Web

Per integrare le passkey sul tuo sito web, utilizza l'API Web Authentication (WebAuthn). Per saperne di più, consulta le seguenti risorse:

Android

Per integrare le passkey nella tua app per Android, utilizza la libreria di Gestore delle credenziali. Per saperne di più, consulta le seguenti risorse:

UX

Scopri i consigli sull'esperienza utente relativi alle passkey: