Autenticazione FIDO con passkey

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Introduzione

Lo standard di autenticazione FIDO (Fast IDentity Online) definisce un meccanismo di autenticazione veloce e sicuro per consentire agli utenti di accedere a siti web e applicazioni.

La FIDO Alliance, con i rappresentanti di una serie di organizzazioni, sviluppa specifiche tecniche aperte e scalabili che consentono di accedere a siti web e app tramite un protocollo comune. Ciò significa che qualsiasi azienda può utilizzare gli standard FIDO per implementare tecnologie, come le password, per l'autenticazione sicura.

Una passkey è una credenziale di accesso FIDO, associata a un'origine (sito web o applicazione) e a un dispositivo fisico. Le password consentono agli utenti di autenticarsi senza dover inserire nome utente, password o qualsiasi altro fattore di autenticazione. Questa tecnologia mira a sostituire le password come meccanismo di autenticazione principale.

Perché l'autenticazione sicura è importante?

Da decenni le password vengono utilizzate per l'autenticazione nel computing. Tuttavia, l'autenticazione basata su password non è l'opzione più sicura per l'autenticazione, poiché i database possono essere violati e le password possono essere sottoposte ad spoofing.

Molti utenti accedono a siti web diversi usando le stesse password. Ciò significa che, quando un sito web viene violato, ogni altro account che utilizza la stessa password è a rischio. Pertanto, anche se hai creato un sistema di password sicuro, le persone sono ancora a rischio quando una password è la loro unica protezione.

Alcuni siti e applicazioni richiedono la verifica in due passaggi richiedendo una seconda credenziale recapitata tramite SMS, email, applicazione e così via. Sebbene sia più sicuro rispetto all'utilizzo di una password, questo metodo di verifica in due passaggi è comunque vulnerabile al phishing, perché l'utente può essere convinto a inserire i dettagli della verifica in due passaggi in un sito web dannoso.

In che modo FIDO offre maggiore sicurezza?

L'autenticazione basata su FIDO rimuove molti dei problemi derivanti dall'autenticazione basata su password e dall'autenticazione che utilizza i secondi passaggi tradizionali. In particolare:

  • L'autenticazione FIDO utilizza la crittografia della chiave pubblica.
  • FIDO contribuisce a garantire che le credenziali non vengano condivise con parti dannose o con altre parti che non ne sono proprietari

