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

  1. Ouvrez un terminal.
  2. 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.

  1. En étudiant la page wget(1) déterminez la ligne de commande permettant de récupérer le fichier vidéo iut-ibm360titre-ok.mkv qui est disponible à l'URL http://localhost/~bruno.beaufils/crypto/iut-ibm360titre-ok.mkv.
  2. 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

  1. 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à.
  2. 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

  1. 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 page hexedit(1) pourra vous rafraîchir la mémoire.
  2. Vérifiez que le fichier n'est plus utilisable, toujours via ffplay par exemple.
  3. 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.

  1. Téléchargez dans votre dossier de travail, les fichiers suivants :
    • iut-ibm360titre-ko.mkv
    • iut-ibm360titre-ok.mkv
    • mini.iso
    • SHA256SUMS
  2. Après avoir étudié les pages shasum(1) et sha256sum(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.
  3. 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).