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 |
Consigli per la verifica degli hash
- 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.
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.