Indietro

ⓘ Checksum




Checksum
                                     

ⓘ Checksum

In telecomunicazioni e informatica il checksum è una sequenza di bit che, associata al pacchetto trasmesso, viene utilizzata per verificare lintegrità di un dato o di un messaggio che può subire alterazioni durante la trasmissione sul canale di comunicazione.

                                     

1. Descrizione

Il tipo più semplice di checksum consiste nel sommare in trasmissione tutti i bit del messaggio e di memorizzare il valore risultante nel frame inviato. Per controllare lintegrità del messaggio sarà sufficiente effettuare in ricezione la stessa operazione di somma e confrontarla con il checksum memorizzato nel frame. Se i due valori coincidono, i dati possono essere considerati integri.

Questa semplice forma di checksum non è molto accurata in quanto non permette di rilevare certe tipologie di errore come:

  • la presenza di diversi errori che sommati tra loro danno 0
  • il riordinamento dei bit del messaggio
  • linserimento di bit con valore 0

In questi casi, quando cioè ci sono due o più serie di bit che hanno lo stesso checksum, si parla di collisioni. Ovviamente, minore è la probabilità di collisioni, migliore è la qualità dellalgoritmo di controllo e quindi la sicurezza nella verifica dellintegrità.

Altre comuni varianti di questo semplice checksum sono ottenute usando al posto della somma loperazione di XOR come nel Longitudinal redundancy check LRC o sommando i bit a gruppi di 2 o 4 come nellInternet checksum RFC-1071. Queste varianti mantengono la stessa semplicità di calcolo ma manifestano anche gli stessi difetti.

Con il tempo sono nati diversi metodi di controllo più sofisticati, come il checksum di Fletcher, lAdler-32, il Cyclic redundancy check CRC, in cui il risultato non dipende solo dal valore dei bit, ma anche dalla loro posizione. Il prezzo della maggiore affidabilità viene pagato in termini di risorse di elaborazione necessarie al calcolo del checksum.

Il checksum è presente nellheader di molti protocolli di rete proprio per verificare lintegrità del pacchetto trasmesso.

Questi metodi sono utili per la verifica di corruzioni accidentali, ma non sono sicuri contro gli attacchi di malintenzionati, in quanto le loro strutture matematiche non sono particolarmente complesse da aggirare. Per questo tipo di attacchi vengono utilizzati algoritmi di hash crittografati, come lMD5, lo SHA-1 in cui però sono state trovate collisioni, lo SHA-256, per il momento incorruttibile.

I checksum vengono usati spesso su Internet per poter garantire che i dati scaricati siano corretti e per garantirne lautenticità. Per esempio nel download di software, il distributore del programma pubblica il checksum in genere MD5 o SHA-1, che nello specifico viene chiamato digest, che viene controllato dallutente per verificare lintegrità dei dati.