Qu’est-ce qu’une somme de contrôle (checksum) et à quoi cela sert ?

La somme de contrôle en anglais checksum est un procédé couramment utilisé en informatique pour vérifier l'intégrité de données.
Ainsi cela permet de vérifier que des données n'ont pas été altérées ou corrompues.

Cet article vous explique ce qu'est la somme de contrôle, quelques implémentations et exemples d'utilisation.

Qu'est-ce qu'une somme de contrôle (checksum) et à quoi cela sert ?

Qu'est-ce qu'une somme de contrôle (checksum)

Une somme de contrôle est le résultat de l'exécution d'un algorithme, appelé fonction de hachage cryptographique, sur une donnée, généralement un seul fichier.
La comparaison de la somme de contrôle que vous générez à partir de votre version du fichier avec celle fournie par la source du fichier permet de garantir que votre copie du fichier est authentique et sans erreur.

Une somme de contrôle est aussi parfois appelée une somme de hachage et moins souvent une valeur de hachage, un code de hachage ou simplement un hachage.

La somme de contrôle : comment ça marche ?

Il existe de nombreuses fonctions de hachage comme MD5, SHA1, SHA256.
On applique donc cette fonction à une donnée pour obtenir un hash.

La somme de contrôle : comment ça marche ?
source https://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le

Par exemple, on applique la fonction de hash SHA256 sur la phrase "malekal.com est un super site".

malekal.com est un super site
a8990b01b2403d31d2b9f7cf40c7d95a15124acd62708205e3853043da7b3118

On obtient alors le hash qui est une série de chiffres et lettres.
Ce dernier est unique et correspond uniquement à cette donnée.

Si on applique à une autre donnée, on obtient un hash différent.

malekal.com est un mauvais site
602bcf90f207ce3eb3b8d4816ae60933aa807d5e5c7b52b1e14bc2f06da8a19a

Comme le hash est unique à une donnée spécifique, on peut comparer les hash pour s'assurer que les données sont identiques et non altérées.
C'est là toute la force d'une somme de contrôle.

La somme de contrôle : comment ça marche ?
Il faut bien comprendre que cela ne fonctionne que dans un sens.
On peut calculer le hash d'une donnée, mais on ne peut pas récupérer la donnée à partir d'un hash.

A quoi sert la somme de contrôle ?

Vérifier l'intégrité d'un fichier

La somme de contrôle peut s'appliquer à un fichier.
Lorsque vous téléchargez un fichier en comparant la somme de contrôle du fichier téléchargé à celui fournit par l'éditeur, vous pouvez vous assurer que ce dernier n'est pas corrompu.
Cela est notamment très utile pour les fichiers ISO pour installer un OS.

Il existe de nombreux outils pour calculer le hash et somme de contrôle d'un fichier :

Vérifier l'intégrité d'un fichier avec HashTab

Contrôle de redondance cyclique (CRC)

Le contrôle de redondance cyclique (CRC) est l'utilisation de la somme de contrôle pour le transfert de données.
Par exemple lors de la copie depuis un support comme un DVD-Rom, un calcul CRC est effectué avant la copie puis après la copie.
Si ces derniers sont différents alors la copie est erronée.
Cela permet de détecter des erreurs de transmission ou de transfert.

On trouve différentes applications comme la sauvegarde, sur les disques dur et même lors de la décompresser d'un fichier archive.
Cela peut arriver si le fichier ZIP est corrompu après un mauvais téléchargement ou si ce dernier est protégé par un mot de passe.
Un mauvais mot de passe ne permettant pas de récupérer les données sources valides et conduit à une erreur CRC.

Contrôle de redondance cyclique (CRC) et la somme de contrôle

Enfin reportez-vous à ce lien lorsqu'il s'agit d'un problème de disque dur ou SSD :

Dans les certificats électroniques

On trouve une autre application des sommes de contrôle dans les certificats électroniques.
Premièrement lors du téléchargement afin de s'assurer que ce dernier n'est pas corrompue.
Par exemple pour les certificats SSL, on peut vérifier leur empreinte numérique.
Là aussi le but est de garantir que le document n'a pas été altéré par un attaquant.

Le checksum dans les certificats électroniques

La signature numérique

La somme de contrôle est aussi utilisée dans la signature numérique.
On peut signer un document ou signer électroniquement un fichier.
A l'aide d'un certificat électronique, on peut garantir qu'une donnée n'a pas été modifié.
Dès lors que la donné est modifiée, il perd la signature numérique car la somme de contrôle n'est plus la même.

Par exemple, vous envoyer un mail signé (et éventuellement chiffré) par exemple avec PGP, vous assurez alors aux destinataires que le mail est bien l'original.
Les éditeurs d'applications peuvent aussi signer un fichier pour garantir que les fichiers d'une application ou d'un système d'exploitation n'a pas été modifiée.
Lorsqu'un virus ou Trojan modifie le contenu d'un fichier, le fichier n'est plus signé ce qui peut indiquer une falsification.

Checksum et BIOS

Le BIOS de l'ordinateur stocke la configuration de votre PC.
Celle-ci est stockée dans le CMOS (Complementary Metal Oxide Semiconductor) de la carte mère.
Pour assurer que les données restent valides, le BIOS enregistre une somme de contrôle des données de configuration hardware.
Lorsqu'elle ne correspond pas, le PC affiche alors un message Checksum Error ou Checksum bad au démarrage du PC.