R4B10 - TP 2
Somme de contrôle
1. Introduction
L'objectif de ce TP est de prendre en main concrêtement un des concepts de cryptographie que vous avez vu dans le cours de premier semestre (côté mathématiques) : les fonctions de hachages.
Il s'agit à la fois de comprendre l'intérêt de ce concept mais aussi et surtout de manipuler les commandes Unix qui les utilisent. Vous découvrirez et manipulerez également quelques autres commandes Unix communes.
Lors de ce TP vous allez devoir travailler en ligne de commande. Il est important de bien faire les étapes de préparation de votre environnement de travail en début de séance et le nettoyage de celui-ci en fin de séance.
2. Préparation de l'environnement de travail
- Ouvrez un terminal.
Créez un dossier pour le TP dans votre dossier personnel (par exemple
~/r4b10/checksum
) et déplacez vous dans celui-ci.L'intégralité du TP devrait être fait dans ce dossier !
Comme c'est l'habitude sous Unix, dans ce sujet les pages du manuel
sont identifiées par leur nom suffixé par leur section entre
parenthèse. On rappel que pour y accéder il suffit d'appeller la
commande man
en lui spécifiant en paramètre la section puis le nom
de la page.
Par exemple pour accéder à la page intro(1)
il suffit d'appeler la
commande suivante :
man 1 intro
Les pages du manuel Unix sont souvent accessibles sur le web. Les pages web que vous trouveriez sur le web ne correspondant pas forcément à celles utilisées sur vos machines (distribution ou version différente), il est décommandé d'aller lire les pages du manuel ailleurs que sur un terminal de la machine sur laquelle vous travaillez.
Vous trouverez cependant dans ce sujet des liens web vers les versions
des pages du manuel correspondant à Debian Bookworm (12) comme, par
exemple, dans intro(1)
.
3. Somme de contrôle
Une des utilisations les plus fréquentes des fonctions de hachages sous Unix est de construire des sommes de contrôle pour vérifier le bon téléchargement de gros fichiers.
Une somme de contrôle est ici le résultat d'une fonction de hachage calculée sur le contenu binaire d'un fichier.
Lorsque l'on télécharge un fichier en ligne, par exemple via HTTPS, il se peut que le fichier reçu ne soit pas correctement récupéré. Les raisons peuvent être nombreuses : mauvaise qualité de la connexion réseau, manque de place localement, modification du fichier par un des intermédiaires, etc.
L'idée, pour les services mettant à disposition des fichiers de taille importante (les distributeurs Linux par exemple), est de mettre également à disposition la somme de contrôle de ces fichiers. Lors d'un téléchargement il est alors simple de vérifier l'intégrité du fichier récupéré en recalculant la somme de contrôle de celui-ci et en la comparant à celle mise à disposition. Si les sommes sont équivalentes alors on a l'assurance que le fichier récupéré est dans le même état que celui qui était mis à disposition sinon il est corrompu.
Récupération de fichier
La commande wget
permet de récupérer des fichiers via HTTPS.
- En étudiant la page
wget(1)
déterminez la ligne de commande permettant de récupérer le fichier vidéoiut-ibm360titre-ok.mkv
qui est disponible à l'URL http://localhost/~bruno.beaufils/crypto/iut-ibm360titre-ok.mkv. - Récupérez ce fichier dans votre dossier de travail et regardez le,
par exemple via la commande
ffplay(1)
.
Vérification de l'intégrité du fichier
- Après avoir étudié la page
md5sum(1)
déterminez la ligne de commande permettant de calculer la somme de contrôle via l'algorithme MD5 de ce fichier, puis exécutez là. La somme de contrôle du fichier original est
37877daf00759a346f7cac1187162fd0
.Vérifiez que la somme que vous avez calculée et la somme originale sont bien identiques.
Compromission du fichier
- Modifiez quelques octets du début de votre fichier via la commande
hexedit
et enregistrez ces modifications. En cas de nécessité la lecture de la pagehexedit(1)
pourra vous rafraîchir la mémoire. - Vérifiez que le fichier n'est plus utilisable, toujours via
ffplay
par exemple. - Recalculez la somme de contrôle de votre fichier via
md5sum
et observez qu'elle est bien différente de la somme orginale.
Vérification automatique
L'algorithme MD5 est désormais connu pour être à la merci de collisions. Il est de ce fait de moins en moins utilisé pour le calcul des sommes de contrôles. Il est souvent remplacé par des sommes de contrôles calculées via des algorithmes de hachage cryptographique de type SHA.
On trouve dans le dossier disponibles à l'URL http://localhost/~bruno.beaufils/crypto plusieurs fichiers.
- Téléchargez dans votre dossier de travail, les fichiers suivants :
iut-ibm360titre-ko.mkv
iut-ibm360titre-ok.mkv
mini.iso
SHA256SUMS
- Après avoir étudié les pages
shasum(1)
etsha256sum(1)
et observé les autres fichiers disponibles dans le dossier, déterminez les commandes à exécuter pour vérifier automatiquement l'intégrité des 2 fichiers téléchargés à l'étape précédente. - Exécutez ces commandes et vérifiez que 2 ont été correctement téléchargés et qu'un autre n'a pas la bonne somme de contrôle.
4. Nettoyage de l'environnement de travail
Pour ne pas utiliser trop de place sur votre dossier personnel,
supprimez le contenu de votre dossier de TP (~/r4b10/checksum
).