Gli hacker hanno sfruttato una vulnerabilità del protocollo OpenPGP nota da oltre dieci anni.
Spieghiamo in cosa consiste e perché non può essere risolta.
/ Unsplash /
Problemi nella rete
A metà di giugno, degli sconosciuti alla rete dei server di chiavi crittografiche , costruita sulla base del protocollo OpenPGP. Questo è uno standard IETF (), utilizzato per crittografare le email e altri messaggi. La rete SKS è stata creata trent'anni fa per la diffusione di certificati pubblici. Strumenti come si connettono a essa per crittografare dati e creare firme digitali.
Gli hacker hanno compromesso i certificati di due manutentori del progetto GnuPG — Robert Hansen e Daniel Gillmor. Il caricamento di un certificato danneggiato dal server provoca un malfunzionamento di GnuPG — il sistema si blocca semplicemente. Ci sono motivi per credere che i malintenzionati non si fermeranno qui e che il numero di certificati compromessi aumenterà. Al momento, l'entità del problema rimane sconosciuta.
Il succo dell'attacco
Gli hacker hanno sfruttato una vulnerabilità nel protocollo OpenPGP. Questa è conosciuta dalla comunità da diversi decenni. Anche su GitHub exploit corrispondenti. Ma finora nessuno si è assunto la responsabilità di chiudere la "falla" (parleremo più in dettaglio delle ragioni più avanti).
Una selezione dal nostro blog su Habr:
Secondo la specifica OpenPGP, chiunque può aggiungere firme digitali ai certificati per confermarne il proprietario. Tuttavia, non esiste un limite massimo al numero di firme. Qui si presenta un problema: la rete SKS consente di ospitare fino a 150.000 firme su un singolo certificato, ma GnuPG non supporta tale quantità. Pertanto, durante il caricamento del certificato, GnuPG (come, d'altronde, altre implementazioni di OpenPGP) si blocca.
Uno degli utenti — l'importazione del certificato ha richiesto circa 10 minuti. Il certificato conteneva oltre 54.000 firme e il suo peso era di 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: chiave F20691179038E5C6: 4 firme duplicate rimosse
gpg: chiave F20691179038E5C6: 54614 firme non controllate a causa di chiavi mancanti
gpg: chiave F20691179038E5C6: 4 firme riordinate
gpg: chiave F20691179038E5C6: chiave pubblica "Daniel Kahn Gillmor " importata
gpg: nessuna chiave di fiducia ultima trovata
gpg: Totale numero elaborato: 1
gpg: importato: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
La situazione è aggravata dal fatto che i server delle chiavi con OpenPGP non rimuovono le informazioni sui certificati. Questo è fatto per poter tracciare la catena di tutte le azioni con i certificati e prevenire la loro sostituzione. Pertanto, non è possibile eliminare gli elementi compromessi.
In sostanza, la rete SKS rappresenta un grande "server di file", dove chiunque può registrare dati. Per illustrare il problema, lo scorso anno un residente di GitHub , che memorizza documenti nella rete dei server delle chiavi crittografiche.
Perché la vulnerabilità non è stata chiusa
Non c'era motivo per chiudere la vulnerabilità. In precedenza, non era stata utilizzata per attacchi informatici. Sebbene la comunità IT agli sviluppatori di SKS e OpenPGP di prestare attenzione al problema.
A onor del vero, va notato che a giugno hanno comunque un server di chiavi sperimentale . In esso è stata implementata una protezione contro tipi di attacchi simili. Tuttavia, il suo database viene riempito da zero e il server non fa parte di SKS. Pertanto, passerà del tempo prima che possa essere utilizzato.

/ Unsplash /
Per quanto riguarda il bug nel sistema originale, un meccanismo di sincronizzazione complesso ne impedisce la correzione. La rete di server key è stata originariamente scritta come proof of concept per proteggere la tesi di dottorato di Yaron Minsky. Inoltre, è stato scelto un linguaggio piuttosto specifico, OCaml. Secondo il manutentore Robert Hansen, comprendere il codice è difficile, quindi vengono apportate solo piccole correzioni. Per modificare l'architettura SKS, sarà necessario riscriverla da zero.
In ogni caso, in GnuPG non si fidano che la rete possa mai essere corretta. In un post su GitHub, gli sviluppatori hanno persino scritto che non raccomandano di lavorare con SKS Keyserver. Questa è in effetti una delle principali ragioni per cui hanno avviato la transizione al nuovo servizio keys.openpgp.org. Non ci resta che osservare come si svilupperanno gli eventi.
Un paio di articoli dal nostro blog aziendale:
Fonte: habr.com
