# Comprendre la somme de contrôle et sa fonction
Lorsque vous téléchargez un fichier (image ISO, installeur, archive…), il est essentiel de vérifier qu’il n’a pas été corrompu ou altéré. Pour cela, on utilise son **empreinte numérique**, appelée **somme de contrôle** ou **checksum**, ou **hash**. Cette empreinte permet de garantir que le fichier téléchargé est parfaitement identique à l’original.
Dans cet article, nous allons découvrir ce qu'est un hash (somme de contrôle), une fonction de hachage cryptographique et comment les utiliser pour vérifier l'intégrité d'un fichier.
## Qu’est-ce qu’un hash (somme de contrôle) ?
Un **hash** est une suite de caractères (des chiffres et des lettres) aussi appelé **checksum** ou **hash**. Ce dernier est généré par une **fonction de hachage cryptographique** (formule mathématique).
Exemple d’empreinte SHA-256 du fichier [debian-13.2.0-amd64-netinst.iso](https://cdimage.debian.org/debian-cd/13.2.0/amd64/iso-cd/) :
```
677c4d57aa034dc192b5191870141057574c1b05df2b9569c0ee08aa4e32125d
```
C'est un système qui simplifie le contrôle d’intégrité. La vérification d'un hash intervient dans de nombreux contextes, mais principalement en cybersécurité. Une empreinte permet d’identifier un contenu (fichier, mot de passe) sans le lire. On utilise les sommes de contrôle essentiellement pour :
- **Vérifier l’intégrité d’un fichier** après téléchargement ou transfert.
- **Vérifier un mot de passe** (comparaison du hash stocké avec le hash de la saisie).
- **Identifier des objets** (Git, systèmes de fichiers, réseaux peer-to-peer, etc.).
- **Détecter des altérations** dans des environnements sensibles (logs, configurations, binaires).
## Qu'est-ce qu'une fonction de hachage cryptographique ?
Une **fonction de hachage cryptographique** est une fonction **à sens unique** : retrouver les données d’origine à partir du hash est considéré comme **infaisable**.
> [!info] À savoir ! <span style="font-weight: normal; color: var(--text-normal)">Modifier un seul caractère dans un texte produit un hash totalement différent.</span>
Par exemple, le hash MD5 du mot "password" n’a rien à voir avec celui de "Password" avec un "P" majuscule.
![[_asset-guide-comprendre-le-hash.png]]
## Les principales fonctions de hachage cryptographique
Il existe plusieurs **fonctions de hachage**. Chacune produit un hash d’une longueur différente :
|Algorithme|Sécurité|Usage recommandé|
|---|---|---|
|**MD5**|Faible, collisions connues|À éviter|
|**SHA-1**|Obsolète|À éviter|
|**SHA-256**|Très robuste|Usage courant|
|**SHA-512**|Encore plus robuste|Sécurité renforcée|
> [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> Utiliser **SHA-256 ou supérieur**. MD5 et SHA-1 sont obsolètes et sont vulnérables aux attaques par collisions (produire deux fichiers différents avec la même empreinte).</span>
## Comment vérifier l'intégrité d'un fichier grâce au hash ?
Le cas d'usage le plus commun est d'utiliser la somme de contrôle d'un fichier téléchargé pour vérifier qu'il est intact. Ci-dessous un cas d'usage pour l'installation d'un nouveau système d'exploitation Debian 13.
### Vérifier l'intégrité d'un fichier ISO
Debian publie ses fichiers d'installation via des dépôts qui permettent le téléchargement des images ISO de CD/DVD. Ci-dessous les étapes pour vérifier l'intégrité du fichier téléchargé :
1. Récupérez le hash (la somme de contrôle) officiel du fichier [SHA256SUMS](https://cdimage.debian.org/debian-cd/13.2.0/amd64/iso-cd/SHA256SUMS) fourni par Debian.
2. Téléchargez le fichier [debian-13.2.0-amd64-netinst.iso](https://cdimage.debian.org/debian-cd/13.2.0/amd64/iso-cd/).
3. Calculez l'empreinte SHA-256 du fichier téléchargé.
4. Comparez les deux empreintes obtenues :
- Si elles correspondent : le fichier est intact et propre à être déployé.
- Si elles diffèrent : le fichier est corrompu, modifié ou potentiellement malveillant.
### Que faire en cas d’échec ?
Si la vérification échoue :
- Supprimez le fichier que vous avez téléchargé.
- Vérifiez l’intégrité de la source, utilisez toujours le site officiel.
- Vérifiez la stabilité de votre réseau ou la qualité de votre stockage.
- Téléchargez-le à nouveau, de préférence depuis le site officiel ou une source de confiance.
- Recommencez la vérification de l’empreinte.
### Quels outils pour vérifier un hash ?
Il existe différents outils et différentes méthodes :
- Des logiciels spécialisés, par exemple : [OpenHashTab](https://github.com/namazso/OpenHashTab/releases).
- Sous Windows en ligne de commandes, par exemple :
- [[kb-checksum-win-powershell|Get-FileHash]] (PowerShell)
- [[kb-checksum-win-certutils|certutils]] (Invite de commande).
- Sous Linux avec les commandes `sha1sum`, `sha256sum` et `sha512sum`.
# Conclusion
Les sommes de contrôle jouent un rôle essentiel dans la vérification de l’intégrité informatique. Elles permettent de comparer deux données sans les lire et de détecter toute altération, même minime. Le choix de la fonction de hachage est crucial : certains algorithmes comme **CRC32, MD5 ou SHA-1** sont trop faibles et ne doivent plus être utilisés pour des usages sensibles.
Les fonctions modernes (SHA-256, SHA-512) restent aujourd’hui sûres, mais ne sont **pas** conçues pour résister à la cryptanalyse quantique. De nouveaux standards (ex. SHA-3, algorithmes PQC) sont progressivement adoptés pour anticiper ces menaces.
## Références
- Wikipédia : [Fonction de hachage cryptographique](https://fr.wikipedia.org/wiki/Fonction_de_hachage_cryptographique)
- Le Crabe Info : [Qu'est-ce qu'une somme de contrôle (checksum) ?](https://lecrabeinfo.net/guides/quest-ce-quune-somme-de-controle-checksum/)
- IT-CONNECT : [Calculer une empreinte SHA1 sous Linux](https://www.it-connect.fr/calculer-une-empreinte-sha1-sous-linux)