Non solo i checksum possono essere ricalcolati dopo che un pacchetto è stato modificato. Questo accade durante il normale funzionamento dell'IP.
Non è affatto insolito che un router debba aggiornare tre diversi checksum su un pacchetto prima che sia in grado di inoltrare un payload non modificato.
I tre checksum a cui mi riferisco sono su Ethernet, IP e livelli di trasporto dello stack di rete.
Il checksum Ethernet deve essere nuovamente calcolato perché dopo l'inoltro da un router, è in effetti un frame Ethernet completamente nuovo inviato su un segmento Ethernet diverso. Di solito il checksum sul pacchetto in entrata viene verificato e rimosso dall'hardware e il checksum sul pacchetto in uscita viene aggiunto dall'hardware. I due checksum sono completamente indipendenti l'uno dall'altro dalla progettazione, perché IP è progettato per funzionare con diversi livelli fisici, quindi il pacchetto in entrata potrebbe essere Ethernet e in uscita qualcos'altro o viceversa.
Il checksum dell'intestazione IP deve essere nuovamente calcolato perché il router deve effettivamente modificare l'intestazione IP per ridurre TTL.
Il checksum del trasporto (solitamente UDP o TCP) non deve essere aggiornato. L'IP è progettato in modo tale che il router non abbia nemmeno bisogno di conoscere il protocollo di trasporto. Tuttavia, a causa di Internet ancora in esecuzione la versione obsoleta 4 del protocollo, sono stati distribuiti molti dispositivi NAT che modificano alcuni dei campi coperti dal checksum di trasporto. Quando ciò accade, il router deve aggiornare anche il checksum di trasporto. Questo è stato ottimizzato al punto, in cui il router non controlla nemmeno l'intero carico utile per ricalcolare il checksum. Considerando solo il vecchio checksum e il vecchio e il nuovo valore del campo modificato, è possibile calcolare il nuovo checksum. Tutto questo di solito viene fatto senza modificare il carico utile.
Gran parte delle modifiche sopra riportate con IPv6. La parte relativa ai checksum Ethernet è sempre la stessa. Ma il checksum dell'intestazione IP è stato rimosso per semplificare e velocizzare l'elaborazione, era comunque ridondante quando entrambi i livelli al di sotto e al di sopra di IP avrebbero eseguito il checksum dei dati. Inoltre, le modifiche del checksum di trasporto durante il volo sono state una soluzione alternativa a causa delle limitazioni di IPv4. Tali modifiche non sono più necessarie.
Nessuno di questi è legato alla sicurezza. Se vuoi sicurezza contro modifiche dannose dei pacchetti, non ti affidi ai checksum, invece ti affidi ai codici di autenticazione dei messaggi . Il protocollo standardizzato per questo è chiamato IPsec e nella terminologia IPsec, il MAC è chiamato un valore di controllo dell'integrità , perché in senso stretto l'ICV potrebbe essere una firma anziché un MAC.