Utilizzo di MD5 per i controlli di integrità dei file?

10

General

Always check the MD5 hashes of the .NET Framework assemblies to prevent the possibility of rootkits in the framework. Altered assemblies are possible and simple to produce. Checking the MD5 hashes will prevent using altered assemblies on a server or client machine.

Fonte: link

MD5 non è completamente rotto per questo scopo?

    
posta H M 17.04.2013 - 16:24
fonte

3 risposte

12

È stato dimostrato che l'algoritmo hash MD5 è debole per gli attacchi collisione . Ciò significa che un utente malintenzionato può generare due file che produrranno lo stesso valore di hash. Ciò non ha alcuna influenza sui controlli di integrità dei file.

Per creare un file che corrisponda a un hash precedentemente noto, l'algoritmo deve essere debole contro i secondi attacchi preimage . Mentre MD5 ha alcune debolezze teoriche in questo aspetto, gli attuali attacchi non sono ancora fattibili dal punto di vista computazionale.

Naturalmente, nuovi attacchi potrebbero emergere in futuro. MD5 ha dimostrato di avere diverse vistose debolezze. Prova invece a utilizzare una funzione di hash come SHA256.

    
risposta data 17.04.2013 - 16:30
fonte
6

Per completare la risposta di @ Terry: MD5 è accuratamente rotto per le collisioni, ma solo leggermente indebolito per le pre-immagini e le seconde pre-immagini. L'attacco più noto è costato 2 123.4 (vedi l'articolo ), che è incredibilmente non fattibile con la tecnologia esistente, ma, da un punto di vista accademico, un po 'meglio della prevista resistenza 2 127 che una perfetta funzione di hash con un output a 128 bit dovrebbe offrire.

SHA-256 è l'attuale "funzione di hash predefinita" che dovresti usare per tutto ciò che richiede una funzione hash, a meno che alcune specifiche caratteristiche del contesto non garantiscano un'altra funzione. Tuttavia, la sostituzione di MD5 per i controlli di integrità non è un'emergenza critica; non c'è bisogno di preoccuparsi per questo.

Sebbene MD5 sia ancora valido ai fini del controllo di integrità, è necessario rendersi conto che questo si traduce solo nel problema: è comunque necessario assicurarsi di utilizzare il valore hash corretto . Ad esempio, assicurati di ottenere il valore hash da un sito Web HTTPS (da un server affidabile). I valori di hash sono abbastanza piccoli da consentire alcuni meccanismi aggiuntivi: puoi scriverli su carta o dettarli per telefono, ad esempio, cosa che non potresti fare con un archivio da 3 GB.

    
risposta data 17.04.2013 - 16:49
fonte
2

Le altre due risposte hanno ragione sul fatto che MD5 sia sicuro per l'integrità del file. Il punto su cui divergo è che non dovresti necessariamente usare SHA-256 di default. La scelta criptata riguarda i compromessi. Dopo l'integrità, le prestazioni sono la mia più grande preoccupazione per le funzioni di hash per il controllo dei file. Ho visto MD5 hash quattro volte più veloce di SHA-256. Un elenco di hash risultanti occupa anche metà dello spazio con MD5, che potrebbe aiutare nei sistemi con memoria limitata.

Quindi, MD5 è sicuro per quest'area di applicazione ed è ovunque da un minimo di multiplo a più veloce. Quindi, lo userei.

Nota: ho sostituito HAVAL per MD5 in passato b / c è anche veloce. Anche la competizione SHA-3 è fatta in modo da avere più profili per le prestazioni e forse sostituire MD5 nel prossimo futuro per un hashing ad alte prestazioni. Inoltre, VIA Padlock Engine accelera SHA-256, quindi lo uso su una tale piattaforma. Ci sono un sacco di cose da considerare, ma io dico sempre che il focus su endpoint, sicurezza di rete e app b / c crypto è solitamente il link più strong.

    
risposta data 18.04.2013 - 02:18
fonte

Leggi altre domande sui tag