MD5 (RFC 1321) è un algoritmo crittografico di hashing messo a punto dal professor Ronald Rivest, nel 1991, dopo che erano state segnalate alcune debolezze nello schema del MD4. Più lento del MD4, è stato implementato in un vastissimo numero di prodotti fintanto che, nel 1996, molteplici vulnerabilità nell’algoritmo furono individuate e dimostrate dal crittografo tedesco Hans Dobbertin.
Le funzioni hash, a partire da un testo di lunghezza arbitraria, generano una stringa di lunghezza fissa. La trasformazione operata funziona in un solo senso: non è quindi possibile, dalla stringa generata, risalire al testo iniziale.
In certo senso, si può dire che le funzioni hash non impiegano alcuna chiave crittografica.
L’hash rappresenta una sorta di “impronta digitale” (fingerprint) del contenuto di un file ed è solitamente usata per attestare che lo stesso file non sia stato alterato da virus, malware oppure per l’intervento di un malintenzionato. All'”impronta digitale” viene attribuito anche il nome di message digest, checksum o valore di hash.
Le funzioni di hash sono talvolta non ben comprese ed alcune fonti affermano che due file non possano mai avere lo stesso valore di hash (”message digest“). Quest’asserzione, infatti, è falsa. Si consideri una funzione di hash che genera un “message digest” da 128 bit. Ci sono, ovviamente, 2^128 possibili valori di hash. I file che esistono, però, sono certamente ben più di 2^128 (sono considerabili in numero pari all’infinito). Ne consegue che possono esistere file con il medesimo valore di hash.
La difficoltà, quindi, consiste nell’individuare due file con il medesimo valore di hash.
Quando due messaggi producono un identico hash, si parla di “collisione“. La qualità di una funzione di hash è misurata in base alla difficoltà nell’individuazione di due testi che generino una collisione.
Perché un algoritmo di hashing “cada in disgrazia” è sufficiente che un gruppo di crittografi o di esperti informatici riesca a generare una collisione. E’ questo ciò che è accaduto, in passato, per gli algoritmi MD2, MD4 ed MD5, tutti oggi considerati insicuri.
A “rincarare la dose” ci hanno pensato alcuni ricercatori (A. Sotirov, M. Stevens, J. Appelbaum, A. Lenstra, D. Molnar, D.A. Osvik e de Weger) che alcuni giorni fa hanno individuato una nuova vulnerabilità nella PKI (acronimo di “Public Key Infrastructure”) utilizzata per la generazione di certificati digitali da utilizzare per comunicazioni sicure attraverso il protocollo SSL.
Il metodo presentato può consentire ad un aggressore di produrre nuovi certificati digitali contenenti la stessa firma del certificato originale. L’attacco, quindi, è stato dimostrato nella pratica.
Se l’utente si trovasse a visitare, utilizzando un qualunque browser, un sito web che sta utilizzando un certificato digitale “fasullo” – generato sfruttando vulnerabilità di MD5 – non otterrebbe alcun messaggio di allerta e riterrebbe erroneamente sicura la connessione.
A titolo esemplificativo, i ricercatori hanno creato un falso certificato digitale emesso da un’altrettanto fasulla “certification authority” (CA). Il certificato, ritenuto valido da tutti i principali browser web, avrebbe potuto permettere ai ricercatori di “impersonificare” qualunque altro sito che utilizzasse il protocollo HTTPS, compresi quelli di banche ed e-commerce.
L’attacco si basa su una debolezza dell’algoritmo di hashing MD5 che permette di costruire differenti messaggi aventi lo stesso hash MD5 (“collisione”). Come spiegano Sotirov, Stevens, Appelbaum, Lenstra, Molnar, Osvik e de Weger, “i precedenti lavori incentrati sullo studio delle collisioni in MD5, tra il 2004 ed il 2007, hanno evidenziato attacchi effettuabili almeno in linea teorica. Il nostro studio evidenzia invece come possa essere sferrata almeno una tipologia di attacco pratico, funzionante in contesti reali“.
“Questa nuova scoperta non incrementa in modo significativo i rischi per gli utenti poiché i ricercatori non hanno pubblicato alcuni dettagli indispensabili per la riproducibilità dell’attacco“, ha commentato Microsoft che fa notare come i vendor di certificati digitali abbiano ormai abbandonato MD5 per passare al più sicuro algoritmo SHA-1.
Purtuttavia, esistono tutt’oggi alcuni servizi che continuano a poggiare su MD5. Gli scopritori della falla, che hanno presentato la scoperta in occasione di una conferenza tenutasi nei giorni scorsi a Berlino, sono infatti riusciti a violare un sito che permette di generare certificati digitali riuscendo ad ottenere certificati falsi.
Anche Mozilla ha voluto dire la sua a proposito della scoperta puntualizzando, in primo luogo, che pur non trattandosi di un attacco rivolto nei confronti dei prodotti dell’azienda si è avviata una collaborazione con i vendor coinvolti affinché possano aggiornare i propri meccanismi per la generazione di certificati digitali.