Se l'intervallo possibile del contenuto del file era abbastanza piccolo (o perché il file è molto breve, perché l'hacker conosce ogni parte del file tranne per un pezzo molto breve, o perché l'utente malintenzionato sa che il contenuto del file è uno dei un insieme limitato di cose, quindi l'attaccante può eseguire una ricerca di forza bruta del possibile contenuto del file e controllare il digest dell'hash di ogni risultato per vedere se corrisponde al nome del file.
Si noti che questa vulnerabilità non ha nulla a che fare con il fatto che MD5 è crittograficamente rotto e deprecato; qualsiasi funzione di hash sarebbe vulnerabile allo stesso problema. Se si desidera evitare il rischio, è necessario evitare di crittografare file piccoli / prevedibili oppure non lasciare che il file di hash in chiaro di ogni file appaia in chiaro (il nome del file) stesso.
Un altro attacco che potrebbe essere possibile è se l'hacker conosce almeno alcuni dei file che hai archiviato e può generare un nuovo file da memorizzare. Poiché MD5 è danneggiato, l'autore dell'attacco potrebbe potenzialmente creare un file dannoso con lo stesso MD5 di un file che ti interessa, e quindi quando archivi il file fornito da un utente malintenzionato sovrascrivi il tuo file originale perché avrebbe lo stesso nome. L'uso della crittografia è irrilevante qui (tranne nella misura in cui rende più difficile per l'utente malintenzionato sapere quali file sono stati memorizzati); questa è semplicemente una conseguenza della deduplicazione dei file usando un algoritmo per il quale sappiamo come creare collisioni e pre-immagini (parziali). Per evitare questo rischio, non lasciare che un potenziale utente malintenzionato sappia quali file hai archiviato, non archivi i potenziali rifornimenti di un attaccante e / o passi ad usare un algoritmo di hash sicuro come un membro delle famiglie SHA2 o SHA3. / p>