Dove sono conservate le chiavi FIDO U2F?
Ricevo informazioni contrastanti su come vengono archiviate e utilizzate le chiavi di sicurezza. Dove sono archiviate le chiavi pubbliche e private? Se la chiave privata è memorizzata sullo stesso Yubikey, quante ne può contenere?
Se entrambe le chiavi sono archiviate sul servizio con cui ti stai autenticando (Gmail), invia a yubikey la chiave privata da decrittografare per utilizzare la chiave privata per la firma?
Sito web di Yubikey:
Durante il processo di registrazione, le coppie di chiavi vengono generate sul dispositivo (elemento sicuro) ma le coppie di chiavi non vengono memorizzate sulle YubiKeys . Invece, la coppia di chiavi (chiave pubblica e chiave privata crittografata) viene archiviata da ciascuna parte / servizio che ha avviato la registrazione. Pertanto, questo approccio consente di associare un numero illimitato di servizi alle YubiKeys certificate U2F.
Sito web FIDO:
Il dispositivo e il protocollo U2F devono garantire la privacy e la sicurezza dell'utente. Al centro del protocollo, il dispositivo U2F ha una capacità (idealmente, incorporata in un elemento sicuro) che conia una coppia di chiavi pubblica / privata specifica dell'origine. Il dispositivo U2F fornisce la chiave pubblica e un Key Handle al servizio online o al sito Web di origine durante la fase di registrazione dell'utente. Successivamente, quando l'utente esegue un'autenticazione, il servizio online di origine o il sito Web invia l'handle della chiave al dispositivo U2F tramite il browser. Il dispositivo U2F utilizza il Key Handle per identificare la chiave privata dell'utente e crea una firma che viene rimandata all'origine per verificare la presenza del dispositivo U2F. Pertanto, il Key Handle è semplicemente un identificatore di una particolare chiave sul dispositivo U2F.
https://fastmail.blog/2016/07/23/how-u2f-security-keys-work/
https://developers.yubico.com/U2F/
https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-overview-v1.2-ps-20170411.html#site-specific-public-private-key-pairs
https://www.yubico.com/authentication-standards/fido-u2f/#toggle-id-4
Risposte
Le chiavi possono essere archiviate sul dispositivo oppure crittografate e restituite nell'handle della chiave . Entrambi sono consentiti (e menzionati) dalle specifiche.
Dalle considerazioni sull'implementazione :
I token U2F potrebbero non archiviare il materiale della chiave privata e potrebbero invece esportare una chiave privata incorporata come parte dell'handle della chiave.
Anche nella specifica del formato del messaggio non elaborato :
Un key handle [lunghezza specificata nel campo precedente]. Questo è un handle che consente al token U2F di identificare la coppia di chiavi generata. I token U2F possono racchiudere la chiave privata generata e l'id dell'applicazione per cui è stata generata e visualizzarli come handle della chiave.
Ciò lascia la decisione al produttore del dispositivo U2F.
Yubico ha scelto di restituire la chiave privata crittografata come handle della chiave, consentendo un numero illimitato di credenziali.
Se il produttore di un dispositivo sceglie di memorizzare la chiave privata sul dispositivo stesso, il numero di chiavi possibili sarà limitato dalla quantità di memoria disponibile. Dovresti guardare le specifiche per un dispositivo specifico.