Quanto sono affidabili la somma SHA1 e le somme MD5 su file molto grandi?


1

Trasferisco costantemente immagini di dischi e immagini di macchine virtuali (di solito da 800 GB a quasi 1 TB per file) su un server cloud tramite rclone tramite SSH, e mi chiedo quanto siano affidabili sha1sum e md5sum quando si tratta di verificare l'integrità di file molto grandi.

Ho trovato questo: come posso verificare che un file da 1 TB sia stato trasferito correttamente?

Tuttavia ha a che fare con le prestazioni piuttosto che con l'affidabilità degli hash generati.

Potrebbe esserci la possibilità che un altro file condivida gli stessi hash generati considerando che ci sono così tanti file distinti là fuori?

Quindi, quanto sono affidabili le somme MD5 e SHA-1 su file molto grandi? Grazie.

Ho anche scoperto questo riguardo alla collisione: https://stackoverflow.com/questions/4032209/is-md5-still-good-enough-to-uniquely-identify-files

https://www.theregister.co.uk/2017/02/23/google_first_sha1_collision/


Lo sono a meno che tu non sia molto sfortunato o ci dedichi molto sforzo (per SHA1) . Con MD5 lo sforzo è significativamente inferiore. Se sei preoccupato, scegli le varianti SHA2 o SHA3.
Jakuje,

1
vedi anche il principio pigeonhole e il problema del compleanno . ai fini della verifica del trasferimento, entrambi gli algoritmi funzioneranno come primo passo - pigeonhole ci dice che una somma non corrispondente non è sicuramente lo stesso file, ma non dimostra che una somma corrispondente sia sicuramente la stessa .
donchisciottesco

Risposte:


3

MD5 e SHA-1 vanno entrambi bene per rilevare danni accidentali / modifiche ai file. La probabilità che un file modificato accidentalmente abbia lo stesso digest MD5 è uno su 2 ^ 128 = 340.282.366.920.938.463.463.374.607.431.768.211.456. La probabilità di una collisione SHA-1 accidentale è ancora minore, una su 2 ^ 160. Se stiamo parlando di trovare corrispondenze accidentali tra una raccolta di file (nota come problema del compleanno), occorrerebbero circa 2 ^ 64 = 18 miliardi di miliardi prima che diventi probabile una collisione MD5. Si noti che la dimensione dei file non ha importanza; è il numero di file coinvolti che conta.

Ma né MD5 né SHA-1 sono sufficienti per proteggere dalla sostituzione dannosa dei file o per fornire un ID univoco affidabile per i file. Ad esempio, se usi uno dei due, qualcuno potrebbe darti un file, farti calcolare il digest dell'hash, quindi ingannarti scambiandolo con un altro file con lo stesso hash. Oppure invia due file con lo stesso hash, che potrebbe confondere il tuo sistema.

A proposito, la distinzione accidentale / malevola è un po 'allentata. Supponiamo che qualcuno abbia trovato i due PDF che Google ha prodotto con lo stesso hash SHA-1, ha pensato "È fantastico! Dovrei salvarli per dopo", quindi ha cercato di utilizzare il sistema per archiviarli e distribuirli ... interrompendo così l'ordinamento del sistema -di caso. Se è concepibile qualcosa del genere, è meglio andare con SHA-256.

EDIT: BitErrant è simile a quello che ho descritto nell'ultimo paragrafo: è un exploit contro BitTorrent, sfruttando il fatto che BitTorrent utilizza checksum SHA-1 come ID per blocchi di file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.