Annuncio pubblicitario
In un recente articolo sul controllo se tu fossi colpito dall'incidente di hacking di Gawker Come scoprire se il tuo indirizzo email è stato trapelato attraverso il database di Gawker Leggi di più , uno dei passaggi ha comportato la conversione del tuo indirizzo email in un hash MD5.
Abbiamo ricevuto alcune domande dai lettori che chiedevano esattamente cosa stesse succedendo e perché questo processo fosse necessario. Non è il nostro stile lasciare che voi ragazzi facciate domande, quindi ecco un riassunto completo di MD5, hash e una piccola panoramica di computer e crittografia.
Hashing crittografico
MD5 sta per Messaggio Dil più grande algoritmo 5, ed è stato inventato dal celebre crittografo statunitense Professor Ronald Rivest nel 1991 per sostituire il vecchio standard MD4. MD5 è semplicemente il nome di un tipo di funzione di hashing crittografico creata da Ron nel lontano '91.
L'idea alla base dell'hash crittografico è quella di prendere un blocco arbitrario di dati e restituire un valore di "hash" di dimensioni fisse. Può essere qualsiasi dato, di qualsiasi dimensione, ma il valore di hash verrà sempre corretto. Provalo tu stesso
Qui.L'hash crittografico ha un numero di usi e ci sono un gran numero di algoritmi (diversi da MD5) progettati per fare un lavoro simile. Uno degli usi principali dell'hash crittografico è la verifica del contenuto di un messaggio o file dopo il trasferimento.
Se hai mai scaricato un file particolarmente grande (Linux distribuzioni, quel genere di cose) probabilmente avrai notato il valore di hash che lo accompagna. Una volta scaricato questo file, è possibile utilizzare l'hash per verificare che il file scaricato non sia in alcun modo diverso dal file pubblicizzato.
Lo stesso metodo funziona per i messaggi, con l'hash che verifica che il messaggio ricevuto corrisponda al messaggio inviato. A un livello molto semplice, se tu e un tuo amico avete un file di grandi dimensioni ciascuno e desiderate verificare che siano esattamente gli stessi senza il trasferimento pesante, il codice hash lo farà per voi.
Anche gli algoritmi di hash hanno un ruolo nell'identificazione dei dati o dei file. Un buon esempio è rappresentato dalle reti di condivisione file peer to peer, come eDonkey2000. Il sistema ha utilizzato una variante dell'algoritmo MD4 (sotto) che combinava anche la dimensione del file in un hash per puntare rapidamente ai file sulla rete.
Un esempio emblematico di ciò è la capacità di trovare rapidamente i dati nelle tabelle hash, un metodo comunemente usato dai motori di ricerca.
Un altro uso degli hash è l'archiviazione delle password. Memorizzare le password come testo in chiaro è una cattiva idea, per ovvi motivi, quindi vengono convertite in valori hash. Quando un utente immette una password, questa viene convertita in un valore hash e confrontata con l'hash memorizzato noto. Dato che l'hash è un processo a senso unico, a condizione che l'algoritmo sia valido, in teoria ci sono poche possibilità che la password originale venga decifrata dall'hash.
L'hash crittografico viene spesso utilizzato anche nella generazione di password e password derivate da un'unica frase.
Algoritmo Message Digest 5
La funzione MD5 fornisce un numero esadecimale a 32 cifre. Se dovessimo trasformare "makeuseof.com" in un valore hash MD5, sembrerebbe: 64399513b7d734ca90181b27a62134dc. È stato costruito su un metodo chiamato Merkle "" Damgà r r struttura (sotto), che viene utilizzato per creare le cosiddette funzioni hash "a prova di collisione".
Nessuna sicurezza è a prova di tutto, tuttavia e nel 1996 sono stati rilevati potenziali difetti all'interno dell'algoritmo di hashing MD5. All'epoca non erano considerati fatali e l'MD5 continuava a essere utilizzato. Nel 2004 è stato scoperto un problema molto più grave dopo che un gruppo di ricercatori ha descritto come fare in modo che due file separati condividano lo stesso valore hash MD5. Questa è stata la prima istanza di un attacco di collisione utilizzato contro l'algoritmo di hashing MD5. Un attacco di collisione tenta di trovare due uscite arbitrarie che producono lo stesso valore di hash, quindi una collisione (due file esistenti con lo stesso valore).
Nel corso dei prossimi anni si sono verificati ulteriori tentativi di trovare ulteriori problemi di sicurezza all'interno di MD5 e nel 2008 un altro gruppo di ricerca è riuscito a utilizzare il metodo di attacco di collisione per falsificare Certificato SSL validità. Ciò potrebbe indurre gli utenti a pensare di navigare in modo sicuro, quando non lo sono. Il dipartimento della sicurezza nazionale degli Stati Uniti annunciato quello: "gli utenti dovrebbero evitare di utilizzare l'algoritmo MD5 a qualsiasi titolo. Come hanno dimostrato ricerche precedenti, dovrebbe essere considerato crittograficamente rotto e inadatto per un ulteriore uso“.
Nonostante l'avvertimento del governo, molti servizi usano ancora MD5 e come tali sono tecnicamente a rischio. È comunque possibile "saltare" le password, per prevenire potenziali aggressori utilizzando attacchi di dizionario (test di parole conosciute) contro il sistema. Se un hacker ha un elenco di password casuali di uso frequente e il database dell'account utente, può verificare gli hash nel database con quelli dell'elenco. Salt è una stringa casuale, che è collegata agli hash delle password esistenti e quindi nuovamente hash. Il valore salt e l'hash risultante vengono quindi archiviati nel database.
Se un hacker voleva scoprire le password dei tuoi utenti, avrebbe prima bisogno di decifrare gli hash salt e questo rende un attacco del dizionario abbastanza inutile. Salt non influisce sulla password stessa, quindi è sempre necessario scegliere una password difficile da indovinare.
Conclusione
MD5 è uno dei molti metodi diversi per identificare, proteggere e verificare i dati. L'hash crittografico è un capitolo vitale nella storia della sicurezza e nel mantenere nascoste le cose. Come per molte cose progettate pensando alla sicurezza, qualcuno se n'è andato e l'ha rotto.
Probabilmente non dovrai preoccuparti troppo dell'hash e dei checksum MD5 nelle tue abitudini di navigazione quotidiane, ma almeno ora sai cosa fanno e come lo fanno.
Hai mai avuto bisogno di hash qualcosa? Verifichi i file scaricati? Conosci qualche buona app Web MD5? Fateci sapere nei commenti!
Immagine introduttiva: Shutterstock
Tim è uno scrittore freelance che vive a Melbourne, in Australia. Puoi seguirlo su Twitter.