Gli ID delle chiavi brevi di OpenPGP sono deboli
How did this happen?
Gli ID della chiave breve di OpenPGP sono troppo piccoli per fornire una protezione ragionevole contro gli attacchi di collisione. Ci sono pochi% di 2^32
di ID della chiave breve diversi, che è meno di 5 miliardi.
Generare un numero così elevato di chiavi richiederebbe molto tempo. Tuttavia, l'ID della chiave viene calcolato dalla chiave pubblica OpenPGP (ad es., La chiave pubblica RSA) e il tempo di generazione della chiave (come timestamp unix, quindi il numero di secondi dal 1970-01-01 ). Ciò consente di ridurre il numero di chiavi da generare per ordini di grandezza .
Usando un programma per computer piuttosto semplice, si possono facilmente generare coppie di chiavi e poi scorrere tutti i valori ragionevoli per la creazione di chiavi. Assumiamo un periodo ragionevole negli ultimi cinque anni, questo significa 150 milioni di ID chiave diversi. Probabilmente un po 'sottostimato (dividendo il numero di possibili ID della chiave breve per il numero di ID chiave per chiave generata) che non tiene conto del fatto che avremo anche ID chiave duplicati all'interno del set generato presuppone solo la necessità di generare meno di 30 "veri" tasti, che è questione di secondi o minuti.
talk OHM 2013 Trolling the Web of Trust di Micah Lee ha presentato questo difetto e alcune implementazione di esempio su come sfruttarlo. Richard Klafter e Eric Swanson hanno utilizzato questa tecnica per replicare il set completo completo (il più grande set di chiavi completamente collegate tra loro, con altre parole la maggior parte di il gruppo di utenti OpenPGP attivi che hanno fatto la firma reciproca delle chiavi con gli altri) incluse le certificazioni e lo hanno pubblicato su un server di chiavi (non sincronizzato) .
È solo questione di tempo prima che qualcuno copi la "falsa" rete di fiducia sui "veri server chiave", o semplicemente generi la sua "copia".
Ho fornito una spiegazione un po 'più lunga in Cos'è una collisione di ID chiave OpenPGP? , in particolare discutendo le diverse I tipi di ID delle chiavi di OpenPGP e il modo in cui sono correlati.
Non utilizzare ID tasto breve
What can I do about this?
Questo attacco non ha colpito solo la tua chiave, ma forse ogni singola. Generare collisioni non richiede (molto) conoscenza speciale né hardware specifico, ogni "power user" sarà in grado di generare collisioni su macchine commodity dopo aver letto per un breve periodo.
L'unica via d'uscita è quella di smettere di usare gli ID della chiave breve , soprattutto quando non viene eseguita alcuna convalida successiva delle impronte digitali. Così:
- Ogni volta che fai riferimento alla tua chiave OpenPGP, ad esempio sui biglietti da visita o sulla tua firma - indica l'ID della chiave lunga (64 bit o 16 cifre esadecimali) o anche meglio l'impronta digitale completa.
-
Non dare mai fiducia a un ID della chiave breve. Se ne usi uno per scaricare la chiave di qualcuno, verifica invece la chiave lunga o l'impronta digitale (se sei stanco di digitare l'ID della chiave lunga, ma sono solo otto cifre più!).
- Racconta del problema. Rifiuta gli snippet / biglietti da visita / documenti contenenti solo l'ID della chiave breve. Rendi le persone consapevoli! Questo è un momento importante per educare alla rete della fiducia in generale, nella mia esperienza molti utenti di OpenPGP non hanno completamente compreso le basi per verificare la validità delle chiavi.
Do I have to revoke my key?
La revoca della tua chiave OpenPGP non ti aiuterà, un utente malintenzionato sarà in grado di ricreare una nuova chiave OpenPGP in collisione in pochi secondi o minuti. Mantieni la tua reputazione (certificazioni) nella rete della fiducia e assicurati di estenderlo!