Contro le errate implementazioni, non c’è algoritmo che tenga

L’articolo apparso su Repubblica la settimana scorsa rileva come l’implementazione degli algoritmi di crittografia sia a volte approssimativa o ingenua, rendendo le chiavi segrete necessarie per la trasmissione cifrata dei dati (o per la firma digitale) deboli o coincidenti con altre già in circolazione (un evento ovviamente possibile ma che dovrebbe essere raro, molto raro). L’articolo è ben scritto e riporta il concetto fedelmente, ma il titolo è fuorviante: qualcuno potrebbe credere che gli algoritmi alla base della sicurezza delle connessioni abbiano delle debolezze.
(se qualcuno vuole cimentarsi con il documento originale, lo troverà qui:
http://eprint.iacr.org/2012/064.pdf.)

L’unica debolezza è nelle implementazioni errate.

Il problema sta nel fatto che buona parte della crittografia si basa (anche) sull’utilizzo di numeri generati casualmente ma, a giudicare dallo studio, spesso i software hanno una scarsa capacità di generare numeri davvero casuali.
In realtà questo è un problema già ben noto e le liste delle vulnerabilità sono piene di avvisi circa problemi di “poor random generation” per questo o quel programma.
I programmatori a digiuno di crittografia tendono a minimizzare il problema pensando che tali debolezze siano troppo difficili da sfruttare nella pratica ma, di fatto, criptoanalisti specializzati sono spesso in grado di raggiungere dei risultati effettivi attaccando chiavi o algoritmi indeboliti da una scarsa casualità. Questa porta infatti, come concetto generale, ad abbassare il livello di sicurezza di una chiave o di una trasmissione.
Il problema somiglia a quello creato dalla NSA imponendo a taluni produttori di software di crittografia di generare chiavi parzialmente prevedibili (abbastanza da renderle deboli per i sistemi della NSA stessa, che era l’unica a conoscenza della parte “fissa”).

Nello specifico, lo studio ha individuato la conseguenza che alcune chiavi pubbliche sono troppo deboli (poche, ma ci sono) e possono essere “craccate”, ovvero si può trovarne la corrispondente chiave privata che invece dovrebbe rimanere segreta e nelle sole mani del proprietario.
Ma ancora più curioso è il fatto che i ricercatori hanno individuato chiavi identiche prodotte per soggetti differenti, cosa che su un numero così ridotto di chiavi analizzate (7 milioni, numero molto piccolo nella crittografia), non dovrebbe assolutamente accadere.
Se questo fenomeno si è presentato, dobbiamo supporre che i software che hanno generato le chiavi identiche abbiano utilizzato una fonte di “entropia/casualità” scarsissima -o non ne abbiano utilizzata alcuna, affidandosi invece a valori “fissi”!
Se due soggetti possiedono la stessa chiave, l’uno può impersonare l’altro in una comunicazione cifrata!
Lo studio ha rivelato tutto questo (che ripeto, non era poi così imprevedibile; a simili conclusioni era già giunto qualcun altro analizzando i certificati di autenticazione presentati da migliaia di siti web), senza ricorrere a procedure di crittoanalisi sofisticate o enormi potenze di calcolo.

URS

Lascia un commento