La crittografia di chiavi pubbliche riduce la minaccia dovuta a potenziali violazioni del database. L'utente si registra con un'unica origine (un sito o un'applicazione), che genera una coppia di chiavi pubblica-privata nell'autenticatore (un dispositivo fisico). La chiave pubblica dell'utente viene archiviata dal server di origine, ma da sola è inutile per un utente malintenzionato. Un utente malintenzionato non può ricavare la chiave privata dell'utente dai dati archiviati sul server, operazione necessaria per completare l'autenticazione.

Con FIDO, l'utente non è responsabile della conferma dell'identità di un sito web o di un'applicazione. Inoltre, l'utente non è responsabile di assicurarsi che le credenziali non siano utilizzate nei luoghi sbagliati. FIDO vincola ogni credenziale a una determinata origine, il che significa che il dispositivo (non l'uomo) è responsabile di identificare correttamente il sito web o l'applicazione.

Ad esempio, supponiamo che l'utente stia tentando di accedere a example.com. Se l'utente richiede le credenziali di proprietà di example.com su phishing-example.com, l'autenticatore rifiuterà la richiesta proteggendo così l'utente. Il processo di autenticazione rende molto difficile per i siti web o le app di phishing ottenere la verifica destinata ad altre origini.

Nel complesso, FIDO e le chiavi di accesso ti consentono di eseguire il deployment di un'autenticazione più efficace, che sia comunque utilizzabile e facile da usare per la maggior parte degli utenti.

Demo

Cosa sono le passkey?

Una passkey è una credenziale digitale conforme agli standard FIDO e W3C Web Authentication (WebAuthn). Analogamente a una password, i siti web e le applicazioni possono richiedere a un utente di creare una passkey per accedere al suo account.

Le password si basano sullo sblocco di un dispositivo per verificare l'identità dell'utente. Questa operazione potrebbe essere eseguita con un sensore biometrico (ad esempio un'impronta o il riconoscimento facciale), un PIN o una sequenza. Per generare la propria passkey (una coppia di chiavi pubblica/privata, l'utente deve prima registrarsi con l'origine).

Quando tornano al sito web o all'app per accedere, l'utente può seguire questi passaggi:

  1. Vai all'applicazione.
  2. Fai clic su Accedi.
  3. Seleziona la relativa password.
  4. Sblocca il dispositivo per completare l'accesso.

L'autenticatore genera una firma utilizzando la chiave privata. Questa firma viene utilizzata per verificare le credenziali di accesso tra l'origine e l'autenticatore, utilizzando la chiave pubblica e senza rivelare la chiave privata.

L'utente può accedere ai servizi su qualsiasi dispositivo con l'aiuto di una passkey, indipendentemente da dove sia archiviata la password. Ad esempio, è possibile utilizzare una passkey memorizzata su un telefono cellulare per accedere a un sito web su un laptop separato.

Come funzionano le password?

Le password vengono create e sincronizzate tramite il sistema operativo. Alcuni sistemi operativi potrebbero consentire la sincronizzazione automatica delle passkey tra i dispositivi degli utenti, ad esempio un telefono Android e un dispositivo Chrome OS su cui è stato eseguito l'accesso allo stesso Account Google.

Le password sono legate ai sistemi operativi, ma l'utente può utilizzare le password dal proprio telefono quando accede a un laptop. Poiché le chiavi di accesso sono create con gli standard FIDO e W3C, possono essere adottate da tutti i browser. Ad esempio, un utente visita site.example sul suo Chromebook. Questo utente ha eseguito in precedenza l'accesso a site.example sul proprio dispositivo iOS. All'utente verrà chiesto di confermare la propria identità sul dispositivo iOS. In genere, site.example crea una nuova passkey per il Chromebook dell'utente, in modo che per gli accessi successivi non sia più necessario il telefono.

Le passkey sono criptate end-to-end, il che significa che anche se Google è responsabile della loro sincronizzazione con dispositivi Android diversi, non può leggere la passkey o conoscere in altro modo i dati.

Procedura di autenticazione

Una rappresentazione della finestra di autenticazione.

Per implementare le chiavi di accesso su un sito web o un'app, è importante acquisire dimestichezza con quanto segue:

  • Gli autenticatori sono dispositivi fisici di proprietà dell'utente che contengono le password dell'utente e possono identificarlo.
  • La parte responsabile è il tuo sito web o la tua app, composta da un'applicazione frontend e un server back-end.
    • L'applicazione front-end chiama le API per interagire con l'autenticatore e avviare il processo di autenticazione.
    • Il server backend recupera gli oggetti crittografici prodotti dall'autenticatore e li verifica.

Ad esempio, supponiamo che un utente voglia acquistare un paio di scarpe da un negozio di shoes.example (la parte fiduciaria). L'utente si è già registrato per un account su shoes.example, utilizzando il proprio telefono Android con un sensore biometrico. L'utente accede a shoes.example sul proprio dispositivo Android sbloccando il dispositivo. Dopodiché, shoes.example verifica le credenziali di accesso crittografiche dell'utente in base alla chiave pubblica nota per confermare che l'identità dell'utente sia accurata.

Authenticator

Gli Authenticator sono dispositivi conformi agli standard FIDO, utilizzati per confermare l'identità dell'utente. Sono inclusi i dispositivi per scopi speciali (token di sicurezza FIDO), nonché i telefoni cellulari e altri computer che soddisfano i requisiti dell'autenticatore. Gli Authenticator eseguono le operazioni crittografiche descritte negli standard FIDO e WebAuthn.

Il dispositivo ha due ruoli, per la registrazione e l'autenticazione:

  • Quando l'utente si registra con un soggetto di fiducia, il dispositivo genera una coppia di chiavi pubblica-privata univoca. inclusi i telefoni e i computer dell'utente.
  • Quando in futuro l'utente eseguirà l'accesso alla parte che fa affidamento sul dispositivo, il dispositivo genererà una firma utilizzando la chiave privata.

Entrambe le operazioni vengono eseguite quando l'utente dimostra di essere in possesso dell'autore dell'autenticazione. Questa coppia di chiavi è registrata con un'origine specifica e può essere utilizzata solo dall'origine esatta. Se un utente arriva su un sito di phishing, le credenziali non saranno disponibili.

Dispositivi conformi a FIDO

Gli autenticatori più comuni sono:

  • autenticatori della piattaforma: sono integrati in smartphone e computer. Gli utenti che utilizzano la piattaforma utilizzano un sensore biometrico (ad esempio un sensore di impronte digitali o una fotocamera con riconoscimento facciale), un PIN o una sequenza. Poiché l'interazione di autenticazione viene completata sbloccando il dispositivo, questo dimostra in un unico passaggio che entrambi gli utenti sono in possesso del dispositivo e possono confermare la propria identità con la propria biometria univoca.
  • Token di sicurezza: generalmente si tratta di dispositivi USB con un pulsante da premere per indicare l'autenticazione. Se utilizzati con una password, i token di sicurezza possono fornire un fattore di possesso per l'autenticazione a due fattori. L'esempio più comune è un token di sicurezza Titan o uno YubiKey.

Front-end

Le applicazioni utilizzano API lato client, come WebAuthn e FIDO2 per Android, per creare e verificare le credenziali utente con l'autenticatore.

L'applicazione trasmette una verifica crittografica, generata dal server di backend, all'autenticatore. L'applicazione invia la risposta dell'autenticatore al server per la convalida, che prende provvedimenti in base a tale convalida.

Back-end

Il server memorizza le credenziali della chiave pubblica dell'utente e le informazioni sull'account.

Durante la registrazione e l'autenticazione, il server genera una verifica crittografica. Questa verifica consente di verificare che la firma sia stata emessa dall'autenticatore, confermando se l'utente è effettivamente chi è.

Domande frequenti

Chi supporta le password?

Poiché le chiavi di accesso si basano sugli standard FIDO, funzionano su Android e Chrome, insieme a molti altri client e piattaforme popolari come Microsoft Windows, Microsoft Edge, MacOS, iOS e Safari.

Consulta la documentazione fornita da queste piattaforme per confermare lo stato di disponibilità attuale.

Su Android puntiamo a mettere a disposizione degli sviluppatori il passkey, disponibile verso la fine del 2022.

Cosa succede se un utente perde il proprio dispositivo?

Le chiavi create su Android vengono sottoposte a backup e sincronizzazione con i dispositivi Android su cui hai eseguito l'accesso allo stesso Account Google, nello stesso modo in cui viene effettuato il backup delle password nel gestore delle password.

Ciò significa che le password vengono abbinate agli utenti quando sostituiscono i loro dispositivi. Per accedere alle app su un nuovo telefono, devi soltanto sbloccare il telefono.

Gli utenti possono utilizzare una passkey sul telefono per accedere sul dispositivo di un amico?

Sì. Gli utenti possono configurare un link "una tantum" tra il loro telefono e il dispositivo di qualcun altro per eseguire l'accesso.

Passaggi successivi

Segui un codelab:

Ulteriori informazioni su:

Ricevi aggiornamenti: