Come NSA decifra miliardi di connessioni cifrate

Nel 2014 grazie a Edward Snowden abbiamo scoperto che le connessioni cifrate HTTPS, SSH, VPN, SMTPS o IPsec, vengono regolarmente spiate da organizzazioni come NSA, ma da anche hacker avanzati.
Basti pensare che HTTPS è utilizzato per negoziare i dati dei pagamenti online, per iniziare a preoccuparsi.

Come è possibile che un protocollo sicuro venga decriptato cosi “facilmente”?

Partiamo da un presupposto, le connessioni sicure vengono stabilite attraverso connessioni non sicure.
Per poter stabilire una connessione sicura infatti si utilizza un algoritmo di scambio chiavi crittorgafiche, chiamato Diffie-Hellman: questo algoritmo permette di negoziare una chiave segreta e creare quindi una connessione sicura.800px-diffie-hellman-schlu%cc%88sselaustausch

riporto puramente per amore matematico il funzionamento originario di Diffie-Hellman, geniale. Notate come, benchè a e b non vengano mai passati in rete, alla fine Alice e Bob ottengono la stessa chiave di cifratura.

Questo algoritmo si basa sul fatto che, ad oggi, risolvere un logaritmo discreto con numeri grandi primi richiederebbe centinaia di migliaia di anni anche utilizzando tutte le CPU presenti sul pianeta.

Tuttavia i ricercatori hanno impiegato solo 2 mesi e solo 3000CPU per rompere una delle chiavi a 1024 bit utilizzate per il protocollo HTTPS, riuscendo a decifrare di conseguenza tutte le comunicazioni provenienti da quel determinato sito.
Questo è stato possibile perché è stato scoperto che solo un insieme molto ristretto di numeri primi viene utilizzato nel 92% dei casi.
Capite bene che NSA con i suoi 11 miliardi di dollari di budget annuali può permettersi un sistema in grado di scardinare chiavi cosi generate in tempo reale.

Non si tratta di backdoor nelle comunicazioni, ne di computer quantistici … ma di un deliberato indebolimento dell’ algoritmo Diffie-Hellman, ottenuto forzando le applicazioni a scegliere le chiavi segrete tra un numero molto ridotto di numeri primi. Spiegazione già ipotizzata da matematici e crittografi di vecchia data nel 2014.

Come spesso accade nella realtà, intuizioni totalmente geniali non vengono combattute con altrettanti colpi di genio, ma semplicemente corrompendo qualche piccolo, meschino essere umano.

Magari prima di effettuare un pagamento o immettere dei dati sensibili in un sito web, anche se contrassegnato col lucchetto verde, assicuratevi che il certificato sia almeno 2048 bit ( come il certificato di able2code 🙂 ) :
decifrare un certificato 2048 bit è 16 milioni di volte più difficile, a parità di  ( poca ) scelta di numeri primi come chiavi di partenza.

Alessandro Giacani

Alessandro Giacani

CEO @ Nukecommerce ltd, Full Stack Developer.
Scovo problemi complicati – fornisco soluzioni semplici.
Chatta con me