 
        La FIDO (Fast IDentity Online) Alliance è un’organizzazione senza scopo di lucro nata nel 2012 con l’obiettivo di creare standard aperti per metodi di autenticazione sicuri e interoperabili. L’alleanza si propone di ridurre la dipendenza dalle password tradizionali, migliorando al contempo la sicurezza e la facilità d’uso dell’autenticazione online.
La FIDO Alliance ha sviluppato diversi standard per l’autenticazione, tra cui:
- FIDO UAF (Universal Authentication Framework): Permette agli utenti di autenticarsi con metodi biometrici, come impronte digitali o riconoscimento facciale, senza dover inserire una password.
- FIDO U2F (Universal 2nd Factor): Introduce un secondo fattore di autenticazione fisico (come una chiavetta USB) per migliorare la sicurezza.
- FIDO2: Comprende il W3C Web Authentication (WebAuthn) e il protocollo Client to Authenticator Protocol (CTAP), permettendo l’autenticazione senza password utilizzando chiavi di sicurezza basate su hardware o metodi biometrici.
Come si implementa nei dispositivi hardware
L’implementazione delle tecnologie FIDO nei dispositivi hardware avviene principalmente attraverso l’integrazione di componenti specifici che supportano i protocolli FIDO, come il FIDO U2F, FIDO UAF e FIDO2. Ecco come avviene questo processo:
1. Chiavi di Sicurezza FIDO
Le chiavi di sicurezza FIDO sono dispositivi fisici che vengono utilizzati come secondo fattore di autenticazione (U2F) o come unico fattore (FIDO2). Possono essere collegate a dispositivi tramite USB, NFC o Bluetooth. Questi dispositivi hardware implementano i protocolli FIDO in modo da generare e archiviare in modo sicuro le chiavi crittografiche necessarie per l’autenticazione.
Esempi:
- YubiKey: Prodotta da Yubico, supporta vari protocolli FIDO (U2F e FIDO2) e può essere collegata tramite USB e NFC.
- Google Titan Security Key: Disponibile con connessioni USB e Bluetooth.
2. Sensori Biometrici
Molti dispositivi moderni, come smartphone e laptop, integrano sensori biometrici (impronte digitali, riconoscimento facciale, scansione dell’iride) che utilizzano i protocolli FIDO UAF o FIDO2 per autenticare gli utenti senza la necessità di password.
Esempi:
- Apple Touch ID e Face ID: Integrati nei dispositivi iOS e macOS.
- Windows Hello: Utilizza fotocamere e sensori di impronte digitali su dispositivi Windows 10 e superiori.
3. Trusted Platform Module (TPM)
Il TPM è un componente hardware presente in molti computer moderni che fornisce funzioni di sicurezza a livello hardware. Può essere utilizzato per generare, archiviare e gestire chiavi crittografiche utilizzate nei protocolli FIDO, migliorando la sicurezza dell’autenticazione.
4. Smart Card e Token di Sicurezza
Le smart card e i token di sicurezza utilizzano chip crittografici per implementare i protocolli FIDO. Possono essere utilizzati in ambienti aziendali per l’accesso sicuro a sistemi e applicazioni.
Esempi:
- Gemalto SafeNet: Smart card e token USB che supportano i protocolli FIDO.
- Feitian ePass: Token di sicurezza USB compatibili con FIDO U2F e FIDO2.
5. Integrazione nei Browser
I browser moderni come Google Chrome, Mozilla Firefox, Microsoft Edge e Apple Safari integrano il supporto per i protocolli FIDO. Questi browser possono interagire con i dispositivi hardware FIDO per autenticare gli utenti in modo sicuro.

