Generatore di hash MD5

Aggiungi al sito web Metainformazione

Altri strumenti

Generatore di hash MD5

Generatore di hash MD5

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.

Cos’è MD5?

Cos’è MD5?

L'algoritmo di hashing MD5 può essere utilizzato in varie aree relative alla creazione di firme digitali elettroniche, password sicure, chiavi online crittografiche. Permette di controllare l'integrità delle informazioni su un PC.

Inizialmente, MD5 era considerato un algoritmo di crittografia relativamente potente, ma a causa delle carenze identificate durante lo studio, attualmente si consiglia di sostituirlo con un altro algoritmo di hashing più sicuro.

Esempi di utilizzo

Il vantaggio principale dell'algoritmo MD5 è il suo ampio campo di applicazione.

L'algoritmo consente di verificare l'autenticità e l'integrità delle informazioni scaricate

Ad esempio, insieme ai pacchetti per l'installazione del software, esiste un valore di checksum per la verifica.

È anche praticato utilizzare l'algoritmo MD5 per l'hashing delle password

Ad esempio, il sistema operativo Unix utilizza attivamente questo algoritmo come strumento di hashing. Va notato che in alcuni sistemi Linux, anche il metodo MD5 viene utilizzato attivamente per memorizzare le password.

Sono noti i seguenti modi di memorizzare le password:

  • Archiviazione standard senza hashing. Lo svantaggio di questo metodo è l'elevato rischio di perdita di informazioni quando il database viene violato.
  • Sono archiviati solo gli hash delle password. Tali dati sono facilmente reperibili utilizzando tabelle hash preparate in anticipo. Per compilare tali tabelle vengono utilizzate password comuni di bassa complessità.
  • Aggiunta di alcuni caratteri alle password chiamate "salt". Successivamente, il risultato viene sottoposto a hash. La password ottenuta a seguito di tali azioni deve essere memorizzata in chiaro. Durante la ricerca di password create in questo modo, le tabelle non saranno d'aiuto.

L'algoritmo di hashing MD5 può essere utilizzato per verificare i file scaricati dal web

Ciò diventa possibile quando si utilizzano utilità specializzate che possono modificare le proprietà dei file e abilitare l'uso di algoritmi di codifica hash.

MD5 viene utilizzato durante la creazione di applicazioni web

Nel processo di sviluppo e configurazione di sistemi di autenticazione, script o pannelli, puoi generare codici hash per singole righe.

Affidabilità dell'algoritmo MD5

La tecnologia di hashing a noi nota come algoritmo MD5 è stata a lungo considerata abbastanza affidabile. Allo stesso tempo, nessuno ha parlato della sua idealità. Non c'erano garanzie che l'algoritmo fosse invulnerabile e fornisse l'inviolabilità delle informazioni al cento per cento.

Come risultato del lavoro di numerosi scienziati, sono state identificate alcune carenze di questa tecnologia. La principale è una vulnerabilità dovuta al rilevamento delle collisioni durante la crittografia.

Una collisione è la probabilità di ottenere lo stesso risultato di output quando vengono inseriti dati di input diversi. Maggiore è questa probabilità, minore è il livello di protezione dell'algoritmo utilizzato.

I ricercatori hanno condotto la crittoanalisi e identificato diversi modi per decifrare un hash MD5:

  • Un attacco di forza bruta può essere considerato un metodo di hacking universale. Ma ha anche il suo svantaggio: il metodo è molto lungo. Per contrastarlo, viene utilizzata la tecnica dell'aumento del numero di chiavi. Questo metodo viene spesso utilizzato per valutare il livello di forza e forza della crittografia delle password.
  • RainbowCrack è un programma speciale che consente di creare una base hash, sulla base della quale viene eseguita una password quasi istantanea di lettere e numeri.
  • Per selezionare le password utilizzando un dizionario, vengono utilizzati database di dizionari e programmi già pronti.
  • Quando si utilizza il metodo di rilevamento delle collisioni, assumono valori di funzione simili per messaggi diversi che hanno lo stesso inizio. Questo metodo è stato utilizzato attivamente alla fine del 20° secolo.

La formula per ottenere un codice hash identico è: MD5(4L1) = MD5(4L2).

Nel 2004, gli scienziati cinesi hanno scoperto una vulnerabilità nel sistema che ha permesso di rilevare una collisione in un breve periodo di tempo.

Nel 2006 è stato scoperto un metodo che consente di rilevare file dannosi su un normale computer utilizzando i cosiddetti "tunnel".

Nonostante alcuni problemi associati principalmente alla vulnerabilità MD5, questo algoritmo è ancora richiesto a causa del suo uso attivo nello sviluppo indipendente di applicazioni Web, nonché in altri casi necessari.