Objectifs
Partie 1 : Créer des hashs avec OpenSSL Partie
2 : Vérifier les hashs
Contexte/scénario
Les fonctions de hash sont des algorithmes mathématiques conçus pour prendre des données comme entrée
et générer une chaîne unique de caractères de longueur fixe, également appelée « hash ». Les fonctions de
hash sont rapides et extrêmement difficiles à inverser. En effet, il est très difficile de récupérer les données
ayant servir à créer un hash en se basant uniquement sur le hash en lui-même. Une autre caractéristique
majeure des fonctions de hash est que la moindre modification apportée aux données d'entrée génère un
hash complètement différent.
OpenSSL peut être utilisé pour générer et comparer des hashs, mais d'autres outils sont également
disponibles. Certains de ces outils sont d'ailleurs utilisés dans ce TP.
Ressources requises
• Poste de travail virtuel CyberOps
• Accès Internet
d. À partir de la même fenêtre du terminal, exécutez la commande suivante pour appliquer un hash au
fichier texte. La commande utilisera l'algorithme de hash MD5 pour générer un hash à partir du fichier
texte. Le hash apparaîtra à l'écran dès qu'OpenSSL l'aura calculé.
Cisco et/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Page 1 sur 3 www.netacad.com
[analyst@secOps lab.support.files]$ openssl md5 letter_to_grandma.txt
MD5(lettre_à_grand-mère.txt)= 8a82289f681041f5e44fa8fbeeb3afb6
Travaux pratiques – Le hash
Observez le format de la sortie. OpenSSL affiche l'algorithme de hash utilisé, MD5, suivi du nom du
fichier utilisé comme données d'entrée. Le hash MD5 apparaît juste après le signe égal (« = »).
e. Les fonctions de hash permettent de vérifier l'intégrité des données, qu'il s'agisse d'une image, d'une
chanson ou d'un simple fichier texte. La moindre modification apportée aux données génère un hash
complètement différent. Les hashs peuvent être calculés avant et après la transmission, puis comparés.
Si les hashs ne correspondent pas, cela signifie que les données ont été modifiées pendant la
transmission.
Nous allons modifier le fichier texte lettre_à_grand-mère.txt et recalculer le hash MD5. Exécutez la
commande ci-dessous pour ouvrir nano, un éditeur de texte de ligne de commande.
[analyst@secOps lab.support.files]$ nano lettre_à_grand-mère.txt
Dans l'éditeur nano, remplacez la première phrase « Bonjour Grand-mère » par « Bonjour Grandpère
». Vous remarquerez que nous remplaçons un seul caractère (« m » par « p »). Une fois la modification
effectuée, appuyez sur les touches <CONTROL+X> pour enregistrer le fichier modifié. Appuyez sur « Y »
pour confirmer le nom et enregistrer le fichier. Appuyez sur la touche <Entrée> pour quittr nano et passer
à l'étape suivante.
f. Maintenant que le fichier a été modifié et enregistré, exécutez la même commande pour générer un hash
MD5 du fichier.
[analyst@secOps lab.support.files]$ openssl md5 lettre_à_grand-mère.txt
MD5(lettre_à_grand-mère.txt)= dca1cf6470f0363afb7a65a4148fb442
Le nouveau hash est-il différent du hash calculé à l'étape (d) ? En quoi est-il différent ?
Oui ! Le nouveau hash est complètement différent du hash précèdent, parce qu’il à été modifié.
____________________________________________________________________________________
g. Les hashs MD5 sont considérés comme peu sécurisés et donc vulnérables aux attaques. Des
algorithmes de hash plus sécurisés existent, tels que SHA-1 et SHA-2. Pour générer un hash SHA-1 du
fichier lettre_à_grand-mère.txt, utilisez la commande suivante :
[analyst@secOps lab.support.files]$ openssl sha1 letter_to_grandma.txt
SHA1(lettre_à_grand-mère.txt)= 08a835c7bcd21ff57d1236726510c79a0867e861
[analyst@secOps lab.support.files]$
Remarque : d'autres outils sont disponibles pour générer des hashs. Par exemple, md5sum, sha1sum et
sha256sum peuvent être utilisés pour générer, respectivement, des hashs MD5, SHA-1 et SHA-2-256.
h. Utilisez les commandes md5sum et sha1sum pour générer un hash MD5 et un hash SHA-1 du fichier
lettre_à_grand-mère.txt :
[analyst@secOps lab.support.files]$ md5sum letter_to_grandma.txt
dca1cf6470f0363afb7a65a4148fb442 lettre_à_grand-mère.txt
Les hashs générés à l'aide des commandes md5sum et sha1sum correspondent-ils aux images
générées au cours des étapes (g) et (h), respectivement ? Expliquez votre réponse.
Cisco et/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Page 2 sur 3 www.netacad.com
Oui ! Ils utilisent le même algorithme mais ces sont des outils différents.
____________________________________________________________________________________
Travaux pratiques – Le hash
Remarque : si les hackers n'ont pas encore réussi à pirater de manière efficace la fonction de hash
SHA1, les ordinateurs s'avèrent de plus en plus puissants. Cette évolution naturelle devrait donc bientôt
rendre SHA-1 vulnérable aux attaques. Pour anticiper une telle situation, on recommande désormais
l'utilisation de SHA-2 pour toute opération de hash. Il est également important de préciser que SHA-2
constitue en réalité une gamme d'algorithmes de hash. La gamme SHA-2 se compose ainsi de six
fonctions de hash : SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 et SHA-512/256. Ces
fonctions génèrent des valeurs de hash de 224, 256, 384 ou 512 bits de long, respectivement.
Remarque : la machine virtuelle CyberOPS prend uniquement en charge SHA-2-224, SHA-2-256 et
SHA-2-512 (sha224sum, sha256sum et sha512sum, respectivement).
Cisco et/ou ses filiales. Tous droits réservés. Informations confidentielles de Cisco Page 3 sur 3 www.netacad.com