L’implementazione delle tecnologie FIDO nei dispositivi hardware rappresenta un passo significativo verso un’autenticazione più sicura e user-friendly, riducendo la dipendenza dalle password tradizionali e migliorando la protezione contro vari tipi di attacchi informatici. Con l’adozione crescente di questi dispositivi, sempre più utenti possono beneficiare di un’esperienza di autenticazione sicura e senza problemi
Processo di autenticazione Passwordless con dispositivo FIDO2
L’autenticazione senza password (passwordless) con una chiave FIDO2 è un processo che utilizza meccanismi di autenticazione fortemente sicuri basati su chiavi crittografiche, eliminando la necessità di utilizzare password tradizionali. Questo processo coinvolge l’utilizzo di una chiave di sicurezza fisica FIDO2 per autenticarsi direttamente con un servizio online.
1. Registrazione della Chiave FIDO2
- Inizio della Registrazione: L’utente accede al servizio online e naviga nelle impostazioni di sicurezza per aggiungere una nuova chiave di sicurezza.
- Inserimento della Chiave: L’utente collega la chiave FIDO2 al dispositivo (ad esempio, tramite USB o NFC) e, se necessario, tocca un pulsante sulla chiave per confermare.
- Generazione delle Chiavi: La chiave FIDO2 genera una coppia di chiavi pubblica/privata. La chiave privata è conservata in modo sicuro sul dispositivo, mentre la chiave pubblica viene inviata al server e associata all’account dell’utente.
- Conferma della Registrazione: Il server salva la chiave pubblica e l’utente viene notificato che la chiave di sicurezza è stata registrata con successo.
2. Autenticazione Passwordless
- Avvio del Login: L’utente visita la pagina di login del servizio online.
- Richiesta di Autenticazione: L’utente sceglie l’opzione di login passwordless e inserisce l’identificativo dell’account (ad esempio, l’indirizzo email o il nome utente).
- Inserimento della Chiave: L’utente collega la chiave FIDO2 al dispositivo e, se necessario, tocca un pulsante sulla chiave.
- Sfida Crittografica: Il server invia una sfida crittografica al browser, che la inoltra alla chiave FIDO2.
- Firma della Sfida: La chiave FIDO2 utilizza la chiave privata per firmare la sfida e restituisce la risposta firmata al browser.
- Verifica della Firma: Il browser invia la risposta firmata al server, che verifica la firma utilizzando la chiave pubblica precedentemente registrata.
- Accesso Garantito: Se la firma è valida, l’utente viene autenticato e può accedere al proprio account.
Esempio Pratico
Supponiamo che “Marco” voglia accedere al suo account email utilizzando una chiave FIDO2. Ecco come si svolge il processo:
Registrazione della Chiave FIDO2:
- Accesso alle Impostazioni di Sicurezza: Marco accede al suo account email e va nelle impostazioni di sicurezza.
- Aggiunta di una Chiave di Sicurezza: Marco seleziona l’opzione per aggiungere una nuova chiave di sicurezza.
- Inserimento della Chiave: Marco collega la chiave FIDO2 al suo computer tramite USB e tocca il pulsante sulla chiave.
- Conferma della Registrazione: La chiave genera una coppia di chiavi e la chiave pubblica viene inviata al server del servizio email. La registrazione è completata.
Autenticazione Passwordless:
- Avvio del Login: Marco visita la pagina di login del suo account email.
- Selezione dell’Opzione Passwordless: Marco sceglie di accedere senza password.
- Inserimento della Chiave: Marco collega la chiave FIDO2 al suo computer e tocca il pulsante sulla chiave.
- Sfida Crittografica e Firma: La chiave firma la sfida inviata dal server e restituisce la risposta firmata.
- Verifica e Accesso: Il server verifica la firma utilizzando la chiave pubblica registrata e, se valida, permette a Marco di accedere al suo account email.
Integrare il protocollo FIDO2 nel software
Frontend (Web Browser):
- WebAuthn API: Utilizzare la Web Authentication API (WebAuthn) per gestire l’interazione con le chiavi FIDO2 direttamente dal browser.
- JavaScript: Implementare script JavaScript per invocare le funzioni di registrazione e autenticazione della WebAuthn API.
Backend (Server):
- Gestione delle Chiavi: Creare endpoint per gestire la registrazione delle chiavi pubbliche e la verifica delle firme.
- Crittografia: Utilizzare librerie crittografiche per verificare la firma delle sfide. Ad esempio, in un ambiente Node.js, si possono utilizzare librerie come node-webcrypto-ossl o fido2-lib.
Esempio di Codice (Frontend – JavaScript con WebAuthn API):
javascript
Copia codice
// Registrazione della chiave
async function registerKey() {
  const publicKey = {
    // Dati di configurazione per la registrazione
    challenge: new Uint8Array(32), // Dovrebbe essere generato dal server
    rp: { name: “Example Corp” },
    user: {
      id: new Uint8Array(16), // Identificatore univoco dell’utente
      name: “user@example.com”,
      displayName: “Example User”
    },
    pubKeyCredParams: [{ type: “public-key”, alg: -7 }],
  };
  const credential = await navigator.credentials.create({ publicKey });
// Inviare il credential al server per la registrazione
}
// Autenticazione passwordless
async function authenticate() {
  const publicKey = {
    challenge: new Uint8Array(32), // Dovrebbe essere generato dal server
    allowCredentials: [{
      id: new Uint8Array(16), // ID del dispositivo registrato
      type: “public-key”,
    }],
  };
  const assertion = await navigator.credentials.get({ publicKey });
  // Inviare l’assertion al server per la verifica
}
Quale ulteriore esempio di interesse, si rimanda all’articolo
Passwordless sign-in using a FIDO2 security key | Zero Trust Lab Guide (microsoft.github.io)
Conclusioni
L’autenticazione passwordless con chiavi FIDO2 rappresenta una soluzione sicura e user-friendly per proteggere gli account online. Integrando il protocollo FIDO2 tramite l’uso della WebAuthn API e supporto backend adeguato, i servizi online possono offrire agli utenti un metodo di autenticazione avanzato che elimina le vulnerabilità associate all’uso delle password tradizionali
 
								 
							

