A volte vedrai hash MD5, SHA-1 o SHA-256 visualizzati insieme ai download durante i tuoi viaggi su Internet, ma non sai veramente cosa siano. Queste stringhe di testo apparentemente casuali consentono di verificare che i file scaricati non siano danneggiati o manomessi. Puoi farlo con i comandi integrati in Windows, macOS e Linux.
Come funzionano gli hash e come vengono utilizzati per la verifica dei dati
Gli hash sono i prodotti della crittografia algoritmi progettato per produrre una stringa di caratteri. Spesso queste stringhe hanno una lunghezza fissa, indipendentemente dalla dimensione dei dati di input. Dai un'occhiata al grafico sopra e vedrai che sia "Volpe" che "La volpe rossa salta sopra il cane blu" producono la stessa lunghezza di output.
Ora confronta il secondo esempio nel grafico con il terzo, quarto e quinto. Vedrai che, nonostante una modifica molto minore nei dati di input, gli hash risultanti sono tutti molto diversi l'uno dall'altro. Anche se qualcuno modifica una porzione molto piccola dei dati di input, l'hash cambierà drasticamente.
MD5, SHA-1 e SHA-256 sono tutte funzioni hash diverse. I creatori di software spesso eseguono il download di un file, come un file .iso di Linux o anche un file .exe di Windows, e lo eseguono tramite una funzione hash. Quindi offrono un elenco ufficiale degli hash sui loro siti web.
In questo modo, puoi scaricare il file e quindi eseguire la funzione hash per confermare di avere il file originale reale e che non sia stato danneggiato durante il processo di download. Come abbiamo visto sopra, anche una piccola modifica al file cambierà drasticamente l'hash.
Questi possono anche essere utili se hai un file ricevuto da una fonte non ufficiale e vuoi confermare che è legittimo. Supponiamo che tu abbia un file .ISO di Linux che hai ricevuto da qualche parte e desideri confermare che non è stato manomesso. Puoi cercare l'hash di quello specifico file ISO online sul sito web della distribuzione Linux. Puoi quindi eseguirlo tramite la funzione hash sul tuo computer e confermare che corrisponda al valore hash che ti aspetti che abbia. Ciò conferma che il file che hai è esattamente lo stesso file offerto per il download sul sito web della distribuzione Linux, senza alcuna modifica.
Notare che sono state trovate "collisioni" con le funzioni MD5 e SHA-1. Si tratta di più file diversi, ad esempio un file sicuro e un file dannoso, che risultano nello stesso hash MD5 o SHA-1. Ecco perché dovresti preferire SHA-256 quando possibile.
Come confrontare le funzioni hash su qualsiasi sistema operativo
Con questo in mente, vediamo come controllare l'hash di un file che hai scaricato e confrontarlo con quello che ti è stato dato. Ecco i metodi per Windows, macOS e Linux. Gli hash saranno sempre identici se utilizzi la stessa funzione di hashing sullo stesso file. Non importa quale sistema operativo utilizzi.
Windows
Questo processo è possibile senza alcun software di terze parti su Windows grazie a PowerShell.
Per iniziare, apri una finestra di PowerShell avviando il collegamento "Windows PowerShell" nel menu Start.
Esegui il seguente comando, sostituendo "C: \ path \ to \ file.iso" con il percorso di qualsiasi file di cui desideri visualizzare l'hash:
Get-FileHash C: \ percorso \ a \ file.iso
Ci vorrà del tempo per generare l'hash del file, a seconda delle dimensioni del file, dell'algoritmo che stai utilizzando e della velocità dell'unità su cui si trova il file.
Per impostazione predefinita, il comando mostrerà l'hash SHA-256 per un file. Tuttavia, puoi specificare l'algoritmo di hashing che desideri utilizzare se hai bisogno di un MD5, SHA-1 o di un altro tipo di hash.
Eseguire uno dei seguenti comandi per specificare un diverso algoritmo di hashing:
Get-FileHash C: \ path \ to \ file.iso -Algorithm MD5
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA1
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA256
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA384
Get-FileHash C: \ path \ to \ file.iso -Algorithm SHA512
Get-FileHash C: \ path \ to \ file.iso -Algorithm MACTripleDES
Get-FileHash C: \ path \ to \ file.iso -Algorithm RIPEMD160
Confronta il risultato della funzione hash con il risultato che ti aspettavi di vedere. Se è lo stesso valore, il file non è stato danneggiato, manomesso o altrimenti alterato rispetto all'originale.
Mac OS
macOS include comandi per visualizzare diversi tipi di hash. Per accedervi, avvia una finestra di Terminale. Lo troverai in Finder> Applicazioni> Utilità> Terminale.
Il
Smokey
comando mostra l'hash MD5 di un file:
md5 / percorso / a / file
Il
Shasum
Il comando mostra l'hash SHA-1 di un file per impostazione predefinita. Ciò significa che i seguenti comandi sono identici:
shasum / percorso / del / file
shasum -a 1 / percorso / del / file
Per mostrare l'hash SHA-256 di un file, eseguire il comando seguente:
shasum -a 256 / percorso / a / file
Linux
Su Linux, accedi a un terminale ed esegui uno dei seguenti comandi per visualizzare l'hash di un file, a seconda del tipo di hash che desideri visualizzare:
md5sum / percorso / a / file
sha1sum / percorso / del / file
sha256sum / percorso / del / file
Alcuni hash sono firmati crittograficamente per una sicurezza ancora maggiore
Sebbene gli hash possano aiutarti a confermare che un file non è stato manomesso, c'è ancora una via di attacco qui. Un utente malintenzionato potrebbe ottenere il controllo del sito Web di una distribuzione Linux e modificare gli hash che compaiono su di esso, oppure un utente malintenzionato potrebbe eseguire un attacco man-in-the-middle e modificare la pagina Web in transito se si accede al sito Web tramite HTTP anziché HTTPS crittografato .
Ecco perché le moderne distribuzioni Linux spesso forniscono più degli hash elencati nelle pagine web. Firmano crittograficamente questi hash per proteggere dagli aggressori che potrebbero tentare di modificare gli hash. Dovrai verificare la firma crittografica per assicurarti che il file hash sia stato effettivamente firmato dalla distribuzione Linux se vuoi essere assolutamente sicuro che l'hash e il file non siano stati manomessi.
RELAZIONATO: Come verificare il checksum di una ISO di Linux e confermare che non sia stato manomesso
La verifica della firma crittografica è un processo più complesso. Leggere la nostra guida alla verifica degli ISO di Linux non sia stata manomessa con per le istruzioni complete.
Credito immagine: Jorge Stolfi / Wikimedia