C'è qualche rischio, se un database di maniglie di chiavi del dispositivo U2F è trapelato?
La registrazione di una chiave funziona con:
- Invia la richiesta di registrazione con "AppID" al dispositivo U2F.
- Il dispositivo U2F risponde con "Chiave, chiave pubblica".
Autenticazione funziona da:
Invia richiesta di autorizzazione con "AppID, Key Handle, Challenge" al dispositivo U2F.
Il dispositivo U2F lo firma e restituisce "Firmato la sfida" al server.
"L'handle chiave" è un elemento opaco, che potrebbe essere una chiave privata crittografata, crittografata dal controller smart card U2F, ma potrebbe anche essere un'informazione utilizzabile solo dal controller della smart card per rigenerare la chiave privata , come un seme che viene inserito in un RNG deterministico che è unico per quel dispositivo U2F, una routine di generazione HMAC (Yubico U2F usa questo), oppure potrebbe essere semplicemente un ID che punta alla memoria interna nella chiave U2F, ma che limiterebbe il numero di siti web con cui la chiave U2F può essere registrata.
Secondo lo standard, l'utente deve essere autenticato da username + password Prima di avviare l'autenticazione U2F.
Ma diciamo che omettiamo completamente la password, e invece autorizziamo l'utente a inserire il loro nome utente, poi vengono portati all'autenticazione U2F, e voilá, sono dentro.
Ciò, tuttavia, significherebbe che un utente malintenzionato potrebbe enumerare tutti gli handle delle chiavi, perdendo così tutti gli handle delle chiavi nel database.
Le manche chiave trapelate sarebbero un rischio per la sicurezza? Sembra che non dovrebbe essere, ma dal momento che gli handle chiave potrebbero contenere chiavi private crittografate, potrebbero essere (?). L'handle di una chiave non sarebbe comunque utilizzabile da un altro sito rispetto al suo designato AppID, poiché il dispositivo U2F rifiuterebbe qualsiasi tentativo di autenticazione che utilizza un handle di chiavi "rubate". Tuttavia, questo viene applicato dal software / browser del client, poiché un software / browser malintenzionato potrebbe semplicemente falsificare l'AppID.