Hash di un file | Verifica con MD5, SHA-1, SHA-256 e SHA-512 che un download non sia stato alterato
Basta trascinare un file per calcolare in blocco gli hash MD5, SHA-1, SHA-256 e SHA-512. Confrontandoli con il valore pubblicato dalla fonte potete verificare che il file scaricato non sia danneggiato né manomesso. Il file non viene inviato a un server.
Confronto fra gli algoritmi di hash
| Algoritmo | Bit di output | Cifre esadecimali | Usi principali |
|---|---|---|---|
| MD5 | 128 bit | 32 caratteri | Solo verifiche di integrità leggere. La sicurezza crittografica è già compromessa: inutilizzabile per password e firme digitali |
| SHA1 | 160 bit | 40 caratteri | Più sicura di MD5, ma con collisioni dimostrate. In servizio per usi non di sicurezza, come gli hash dei commit di Git |
| SHA256 | 256 bit | 64 caratteri | Hash standard tuttora considerata sicura, la più usata per verificare l'integrità del software distribuito |
| SHA512 | 512 bit | 128 caratteri | Output ancora più lungo di SHA-256. Sulle CPU a 64 bit può risultare più veloce di SHA-256 |
Che cos'è l'hash di un file
Un hash è una stringa di lunghezza fissa calcolata dall'intero contenuto di un file: è, in sostanza, la sua impronta digitale. Basta che cambi anche un solo byte perché il valore risultante sia completamente diverso, quindi confrontandolo con quello pubblicato dalla fonte potete verificare che il file scaricato non sia danneggiato o manomesso. Questo strumento calcola MD5, SHA-1, SHA-256 e SHA-512 tutti insieme non appena rilasciate un file.
Il calcolo avviene interamente nel browser, quindi il contenuto del file non viene mai inviato altrove. Poiché però l'intero file viene caricato in memoria, i file di diversi gigabyte possono risultare lenti o non riuscire a essere elaborati. Inoltre per MD5 e SHA-1 sono state dimostrate collisioni, quindi nessuno dei due è adatto a rilevare manomissioni intenzionali.
Come verificare l'hash di un file
- Rilasciate il file Trascinate nel riquadro il file da verificare, oppure fate clic per selezionarlo. Per i file di grandi dimensioni, non chiudete la scheda finché il calcolo non è terminato.
- Controllate i valori hash I risultati dei quattro algoritmi compaiono affiancati. Individuate quello corrispondente all'algoritmo pubblicato dalla fonte.
- Confrontate con il valore pubblicato Incollate l'hash del sito ufficiale nel campo di confronto: l'algoritmo corrispondente viene rilevato automaticamente.
- Non usatelo se non corrisponde Controllate prima un possibile errore di copia. Se continua a non corrispondere, eliminate il file senza eseguirlo e scaricatelo di nuovo dalla fonte ufficiale.
Consigli per sfruttarlo al meglio
- Se il sito di distribuzione non indica esplicitamente l'algoritmo (per esempio «SHA256: xxxxx»), incollate semplicemente l'hash nel campo di confronto: lo strumento riconosce automaticamente di quale algoritmo si tratta.
- I file di grandi dimensioni (centinaia di megabyte o più) occupano memoria del browser e possono richiedere da qualche secondo a qualche decina di secondi. Non chiudete la scheda.
- Più le conseguenze di una manomissione sarebbero gravi — pensate alle immagini ISO e ai programmi di installazione — più conviene rendere abituale la verifica dell'hash.
- Per MD5 e SHA-1 sono state dimostrate collisioni, quindi non sono adatte a rilevare manomissioni intenzionali. Per la sicurezza usate SHA-256 o superiore.
Dove torna utile verificare l'hash di un file
Verificare immagini ISO e programmi di installazione
Le immagini di sistemi operativi e gli eseguibili possono causare danni gravi se manomessi. Rendete abituale il confronto con l'hash ufficiale prima di eseguire qualsiasi cosa.
Individuare errori di trasferimento nei file di grandi dimensioni
Verificate che un file ricevuto tramite una connessione instabile non manchi di alcuna parte: molto più affidabile del semplice controllo della dimensione.
Confermare che un backup corrisponda all'originale
Confrontate l'hash di un file copiato o spostato con quello dell'originale per verificare che il contenuto sia identico byte per byte.
Individuare file duplicati
Se due file hanno nomi diversi ma lo stesso hash, il loro contenuto è identico: una base solida per decidere quali copie eliminare.
Termini legati agli hash
- Valore hash
- Una stringa di lunghezza fissa calcolata a partire da dei dati. Lo stesso input produce sempre lo stesso valore.
- Checksum
- Un valore pubblicato per confermare che un file non sia danneggiato. I valori hash sono ampiamente usati a questo scopo.
- Collisione
- Quando due dati diversi producono lo stesso valore hash. È stato dimostrato che ciò può essere ottenuto intenzionalmente con MD5 e SHA-1.
- Effetto valanga
- La proprietà per cui una minima modifica dell'input produce un output completamente diverso: è ciò che permette di rilevare anche un danneggiamento minimo.
- SHA-256
- Un algoritmo che genera un hash di 256 bit. Attualmente lo standard più diffuso per verificare i download.
Domande frequenti
A proposito — perché i siti ufficiali pubblicano gli hash
Vi sarà capitato di vedere, accanto al collegamento per scaricare un programma, una riga del tipo «SHA256: a1b2c3…». È il modo in cui chi distribuisce il software permette a chi lo scarica di verificare da sé che il file sia davvero l'originale, non alterato lungo il percorso di rete né corrotto da un server mirror.
Il meccanismo diventa particolarmente importante nella distribuzione delle immagini ISO delle distribuzioni Linux. Poiché il download passa da server mirror sparsi in tutto il mondo, esiste il rischio non solo di corruzioni dovute a errori di trasmissione, ma anche, in teoria, che un malintenzionato prenda il controllo di un mirror e distribuisca una versione modificata contenente codice dannoso. Se il sito ufficiale pubblica l'elenco firmato degli hash — spesso con firma GPG — chiunque può scaricare da qualsiasi mirror e verificare la sicurezza semplicemente calcolando l'hash in locale.
Le funzioni hash hanno la proprietà per cui basta cambiare un solo bit dell'input perché l'output risulti completamente diverso: è il cosiddetto effetto valanga. Questo permette di individuare con certezza sia le manomissioni intenzionali sia le corruzioni dovute a un piccolo errore di trasmissione. Anche a parità di dimensione del file, un solo byte diverso produce un hash del tutto differente: una verifica molto più affidabile del semplice controllo visivo della dimensione.