MD5 è un algoritmo hash a 128 bit creato dallo scienziato Ronald L. Rivest all'inizio degli anni '90. L'abbreviazione MD5 sta per Message Digest Version 5.
La crittografia MD5 si basa sull'hashing, che prevede la formazione di "impronte digitali" o "somme" al fine di verificarne ulteriormente l'autenticità. Utilizzando questo metodo, puoi verificare l'integrità delle informazioni, nonché l'archiviazione degli hash delle password.
Cronologia MD5
La storia del Message Digest Algorithm (MD5) inizia nel 1991, quando il professore del MIT Ronald L. Rivest riferì della creazione di un nuovo algoritmo che sostituì l'obsoleto MD4. Per quanto riguarda MD4, in effetti sono stati riscontrati numerosi difetti, come scrisse in seguito il crittologo tedesco Hans Dobbertin.
Rivest ha descritto il nuovo algoritmo MD5 in RFC 1321.
Il lavoro sull'algoritmo è stato continuato dai ricercatori Bert den Boer e Anton Bosselars, che nel 1993 hanno dimostrato la possibilità di pseudo-collisioni in MD5, quando diversi vettori di inizializzazione possono corrispondere agli stessi digest del messaggio.
Inoltre, nel 1996 Hans Dobbertin affermò di aver trovato una collisione in MD5. A quel tempo, divennero noti algoritmi di hashing più preferiti, come le funzioni di hash crittografico RIPEMD-160 - sviluppate da Hans Dobbertin, Anton Bosselars e Bart Prenel, Whirlpool - sviluppate da Vincent Raymen e Paulo Barreto e l'algoritmo di hashing crittografico SHA-1.
A causa della dimensione hash relativamente piccola (128 bit) in MD5, si è parlato della possibilità di attacchi di compleanno. Il progetto MD5CRK, lanciato da Jean-Luc Cook nel 2004, mirava a studiare la vulnerabilità dell'algoritmo utilizzando gli attacchi di compleanno. Ma, dopo cinque mesi, il 17 agosto 2004, il progetto è stato interrotto a causa della scoperta di una vulnerabilità nell'algoritmo da parte di un gruppo di crittografi cinesi guidati da Lai Xuejia.
Nel marzo 2005, i matematici e crittografi Benne de Weger, Arjen Lenstra e Wang Xiaoyun hanno creato due documenti X.509 con lo stesso hash e chiavi pubbliche diverse.
Un anno dopo, nel marzo 2006, il crittografo ceco Vlastimil Klima ha pubblicato un algoritmo che consente di determinare le collisioni su un semplice computer in un solo minuto. Questo algoritmo divenne noto come metodo "tunneling".
A seguito dell'analisi dei risultati del lavoro, nel 2008, la divisione della National Cyber Security Administration del Department of Homeland Security degli Stati Uniti (US-CERT) ha raccomandato a tutti coloro che erano coinvolti nello sviluppo di software, siti Web e utenti della rete smettono di utilizzare l'algoritmo MD5, indipendentemente dallo scopo della sua applicazione. La ragione di tale raccomandazione è stata l'inaffidabilità che ha dimostrato nel processo di studio.
Nel dicembre 2010, i crittografi cinesi Tao Xie e Feng Denguo hanno scoperto una collisione di messaggi di 512 bit (un blocco). In precedenza, le collisioni venivano rilevate solo nei messaggi lunghi due o più blocchi. Successivamente, Mark Stevens ha ottenuto risultati simili pubblicando blocchi con lo stesso hash MD5. Ha anche sviluppato un algoritmo per ottenere collisioni di questo tipo.
Il documento finale che ha posto fine alla storia dello sviluppo dell'algoritmo MD5 è stata una richiesta di commenti - RFC 6151 (RFC è un documento ufficiale sviluppato dall'Internet Engineering Council (IETF), che descrive le specifiche per uno specifico tecnologia), che in realtà ha riconosciuto MD5 come un algoritmo di hashing non sicuro . Il documento consiglia di abbandonarlo, scegliendo in alternativa la famiglia di algoritmi crittografici SHA-2.
Il discusso algoritmo MD5 è considerato uno dei primi algoritmi standard utilizzati per verificare l'integrità dei file e archiviare le password nei database delle applicazioni web.
Ma, in realtà, la funzionalità relativamente semplice, la breve lunghezza dell'output e la semplicità delle operazioni eseguite, essendo i vantaggi dell'algoritmo, determinano anche i suoi svantaggi - MD5 si riferisce ad algoritmi che sono inclini all'hacking e hanno un basso grado di protezione contro gli attacchi di compleanno.