- Gli hash o checksum consentono di verificare l'integrità di file, dischi e dati trasmessi, agendo come un'impronta digitale univoca.
- Si consiglia di preferire algoritmi moderni come SHA-256, SHA-3 o BLAKE2 a MD5 e SHA-1, che ora sono considerati non sicuri a causa di collisioni pratiche.
- Windows, Linux macOS e includono strumenti nativi (CertUtil, Get-FileHash, shasum, md5sum, sha256sum) per generare e verificare hash senza installare programmi aggiuntivi.
- Esistono numerose utility grafiche e servizi online per la gestione degli hash, ma per i file sensibili è preferibile utilizzare strumenti locali e fonti ufficiali.
Quando scarichiamo un ISO di un sistema operativo, un programma di installazione o qualsiasi file di grandi dimensioni, diamo per scontato che sia intatto e intattoTuttavia, possono verificarsi errori durante il download o, peggio ancora, qualcuno potrebbe aver sostituito il file originale con una versione dannosa a nostra insaputa. È buona norma igiene digitale.
Per evitare sorprese, la sicurezza informatica utilizza da decenni quanto segue checksum o hashSono come l'impronta digitale di un file: se questa impronta cambia, il file non è più lo stesso. E la cosa migliore è che Windows, Linux e macOS dispongono di strumenti molto semplici per generare e verificare questi hash senza dover installare nulla (sebbene esistano anche programmi grafici molto intuitivi).
Che cosa sono un hash, un checksum o una somma di verifica?
Un hash (o checksum) è il risultato dell'applicazione di un funzione matematica unidirezionale a un blocco di dati: un file, un testo, persino un intero disco. Questa funzione restituisce una stringa di caratteri di lunghezza fissa (ad esempio, 128, 160, 256 o 512 bit) che rappresenta in modo univoco quel contenuto.
Se prendiamo un file e calcoliamo il suo hash, otterremo qualcosa del genere: a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e908Se ricalcoliamo l'hash sullo stesso file senza modificarlo, il risultato sarà esattamente lo stesso. Non appena modifichiamo un singolo bit (un carattere in un documento, un byte in un file ISO...), l'hash cambia completamente.
Ecco perché un hash viene spesso paragonato a un impronta digitaleSe due file condividono lo stesso hash, sono considerati identici ai fini pratici. Se gli hash sono diversi, significa che il contenuto è cambiato, a causa di un danneggiamento durante il download, di un guasto del disco o di una manipolazione dannosa.
Queste funzioni sono unidirezionali: il file originale non può essere ricostruito direttamente dall'hash. A differenza della crittografia, non esiste una "chiave di decifratura" per restituire i dati; l'hash serve solo a... verificare l'integrità, non recuperare informazioni.
Qual è lo scopo della verifica dell'hash di un file?
La verifica hash è utilizzata costantemente nell'informatica, spesso senza che l'utente ne sia consapevole. È un componente fondamentale per per garantire l'integrità, l'autenticità e, in alcuni scenari, la riservatezza dei dati.
L'uso più comune nella vita quotidiana è quello di verificare che un file scaricato (un ISO Linux, il firmware di un router(un file eseguibile...) corrisponde all'originale fornito dal fornitore. Lo sviluppatore pubblica l'hash ufficiale (ad esempio, un SHA-256) e noi calcoliamo l'hash del file scaricato per controlla il checksumSe entrambi i valori corrispondono, possiamo supporre che Non ci sono stati errori o manipolazioni durante il download.
Gli hash vengono utilizzati anche per conservare le password in modo sicuroInvece di memorizzare la password in testo normale, il sistema ne memorizza l'hash. Quando l'utente si autentica, l'hash della password inserita viene ricalcolato e confrontato con l'hash memorizzato. Se corrispondono, l'accesso viene concesso. Poiché si tratta di funzioni unidirezionali, se qualcuno ruba il database, vedrà solo gli hash, non le password originali.
Nell'analisi forense e nella catena di custodia, l'hash dei dischi, delle immagini forensi e dei file rilevanti viene calcolato per dimostrare che Non sono stati alterati durante l'intero processoLe forze di sicurezza dello Stato e le squadre forensi utilizzano funzioni come MD5 e SHA-1 (pur conoscendone i punti deboli) in combinazione, perché solitamente sono molto veloci da calcolare anche in volumi di centinaia di gigabyte.
Nelle reti e nei protocolli sicuri, le funzioni hash sono integrate in meccanismi come Certificato SSL/TLS, SSHIPSec, PGP o HTTPS per garantire che i dati trasportati non vengano modificati lungo il percorso. Sono inoltre fondamentali nella tecnologia blockchain e criptovaluteBitcoin utilizza SHA-256 per convalidare le transazioni, i blocchi della catena e mantenere l'integrità dell'intera catena.
Tipi di algoritmi hash più comunemente utilizzati

