Perché la chiave segreta U2F su yubikeys non è programmabile e come ottenere un token di backup universale?

1

Sto cercando di capire la migliore strategia per avere un token U2F di backup. Idealmente, voglio avere due token identici; ovviamente avrò quello primario facilmente accessibile (per esempio sul mio portachiavi), ma il secondo che posizionerei in un posto non facilmente accessibile (casi estremi sono: murati nel muro, o sepolti da qualche parte nella foresta). Quindi, ogni volta che mi registro su un nuovo servizio che supporta U2F, utilizzo solo il mio token principale e so che anche il secondo è automaticamente supportato. Considero questa strategia un buon compromesso per essere sicura e avere comunque un'opzione di backup affidabile.

Ma a quanto pare, con yubikeys, l'unica opzione praticabile è quella di avere due token distinti e registrarli entrambi manualmente su ogni servizio per cui li uso. Tuttavia, questo non è l'ideale perché dovrei tenere entrambi facilmente accessibili: va bene se devo annullare il token di backup in un brutto evento di perdere quello primario, ma farlo per ogni nuovo servizio non è fattibile .

In realtà, sono stato sorpreso di scoprire che anche se gli yubikeys supportano la programmazione del materiale chiave OTP (e hanno anche due slot, è davvero bello), fanno non supporto programmazione del segreto chiave utilizzata per U2F.

C'è qualche ragione particolare per cui la chiave segreta U2F su yubikeys non è programmabile, anche se i dati segreti per altre modalità (ad esempio OTP) sono programmabili?

    
posta Dmitry Frank 27.07.2018 - 18:45
fonte

1 risposta

2

Quindi mentre leggi Panoramica di U2F Mi sono reso conto che ciò che voglio è impossibile con il modo in cui U2F è progettato, perché il dispositivo ha un contatore che viene incrementato su ogni autenticazione (vedere la sezione 8.1 della panoramica linkata sopra)

Quindi non si tratta di yubikey in particolare, si tratta dell'intero U2F. È triste per me, mi è davvero piaciuta l'idea di avere un clone che è difficile accedere anche a me. Non essere in grado di utilizzare questa strategia significa che dobbiamo trovare altri metodi di recupero, che saranno diversi per ogni servizio (ad esempio non tutti i servizi supportano l'aggiunta di più token U2F), e nel complesso è comunque meno sicuro di due dispositivi programmati con il stessi segreti.

Alas.

UPD : in realtà, ho un'idea. Esiste un progetto open source u2f-zero . Quindi il piano è: prendi due dispositivi, programmali con gli stessi segreti, MA il dispositivo di backup dovrebbe essere programmato con una piccola modifica: invece di restituire un contatore semplice da cryptochip (u2f-zero usa ATECC508A), restituisci qualcosa come counter+500000 . È improbabile che superi le 500000 autenticazioni durante tutta la vita, ed è comunque ancora una piccola frazione dell'intero contatore (che è a 32 bit).

Quindi, se sono abbastanza sfortunato da perdere il mio token principale, vado nella foresta, estrapolo il token di backup e dovrebbe funzionare immediatamente per tutti i miei servizi. C'è anche un solo effetto collaterale: dopo aver usato il token di backup per la prima volta, quello primario verrà immediatamente invalidato perché il suo contatore è inferiore.

UPD2 : ho scritto un articolo dettagliato a riguardo: Backup affidabile, sicuro e universale per il token U2F

    
risposta data 27.07.2018 - 23:43
fonte

Leggi altre domande sui tag