Glossario

Checksum (somma di controllo)

somma di controllovalore di controllo

Una checksum è un valore compatto calcolato dai dati per aiutare a rilevare modifiche accidentali o corruzione.

Definizione

Una checksum è un piccolo valore calcolato da un blocco di dati affinché in seguito un software o una persona possa ricalcolarlo e confrontare il risultato. Se i valori differiscono, i dati quasi certamente sono cambiati durante archiviazione, copia o trasmissione.

Le checksum sono comuni in formati di file, protocolli di rete, download, backup e archivi. Sono utili perché sono compatte e facili da confrontare, non perché contengano i dati originali.

Come funziona

L'algoritmo legge i byte esatti e li combina in un valore di dimensione fissa. CRC32, per esempio, produce un valore a 32 bit spesso scritto come 8 caratteri esadecimali. Anche hash crittografici come SHA-256 sono usati come checksum quando il digest pubblicato è attendibile.

Lo stesso testo visibile può avere checksum diverse se cambiano codifica dei byte, terminatori di riga, spazi o contenuto del file. La checksum di un nome file non è la checksum del file.

Limiti di sicurezza

Molti algoritmi di checksum, incluse somme semplici e CRC, sono progettati per errori accidentali più che per manomissioni malevole. Un attaccante che può modificare sia i dati sia la checksum spesso può farli combaciare.

Usa HMAC, una firma digitale o un meccanismo di integrità specifico del protocollo quando il modello di minaccia include modifiche deliberate. Un hash crittografico come SHA-256 offre resistenza alle collisioni più forte di CRC32, ma un hash semplice da solo non prova comunque chi ha prodotto i dati.

Domande frequenti

Di solito no. Una checksum rileva che i dati sono cambiati; per ricostruire dati mancanti o danneggiati servono codici di correzione degli errori o backup.

No contro un avversario. CRC32 è veloce e rileva bene la corruzione accidentale comune, ma non è progettato per resistere a manomissioni deliberate.

I dati o l'algoritmo sono diversi. Controlla i byte esatti del file, la codifica del testo, i terminatori di riga, gli spazi nascosti, la variante dell'algoritmo e il formato di output.

Vedi anche