in modo che se qualcuno si lamenta di ciò che ha ricevuto, posso controllare se il file è veramente quello che ho inviato o se qualcuno lo ha modificato.
Il modo tradizionale di verificare se un file viene modificato è da utilizzare
l'utility " md5sum " o il (probabilmente superiore) " sha256sum " utility.
Molte organizzazioni utilizzano questa tecnica per verificare che i file, scaricati da "siti mirror" che sono convenientemente vicini (e quindi più veloci del download dal "sito originale" in qualche altro continente), non siano stati modificati maliziosamente o accidentalmente da qualche parte sul percorso dall'originale, al sito mirror, alla destinazione finale.
a b c d e
Usando queste utility, qualcuno con la versione originale del file genera un breve hash md5 o un breve hash sha256 (o entrambi) del file originale,
e memorizza quel breve hash in qualche file di testo da qualche parte.
(Tipicamente sul "sito originale" e su ogni sito mirror).
Successivamente, qualcuno con un file discutibile esegue la stessa utility, producendo un nuovo valore hash.
Se il nuovo valore hash è identico all'hash prodotto dal file originale (che l'hash viene in genere ottenuto dal "sito originale", possibilmente utilizzando un browser Web e https e TLS), allora puoi essere certo che il file discutibile è, infatti, identico al file originale.
Alcuni paranoici scaricano la somma hash da diversi "siti mirror" e altre fonti.
(Questo è veloce, perché la somma dell'hash è molto breve, molto più veloce del nuovo download dell'intero file da tutte quelle fonti).
La probabilità che tutte quelle fonti siano state sovvertite diventa sempre più improbabile dal momento che vengono consultate più fonti.
(Dato che stai generando l'eseguibile originale, tieni presente che ricompilare esattamente gli stessi file sorgente usando esattamente lo stesso compilatore di solito produce un file eseguibile leggermente diverso, risultando in un hash completamente diverso.
Vedi " Come si verifica che 2 copie di un eseguibile VB 6 provenissero dalla stessa base di codice? "
per dettagli).
Ci sono molte utility che si basano su md4sum o sha256sum.
-
md5deep e hashdeep può fare un "riassunto" di un'intera cartella in un determinato momento: forse la tua home directory, o la directory / bin, o la cartella radice di un intero disco rigido. Successivamente, ti dirà esattamente quali file sono stati aggiunti, cancellati o modificati da quando è stato effettuato il riepilogo. Quando gli hash corrispondono, puoi essere certo che i file eseguibili non siano stati infettati da un virus dopo lo snapshot originale: questo rileva anche nuovi virus che non sono ancora stati riconosciuti da alcun programma antivirus. (Gli scanner antivirus sono ancora utili per rilevare i file infetti da un virus prima dello snapshot originale).
-
bittorrent usa sha1 per confermare che pezzi di un file scaricato da macchine completamente non attendibili sono identici ai pezzi originali di quel file.
-
rsync usa md5sum per controllare rapidamente se il file locale è identico alla copia master di un file su qualche file server remoto. Se sono diversi, si presuppone che la copia locale sia una versione obsoleta e scarica automaticamente le differenze tra i due file, modificando il file locale finché non diventa identico al file master remoto.
Sono abbastanza sicuro che alcuni protocolli potrebbero essere sviluppati usando un certificato autofirmato che funzionerebbe altrettanto bene che usando sha256sum; ma non vedo come questo nuovo protocollo possa offrire vantaggi rispetto al controllo sha256sum comunemente usato.