Esistono molti algoritmi diversi per generare hash, con lunghezze e proprietà di sicurezza variabili. Non tutti sono ugualmente consigliati oggi, perché alcuni si sono dimostrati vulnerabili ad attacchi di collisione. Diversi algoritmi Hanno usi e prestazioni molto diversi.
MD5 Per anni è stato il re. Genera hash a 128 bit ed è stato utilizzato per verificare l'integrità dei file e proteggere le password. Il problema è che nella pratica sono state riscontrate delle collisioni: è possibile creare due file diversi che condividono lo stesso hash MD5, consentendo a un aggressore di inserire file modificati senza attivare la verifica. Ecco perché Non è considerato sicuro. per usi crittografici, sebbene sia ancora utilizzato per la sua velocità in attività forensi o di controllo interno.
SHA-1Con hash a 160 bit, era molto popolare anche per le firme digitali e la verifica dei file. Ma la comunità crittografica ha dimostrato delle vere e proprie collisioni (Google e CWI ne hanno addirittura generate due PDF con lo stesso SHA-1), quindi ha anche classificato come non sicuro Per lavori seri. Alcuni sistemi legacy lo utilizzano ancora, ma è consigliabile migrare verso alternative più robuste.
famiglia SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) è l'attuale standard de facto. SHA-256 (256 bit) e SHA-512 (512 bit) sono i più comuni. Sebbene siano stati progettati dalla NSA, il che solleva alcuni sospetti all'interno della comunità, non sono noti attacchi concreti che ne compromettano la sicurezza come funzioni di integrità. Sono l'opzione consigliata per Verifica di Downloadfirme digitali e protocolli sicuri.
SHA-3 (Basato su Keccak) è stato scelto in un concorso pubblico organizzato dal NIST, con progetti esterni alla NSA. Offre lunghezze di 224, 256, 384 e 512 bit e una struttura interna diversa da SHA-2, garantendo così la diversità crittografica. È considerato molto sicuro e rappresenta un'alternativa moderna quando si vuole evitare di affidarsi esclusivamente a SHA-2.
BLAKE2 e derivati come BLAKE3 sono algoritmi più recenti che si distinguono per la combinazione Elevata sicurezza e alte prestazioniBLAKE2b è ottimizzato per sistemi a 64 bit, mentre BLAKE2s per architetture da 8 a 32 bit. Sono più veloci di SHA-3 e, in molti scenari, anche di SHA-2, quindi vengono utilizzati in applicazioni che devono elaborare grandi volumi di dati ad alta velocità, comprese parti dell'ecosistema delle criptovalute.
Come rompere un hash: collisioni e altri attacchi
In teoria, le funzioni hash sono progettate per rendere virtualmente impossibile trovare due input diversi con lo stesso risultato (una collisione) o recuperare i dati originali dall'hash. In pratica, esistono diversi tipi di funzioni hash. attacchi contro gli hash che è utile sapere, soprattutto nel contesto delle password.
L'attacco di forza bruta Consiste nel generare hash di tutte le possibili combinazioni fino a trovare quella corrispondente al valore desiderato. È molto lento se l'algoritmo è robusto e l'input è sufficientemente lungo e complesso, ma rimane valido contro password corte o algoritmi più vecchi, soprattutto con hardware specializzati (GPU, ASIC…).
I attacchi al dizionario Sfruttano elenchi di parole comuni (dizionari, password trapelate, schemi tipici) e ne generano gli hash per confrontarli con quelli rubati da un database. Questo metodo è molto più efficiente che provare ogni possibile spazio, ed è per questo che utilizzare password semplici, frasi tipiche o schemi prevedibili è così pericoloso.
un attacco di collisione Cerca direttamente due input distinti che producono lo stesso hash. Questo è ciò che ha rovinato la reputazione di MD5 e SHA-1: se è possibile creare file manipolati che mantengono lo stesso hash dell'originale, non possiamo più fare affidamento su questi algoritmi per garantirne l'integrità. Nelle applicazioni moderne, individuare le collisioni in modo pratico rimane poco pratico.
Il famoso tavoli arcobaleno Rappresentano un altro approccio: gli hash di un numero enorme di possibili input (ad esempio, tutte le password fino a una certa dimensione) vengono precalcolati e memorizzati, per poi essere ricercati per corrispondenza. Occupano molto spazio e sono costosi da generare, ma consentono un processo di cracking notevolmente più rapido se il sistema non implementa misure di sicurezza aggiuntive.
Per difenderci, nel contesto delle password, tecniche come l'aggiunta di un sale (un valore casuale che viene concatenato prima dell'hashing) e utilizzare algoritmi specifici per immagazzinamento di chiavi (bcrypt, scrypt, Argon2...) deliberatamente lente e ad alto consumo di memoria, complicando notevolmente gli attacchi su larga scala. Per approfondire l'argomento, consultare Che cosa contiene il sale nell'hashish?.
Generazione e verifica degli hash in Linux
In Linux abbiamo praticamente tutto ciò che ci serve per lavorare con gli hash, già pronto all'uso. terminaleLe utility Coreutils coprono MD5, SHA-1, SHA-2 e BLAKE2, e possiamo aggiungere il supporto per SHA-3 con un pacchetto aggiuntivo nelle distribuzioni basate su Debian.
Per avere gli strumenti di base (md5sum, sha1sum, sha256sum, b2sum…), è sufficiente che sia installato il pacchetto. coreutilsche è presente di default in qualsiasi distribuzione ragionevolmente moderna. Se vogliamo comandi Specificamente per SHA-3, su Debian, Ubuntu e derivati possiamo installare libdigest-sha3-perl con:
sudo apt install coreutils
sudo apt install libdigest-sha3-perl
Supponiamo di avere un file chiamato geekland.txtPer calcolare il suo hash MD5 useremmo:
md5sum geekland.txt
L'output mostrerà qualcosa del tipo d41d8cd98f00b204e9800998ecf8427e geekland.txtSe inviamo quel file a un'altra persona insieme all'hash, questa potrà verificarne l'integrità con:
echo "d41d8cd98f00b204e9800998ecf8427e geekland.txt" | md5sum --check
Se lo strumento risponde con “La somma corrisponde"" significa che il file che hanno è identico al nostro. Lo stesso schema si applica al resto di famiglia Shasum:
shasum -a 1 geekland.txtper SHA-1.shasum -a 256 geekland.txtper SHA-256.shasum -a 512224 geekland.txtper SHA-512/224.
In tutti i casi, la modalità utilizzata per verificare l'integrità è... -controllo Combinando l'hash previsto e il nome del file:
echo "e3b0c4...7852b855 geekland.txt" | shasum -a 256 --check
Per SHA-3, con il pacchetto commentato, abbiamo il comando sha3sumAd esempio, per calcolare un hash SHA3-512 sul nostro file:
sha3sum -a 512 geekland.txt
Se vogliamo usare BLAKE2, dobbiamo semplicemente estrarre b2sum:
b2sum geekland.txt
La verifica, come prima, viene effettuata con --check e eco che combina l'hash e il nome del file.
Verificare l'hash di un ISO in Linux e macOS
Quando scarichiamo, ad esempio, l'immagine ubuntu-22.04.3-desktop-amd64.iso Dal sito web ufficiale, il progetto solitamente pubblica insieme ad esso anche l'hash SHA-256 corrispondente. Immaginiamo che valore pubblicizzato è:
a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909
In Linux possiamo verificarlo con:
echo "a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909 ubuntu-22.04.3-desktop-amd64.iso" | shasum -a 256 --check
Se l'output è "OKSappiamo che l'immagine scaricata corrisponde a quella ufficiale e possiamo installarla con sicurezza. Questo stesso comando funzionerà esattamente allo stesso modo su macOS, poiché shasum È disponibile anche di serie.
In alternativa, su macOS possiamo usare:
shasum -a 256 nombre_del_archivoper SHA-256.md5 nombre_del_archivoper MD5.
Un'altra opzione multipiattaforma avanzata è quella di utilizzare OpenSSL dal terminale, ad esempio:
openssl sha256 nombre_del_archivo
Strumenti di interfaccia grafica per hash su Linux, Windows e macOS
Non tutti vogliono avere problemi con la console, e per questo ci sono molte opzioni. utilità grafiche che facilitano notevolmente il calcolo e la verifica degli hash, molti dei quali gratuiti e multipiattaforma.
Uno dei più noti è GUI di QuickHash, un'applicazione open source disponibile per Windows, Linux e macOSDa una finestra a più schede, è possibile calcolare gli hash di testo, singoli file, intere directory, dischi fisici e persino dati codificati in Base64. Supporta algoritmi come MD5, SHA-1, SHA-2 (SHA-256, SHA-512), SHA-3 (256 bit), BLAKE2B (256 bit), xxHash e BLAKE3.
La scheda Testo Permette di inserire un frammento e di ottenerne l'hash al volo utilizzando l'algoritmo scelto. Compila il Selezioniamo un singolo file per calcolarne gli hash. File Elabora tutti i file in una cartella (incluse le sottodirectory e le cartelle facoltativamente nascoste) e visualizza un elenco con i valori generati.
Con Confronta due file Possiamo confrontare due file che si trovano in percorsi diversi: se gli hash corrispondono, verrà visualizzato "INCONTRO!"; Ma, "MANCATA CORRISPONDENZAAllo stesso modo, Confronta due cartelle Confronta il contenuto di due directory in base agli hash dei loro file, non in base ai nomi dei file.
La scheda Copia È particolarmente interessante: consente di copiare file da una posizione all'altra e, allo stesso tempo, di verificare tramite hash che la copia sia avvenuta correttamente. Questo è molto utile quando si clonano strutture di grandi dimensioni e si vuole essere certi che nulla sia stato corrotto durante il processo.
Nel mondo Linux troviamo anche strumenti come GTKHash, progettato come alternativa grafica a md5sum e società. GTKHash calcola gli hash MD5, SHA-1, SHA-2, SHA-3, BLAKE2, ecc. e si integra con i file manager come Caja, Nemo o Thunar tramite estensioni (caja-gtkhash, nemo-gtkhash, thunar-gtkhash), che consente di fare clic con il tasto destro del mouse su un file e di ottenerne gli hash senza uscire dal browser.
Strumenti per la verifica degli hash in Windows (PowerShell, CertUtil e programmi esterni)
Windows dispone di due utilità della riga di comando preinstallate che soddisfano ampiamente le esigenze di base: Get-FileHash (At PowerShell) Y CertUtil (At cmd o PowerShell). Puoi Scopri come controllare i checksum in Windows 11.
Da PowerShell, Get-FileHash Calcola rapidamente l'hash di qualsiasi file. Di default, utilizza SHA-256, ma è possibile specificare altri algoritmi supportati (MD5, SHA-1, SHA-384, SHA-512, ecc.) utilizzando il parametro -AlgoritmoAd esempio, per ottenere lo SHA512 di setup.exe:
Get-FileHash -Algorithm SHA512 .\setup.exe
Se preferiamo usare CertUtilla cui sintassi è un po' più vecchia ma altrettanto efficace, la forma generale è:
certutil -hashfile Ruta\al\Archivo.ext SHA256
Possiamo sostituire SHA256 by MD5, SHA1, SHA512 o varianti a seconda delle nostre esigenze. Questo strumento è molto utile per l'integrazione in Script di PowerShell automazione senza affidarsi a software di terze parti. C'è anche Verifica l'integrità del file con Sigcheck come alternativa avanzata.
Se vogliamo fare un passo avanti e dimenticarci del terminale, ci sono soluzioni come ApriHashTabQuesta opzione aggiunge una scheda "Hash" alla finestra delle proprietà del file di Explorer. Da lì, è possibile visualizzare a colpo d'occhio i valori MD5, SHA-1, SHA-256, SHA-512 (e altri algoritmi configurabili), incollare un hash fornito dal fornitore nel campo "Controlla con" e lasciare che il programma indichi se corrisponde, oppure esportare i risultati in un file di testo o in [un formato specifico]. appunti.
Un altro uso molto popolare è Hasher LiteFunziona tramite trascinamento: si rilasciano uno o più file nella finestra e il programma ne calcola l'hash utilizzando fino a dieci algoritmi diversi. Permette di copiare ogni risultato negli appunti, confrontarlo direttamente con il valore già copiato, elaborare fino a 100 file contemporaneamente nella versione gratuita ed esportare gli elenchi in formato testo.
Abbiamo anche programmi come HashMyFiles, multi-hasher, Utilità checksum MD5 e SHA, Dead Hash, HashCalc, Controllo hash MD5, Controllo del checksum, Generatore di hash o lo strumento veterano di Microsoft FIVET (File Checksum Integrity Verifier), tutti focalizzati sul calcolo e sul confronto di hash in blocco, sull'integrazione con il menu contestuale e sul supporto per un'ampia gamma di algoritmi.
Calcola l'hash di un disco o di un'intera cartella
Oltre all'impronta digitale dei singoli file, esistono utilità in grado di calcola gli hash di intere directory o addirittura di interi dischiQuesta funzionalità è molto utile quando si desidera verificare l'intero contenuto di un'unità esterna, di un'immagine forense o di un backup.
Uno strumento classico per questo tipo di attività è md5deep (e il suo successore hashdeep). Permette di generare checksum MD5 (e altri algoritmi) di tutti i file contenuti in una directory o unità, in modo ricorsivo, e di salvare i risultati in un file di testo. Ad esempio:
md5deep -rel F:\ > F_resultado.md5
In questo comando, -r indica la ricorsione, -e può mostrare il tempo stimato, -l stampa percorsi relativi e F: \ Questa sarebbe l'unità o il percorso di base. Il file F_resultado.md5 Conterrà l'elenco degli hash per tutti i contenuti.
Successivamente possiamo usare md5deep per confrontare un insieme di file con un elenco noto di hash e che evidenzia solo quelli che non corrispondono. Utilizzando l'opzione -X Possiamo rilevare voci il cui hash è cambiato rispetto all'elenco originale, il che è molto utile per verificare le modifiche nei backup o rilevare manomissioni.
In un ambiente grafico, utilità come GizmoHasher QuickHash stesso consente di selezionare unità, cartelle o raccolte di file e di generare/salvare i relativi hash con supporto per più algoritmi (MD5, CRC32, SHA-1, SHA-2, ecc.), confrontarli con altri elenchi e individuare visivamente le differenze.
Strumenti online per generare hash: quando usarli
Esistono anche servizi web che consentono di caricare un file o di inserire del testo e di ottenerne l'hash senza installare nulla sul computer. Siti web come Checksum file, Calcolatore online dell'hash del file HTML5 o Disinnescare il calcolatore di checksum di testo e file online Offrono supporto per decine di algoritmi (MD5, SHA-1, SHA-2, SHA-3, CRC32, ecc.) e sono utili per test rapidi.
Il grande svantaggio è ovvio: bisogna caricare il file su un server esternoSebbene alcuni servizi promettano di non memorizzare dati, la raccomandazione generale è di usarli solo con file non sensibili (niente di simile database(documenti privati, backup di dispositivi mobili, ecc.). Per qualsiasi cosa possa contenere informazioni importanti, è meglio attenersi agli strumenti locali del sistema operativo.
Scrittore appassionato del mondo dei byte e della tecnologia in generale. Adoro condividere le mie conoscenze attraverso la scrittura, ed è quello che farò in questo blog, mostrarti tutte le cose più interessanti su gadget, software, hardware, tendenze tecnologiche e altro ancora. Il mio obiettivo è aiutarti a navigare nel mondo digitale in modo semplice e divertente.