Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TP 3 Utilisation d'OpenSSL-Sana MANSSOURI

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 13

CyberSécurité BTS SIO SISR

Travaux Pratiques : Utilisation d’OpenSSL


Pour le chiffrement et le Hachage

Question :
Quelle est la différence entre le chiffrement et Hachage ?
Le chiffrement > processus qui transforme des données en une forme illisible, permettant leur restitution ultérieure à
------------------------------------------------------------------------------------------------------------------------------
l'état original avec une clé appropriée.
------------------------------------------------------------------------------------------------------------------------------
Le hachage > génère une empreinte fixe à partir de données d'entrée, qui ne peut pas être inversée, et est souvent
utilisé pour garantir l'intégrité des données.
--------------------------------------------------------------------------------
I. Chiffrement
Partie 1 : Chiffrer et déchiffrer des données avec OpenSSL

Objectifs
Partie 1 : messages de chiffrement avec OpenSSL
Partie 2 : messages de déchiffrement avec OpenSSL

Contexte/scénario
OpenSSL est un projet open source qui fournit une boîte à outils robuste, de qualité commerciale et complète
pour les protocoles TLS (Transport Layer Security) et SSL (Secure Sockets Layer). C'est aussi une
bibliothèque de cryptographie à usage général. Au cours de ces travaux pratiques, vous allez utiliser
OpenSSL pour chiffrer et déchiffrer des messages texte.
Remarque: bien que OpenSSL soit la bibliothèque de cryptographie par excellence, l'utilisation qui en est
faite ici N'est PAS recommandée dans la cadre d'un système de protection renforcé. Ces travaux pratiques
présentent deux problèmes de sécurité :
1) La méthode décrite ici utilise une fonction de dérivation de clés faible. La sécurité n'est assurée QUE
par un mot de passe très fort.
2) La méthode décrite ici ne garantit pas l'intégrité du fichier texte.
Ces travaux pratiques doivent uniquement être utilisés à des fins de formation. Les méthodes présentées ici
ne doivent pas être utilisées pour sécuriser des données sensibles réelles.
Syntaxe : openssl commande [options] [arguments]

I. Codage en base64

Définition : Base64 est un codage utilisant 65 caractères imprimables (les 26 lettres majuscules, les
26 lettres minuscules, les 10 chiffres, le caractère ‘+’, le caractère ‘/’ et le caractère spécial ‘=’). Base64

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 1 sur 13 www.netacad.com
Travaux Pratiques -

permet d'échanger des données en réduisant les problèmes d'encodage des caractères spéciaux.
Syntaxe : Pour encoder en base64, on utilise :

openssl enc -base64 -in fichier

Pour décoder de la base64, on utilise :

openssl enc -base64 -d -in fichier

1. Encodez un mot de passe avec base64 et donnez-le à votre binôme. Votre binôme devra
retrouver le mot de passe. echo -n "votre_mot_de_passe" | base64 > mdp afficher pour root :
cm9vdA==
echo "votre_chaine_base64" | base64 --decode
2. Est-ce que base64 est un moyen sûr de protéger un mot de passe ?
Non, Base64 n'offre aucune sécurité pour les mots de passe, car il ne fait qu'encoder des
données en ASCII sans les protéger..
II. Chiffrer des messages avec OpenSSL
OpenSSL peut être utilisé comme outil autonome pour le chiffrement. Même si de nombreux algorithmes de
chiffrement peuvent être utilisés, nous utiliserons ici principalement AES.
Chiffrement symétrique à clé unique
aes-256-cbc : type d’algorithme (AES avec clé de 256 bits) et de mode de chiffrement (ici cbc) cfb, ecb
Pour utiliser AES afin de chiffrer un fichier texte directement à partir de la ligne de commande avec OpenSSL,
procédez comme suit :

b. Chiffrer un fichier texte


i. Ouvrez une session dans le poste de travail virtuel.
ii. Ouvrez une fenêtre de terminal.
iii. Créer le fichier texte à chiffrer dans le répertoire rep se trouvant sous votre répertoire personnel, accédez
à ce répertoire :
[analyst@secOps ~]$ mkdir rep
[analyst@secOps rep]$ touch letter_to_grandma.txt
iv. Saisissez le texte suivant dans le fichier texte letter_to_grandma.txt chiffré :
Bonjour Grand-mère,
Je t'écris cette lettre pour te remercier pour les cookies au chocolat que tu
m'as envoyés. Je les ai reçus ce matin et j'ai déjà mangé la moitié de la
boîte ! Ils sont vraiment délicieux !

Je t'envoie de tendres pensées. Bien à toi,


Ton petit-fils qui adore les cookies.
[analyst@secOps rep]$ cat letter_to_grandma.txt

v. Depuis la même fenêtre de terminal, lancez la commande suivante pour chiffrer le fichier texte. Cette
commande utilise AES-256 pour chiffrer le fichier texte et enregistre la version cryptée comme
message.enc. OpenSSL vous demande de définir un mot de passe et de confirmer ce mot de passe.
Définissez un mot de passe demandé et mémorisez-le.

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 2 sur 13 www.netacad.com
Travaux Pratiques -

[analyst@secOps lab.support.files]$ openssl aes-256-cbc -in


letter_to_grandma.txt -out message.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
[analyst@secOps lab.support.files]$
Question :

Documenter le mot de passe.


root
---------------------------------------------------------------------------------------------------------------------------------

vi. Lorsque le processus est terminé, utilisez la commande cat pour afficher le contenu du fichier
message.enc.
[analyst@secOps lab.support.files]$ cat message.enc
Question :

Le contenu du fichier message.enc s'est-il affiché correctement ? À quoi ressemble-t-il ? Expliquez votre
réponse.
Le contenu contient des données chiffrées composé de caractères aléatoires et de symboles.. Cela
---------------------------------------------------------------------------------------------------------------------------------
signifie que le fichier a été correctement chiffré, car les données d'origine ne peuvent pas être lues sans
le processus de déchiffrement approprié.
vii. Pour rendre le fichier lisible, exécutez de nouveau la commande OpenSSL, mais cette fois-ci ajoutez
l'option -a. L'option -a indique à OpenSSL de coder le message chiffré avec une méthode de codage
autre que Base64 avant de stocker les résultats dans un fichier.
Remarque : Base64 est un groupe de modèles de codage binaire vers texte semblables utilisés pour
représenter des données binaires dans un format de chaîne ASCII.
[analyst@secOps lab.support.files]$ openssl aes-256-cbc -a -in
letter_to_grandma.txt -out message.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
viii. Utilisez de nouveau la commande cat pour afficher le contenu du fichier message.enc de nouveau
généré :
Remarque : le contenu du fichier message.enc varie.
[analyst@secOps lab.support.files]$ cat message.enc
U2FsdGVkX19ApWyrn8RD5zNp0RPCuMGZ98wDc26u/vmj1zyDXobGQhm/dDRZasG7
rfnth5Q8NHValEw8vipKGM66dNFyyr9/hJUzCoqhFpRHgNn+Xs5+TOtz/QCPN1bi
08LGTSzOpfkg76XDCk8uPy1hl/+Ng92sM5rgMzLXfEXtaYe5UgwOD42U/U6q73pj
a1ksQrTWsv5mtN7y6mh02Wobo3A1ooHrM7niOwK1a3YKrSp+ZhYzVTrtksWDl6Ci
XMufkv+FOGn+SoEEuh7l4fk0LIPEfGsExVFB4TGdTiZQApRw74rTAZaE/dopaJn0
sJmR3+3C+dmgzZIKEHWsJ2pgLvj2Sme79J/XxwQVNpw=
[analyst@secOps lab.support.files]$
Questions :

Le fichier message.enc s'est-il affiché correctement ? Expliquez votre réponse.


---------------------------------------------------------------------------------------------------------------------------------
Oui, le fichier `message.enc` s'est affiché correctement, car son contenu est maintenant une chaîne de
caractères ASCII lisible, indiquant qu'il a été encodé en utilisant Base64 après le chiffrement.

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 3 sur 13 www.netacad.com
Travaux Pratiques -

Quel est selon vous l'intérêt d'avoir codé message.enc en Base64 ?


Coder `message.enc` en Base64 permet de représenter les données chiffrées en ASCII, facilitant ainsi leur
---------------------------------------------------------------------------------------------------------------------------------
stockage et leur transfert sur des systèmes qui ne gèrent pas les données binaires.

III. Déchiffrer des messages avec OpenSSL


Avec une commande OpenSSL similaire, il est possible de déchiffrer message.enc.
ix. Utilisez la commande ci-dessous pour déchiffrer message.enc :
[analyst@secOps lab.support.files]$ openssl aes-256-cbc –a -d -in message.enc
-out decrypted_letter.txt

x. OpenSSL vous demande le mot de passe utilisé pour chiffrer le fichier. Saisissez de nouveau le même
mot de passe.
xi. Quand OpenSSL finit de déchiffrer le fichier message.enc, il enregistre le message déchiffré dans un
fichier texte appelé decrypted_letter. Utilisez la commande cat pour afficher le contenu du fichier
decrypted_letter:
[analyst@secOps lab.support.files]$ cat decrypted_letter.txt
Questions :

La lettre a-t-elle été correctement déchiffrée ?


Oui, la lettre a été correctement déchiffrée car son contenu est lisible et correspond au texte d'origine.
---------------------------------------------------------------------------------------------------------------------------------

La commande utilisée pour déchiffrer contient également une option -a. Pouvez-vous expliquer
pourquoi ?
L'option `-a` est utilisée pour indiquer à OpenSSL de décoder le contenu encodé en Base64
---------------------------------------------------------------------------------------------------------------------------------
avant de le déchiffrer.

Partie 2 : Chiffrer et déchiffrer des données avec un outil de hacker

Objectifs
Partie 1 : Créer et chiffrer des fichiers
Partie 2 : Récupérer des mots de passe de fichiers zip chiffrés

Contexte/scénario
Imaginons que vous travaillez pour une grande entreprise qui a mis en place une politique relative aux
supports amovibles. Cette politique établit que seuls les documents compressés chiffrés peuvent être copiés
sur des disques flash USB portables.
Dans ce scénario, le directeur financier, qui est en déplacement, vous contacte en urgence pour vous
demander de l'aide. Alors qu'il est en déplacement, il a essayé de décompresser des documents importants à
partir d'un fichier zip chiffré stocké sur une clé USB. Malheureusement, le mot de passe fourni pour ouvrir le
fichier zip n'est pas valide. Le directeur financier vous demande donc si vous pouvez l'aider à résoudre ce
problème.
Remarque : ce scénario est simple et donné uniquement à titre d'exemple.

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 4 sur 13 www.netacad.com
Travaux Pratiques -

Plusieurs outils permettent de récupérer des mots de passe oubliés. Cela est particulièrement vrai dans des
cas comme celui-ci où l'analyste en cybersécurité peut obtenir des renseignements pertinents de la part du
directeur financier. Les informations pertinentes pourraient être la longueur du mot de passe et une idée de
ce qu'il pourrait être. De tels renseignements s'avèrent d'une aide précieuse pour récupérer un mot de passe.
Voici quelques exemples de programmes et d'utilitaires de récupération de mot de passe : hashcat, John the
Ripper, Lophtcrack, etc. Dans notre scénario, nous allons utiliser fcrackzip, un utilitaire Linux simple qui
permet de récupérer les mots de passe des fichiers zip chiffrés.
N'oubliez pas que ces mêmes outils peuvent être utilisés par les hackers pour découvrir des mots de passe
inconnus. Même si les hackers n'ont pas accès à certains renseignements précieux, il leur est tout de même
possible, avec un peu de temps, de découvrir les mots de passe servant à ouvrir les fichiers zip chiffrés. Le
temps nécessaire dépend de la force et de la longueur du mot de passe. Plus un mot de passe est long et
complexe (avec différents types de caractères), plus il est sûr.
Au cours de ces travaux pratiques, vous allez :

 Créer et chiffrer des exemples de fichiers texte.

 Déchiffrer le fichier zip chiffré.


Remarque : ce TP doit être utilisé à des fins de formation uniquement. Les méthodes présentées ici ne
doivent pas être utilisées pour sécuriser des données sensibles réelles.

1. Créer et chiffrer des fichiers


Dans cette partie, vous allez créer plusieurs fichiers texte qui serviront à créer des fichiers zip chiffrés à
l'étape suivante.

a. Créez des fichiers texte.


i. Démarrez le poste de travail virtuel Ubuntu ou Debian.
ii. Ouvrez une fenêtre de terminal. Vérifiez que vous vous trouvez dans le répertoire de base de l'analyste.
Si ce n'est pas le cas, saisissez cd ~ dans l'invite du terminal.
iii. Créez un nouveau dossier appelé Zip-Files à l'aide de la commande mkdir Zip-Files.
iv. Accédez à ce répertoire en utilisant la commande cd Zip-Files.
v. Saisissez les données suivantes pour créer trois fichiers texte.
[analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte >
sample-1.txt
[analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte >
sample-2.txt
[analyst@secOps Zip-Files]$ echo Ceci est un exemple de fichier texte >
sample-3.txt

vi. Vérifiez que les fichiers ont été créés à l'aide de la commande ls.
[analyst@secOps Zip-Files]$ ls -l
total 12
-rw-r—r— 1 analyste 27 mai 13 10:58 sample-1.txt
-rw-r—r— 1 analyste 27 mai 13 10:58 sample-2.txt
-rw-r—r— 1 analyste 27 mai 13 10:58 sample-3.txt

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 5 sur 13 www.netacad.com
Travaux Pratiques -

b. Compresser et chiffrer les fichiers texte


Nous allons désormais créer plusieurs fichiers compressés chiffrés avec des mots de passe de longueur
variable. Pour ce faire, les trois fichiers texte seront chiffrés à l'aide de l'utilitaire zip.
i. Créez un fichier zip chiffré nommé file-1.zip contenant les trois fichiers texte à l'aide de la commande
suivante :
[analyst@secOps Zip-Files]$ zip –e file-1.zip sample*
ii. Lorsque vous êtes invité à saisir un mot de passe, saisissez un mot de passe d'un caractère de votre
choix. Dans l'exemple, c'est la lettre B qui est utilisée. Saisissez la même lettre lorsque vous êtes invité à
confirmer le mot de passe.
[analyst@secOps Zip-Files]$ zip -e file-1.zip sample-*
Saisir le mot de passe :
Vérifier le mot de passe :
adding: sample-1.txt (stored 0%)
adding: sample-2.txt (stored 0%)
adding: sample-3.txt (stored 0%)

iii. Répétez la procédure pour créer les 4 autres fichiers suivants


 file-2.zip using a 2-character password of your choice. Dans notre exemple, nous avons utilisé R2.
 file-3.zip, avec un mot de passe de 3 caractères de votre choix. Dans notre exemple, nous avons
utilisé 0B1.
 file-4.zip, avec un mot de passe de 4 caractères de votre choix. Dans notre exemple, nous avons
utilisé Y0Da.
 file-5.zip, avec un mot de passe de 5 caractères de votre choix. Dans notre exemple, nous avons
utilisé C-3P0.
iv. Vérifiez que tous les fichiers zip ont été créés à l'aide de la commande ls -l f*.
[analyst@secOps Zip-Files]$ ls -l f*
-rw-r--r-- 1 analyst analyst 643 May 13 11:01 file-1.zip
-rw-r--r-- 1 analyst analyst 643 May 13 11:02 file-2.zip
-rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-3.zip
-rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-4.zip
-rw-r--r-- 1 analyst analyst 643 May 13 11:03 file-5.zip

v. Essayez d'ouvrir un fichier zip à l'aide d'un mot de passe erroné comme indiqué ci-dessous.
[analyst@secOps Zip-Files]$ unzip file-1.zip
Archive: file-1.zip
[file-1.zip] sample-1.txt password:
password incorrect--reenter:
password incorrect--reenter:
skipping: sample-1.txt incorrect password
[file-1.zip] sample-2.txt password:
password incorrect--reenter:
password incorrect--reenter:
skipping: sample-2.txt incorrect password

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 6 sur 13 www.netacad.com
Travaux Pratiques -

[file-1.zip] sample-3.txt password:


password incorrect--reenter:
password incorrect--reenter:
skipping: sample-3.txt incorrect password

2. Récupérer des mots de passe de fichiers zip chiffrés


Dans cette partie, vous allez utiliser l'utilitaire fcrackzip pour récupérer des mots de passe oubliés à partir de
fichiers compressés chiffrés. Fcrackzip recherche les fichiers chiffrés dans chaque fichier zip et tente de
deviner le mot de passe associé à l'aide de méthodes de force brute.
Nous avons créé des fichiers zip avec des mots de passe de différentes longueurs pour voir si la longueur du
mot de passe a une incidence sur le temps nécessaire pour découvrir le mot de passe.

a. Présentation de l'outil fcrackzip


Dans la fenêtre du terminal, saisissez la commande fcrackzip –h pour afficher les options de commande
associées.
Dans nos exemples, nous utiliserons les options de commande –v, -u et -l. L'option -l apparaîtra en dernier,
car elle spécifie la longueur de mot de passe possible. N'hésitez pas à tester d'autres options.

b. Récupérer des mots de passe à l'aide de fcrackzip


i. Essayez maintenant de récupérer le mot de passe du fichier file-1.zip. Rappelons qu'un mot de passe
d'un caractère a été utilisé pour chiffrer le fichier. Vous devez donc utiliser la commande fcrackzip
suivante :
[analyst@secOps Zip-Files]$ fcrackzip -vul 1-4 file-1.zip
found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754)
found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756)
found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757)

PASSWORD FOUND!!!!: pw == B

Remarque: La longueur de mot de passe aurait pu être définie sur moins de 1 à 4 caractères
Question :

Combien de temps faut-il pour découvrir le mot de passe ?


Quelques secondes car mdp court (root)
---------------------------------------------------------------------------------------------------------------------------------

ii. Essayez maintenant de récupérer le mot de passe du fichier file-2.zip. Rappelons qu'un mot de passe de
deux caractères a été utilisé pour chiffrer le fichier. Vous devez donc utiliser la commande fcrackzip
suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-2.zip
found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754)
found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756)
found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757)

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 7 sur 13 www.netacad.com
Travaux Pratiques -

PASSWORD FOUND!!!!: pw == R2
Question :

Combien de temps faut-il pour découvrir le mot de passe ?


1/2 secondes max
--------------------------------------------------------------------------------------------------------------------
-------------
i. Répétez l'opération pour récupérer le mot de passe du fichier file-3.zip. Rappelons qu'un mot de passe
de trois caractères a été utilisé pour chiffrer le fichier. Chronométrez le temps nécessaire pour découvrir
un mot de passe de trois lettres. Utilisez la commande fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-3.zip
found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754)
found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756)
found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757)

PASSWORD FOUND!!!!: pw == 0B1


Question :

Combien de temps faut-il pour découvrir le mot de passe ?


pareil
--------------------------------------------------------------------------------------------------------------------
-------------
i. Combien de temps faut-il pour découvrir un mot de passe de quatre caractères ? Répétez l'opération
pour récupérer le mot de passe du fichier file-4.zip. Chronométrez le temps nécessaire pour découvrir le
mot de passe à l'aide de la commande fcrackzip :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-4 file-4.zip
found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754)
found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756)
found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757)
checking pw X9M~

PASSWORD FOUND!!!!: pw == Y0Da


Question :

Combien de temps faut-il pour découvrir le mot de passe ?


pareil
--------------------------------------------------------------------------------------------------------------------
-------------
i. Combien de temps faut-il pour découvrir un mot de passe de cinq caractères ? Répétez l'opération pour
récupérer le mot de passe du fichier file-5.zip. Le mot de passe comprend cinq caractères. Nous devons
donc définir l'option de commande -l sur 1-5. Chronométrez à nouveau le temps nécessaire pour
découvrir le mot de passe à l'aide de la commande fcrackzip :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-5 file-5.zip
found file 'sample-1.txt', (size cp/uc 39/ 27, flags 9, chk 5754)
found file 'sample-2.txt', (size cp/uc 39/ 27, flags 9, chk 5756)
found file 'sample-3.txt', (size cp/uc 39/ 27, flags 9, chk 5757)

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 8 sur 13 www.netacad.com
Travaux Pratiques -

checking pw C-H*~

PASSWORD FOUND!!!!: pw == C-3P0


Question :

Combien de temps faut-il pour découvrir le mot de passe ?


pareil car meme mdp = root
---------------------------------------------------------------------------------------------------------------------------------

ii. Récupérer un mot de passe de 6 caractères à l'aide de fcrackzip


Il semble que plus le mot de passe est long, plus cela prend de temps pour le découvrir, ce qui signifie
qu'il est aussi plus sécurisé. Toutefois, un mot de passe de 6 caractères ne suffit pas à décourager un
hacker.
Question :

D'après vous, combien de temps faudrait-il à fcrackzip pour découvrir un mot de passe de 6 caractères ?
Pour 6 caractères > à une vitesse de test de plusieurs milliers de mots de passe par seconde, cela
---------------------------------------------------------------------------------------------------------------------------------
pourrait prendre plusieurs heures, voire des jours.

Pour répondre à cette question, créez un fichier nommé file-6.zip avec un mot de passe de 6 caractères
de votre choix. Dans notre exemple, nous avons utilisé JarJar.
[analyst@secOps Zip-Files]$ zip –e file-6.zip sample*

iii. Répétez l'opération pour récupérer le mot de passe du fichier file-6.zip à l'aide de la commande
fcrackzip suivante :
[analyst@secOps Zip-Files]$ fcrackzip –vul 1-6 file-6.zip
Question :

Combien de temps faut-il à fcrackzip pour découvrir le mot de passe ?


J'ai décider de créer un mdp plus complexe , cela prend bcp de minutes/heures.
---------------------------------------------------------------------------------------------------------------------------------

La logique est simple, plus le mot de passe est long, plus il est sûr, car il faut davantage de temps pour le
découvrir.
Question :

D'après vous, quelle doit être la longueur d'un mot de passe pour qu'il soit sûr ?
---------------------------------------------------------------------------------------------------------------------------------
Un mot de passe sécurisé devrait avoir au moins 12 caractères et inclure un mélange de lettres
majuscules, minuscules, chiffres et caractères spéciaux pour augmenter sa complexité.

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 9 sur 13 www.netacad.com
Travaux Pratiques -

II. Le Hachage

Objectifs
Partie 1: Hachage d'un fichier texte 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 hachage est que la moindre modification apportée aux données d'entrée génère un
hach 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.

1. Hachage d'un fichier texte avec OpenSSL


OpenSSL peut être utilisé comme outil de hash autonome. Pour créer un hash d'un fichier texte, procédez
comme suit :

a. Ouvrez une fenêtre du terminal depuis le poste de travail virtuel Ubuntu ou Debian.

b. Saisissez la commande suivante pour afficher à l'écran le contenu du fichier texte letter_to_grandma.txt

[analyst@secOps lab.support.files]$ cat letter_to_grandma.txt

Bonjour Grand-mère,

Je t'écris cette lettre pour te remercier pour les cookies au chocolat que tu m'as
envoyés. Je les ai reçus ce matin et j'ai déjà mangé la moitié de la boîte ! Ils sont
vraiment délicieux !

Je t'envoie de tendres pensées. Bien à toi,

Ton petit-fils qui adore les cookies.

c. À partir de la même fenêtre du terminal, exécutez la commande suivante pour appliquer un hachage au
fichier texte. La commande utilisera l'algorithme de hachage SHA-2-256 pour générer un hachage à partir
du fichier texte. Le hash apparaîtra à l'écran dès qu'OpenSSL l'aura calculé.

[analyst@secOps lab.support.files]$ openssl sha256 letter_to_grandma.txt

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 10 sur 13 www.netacad.com
Travaux Pratiques -

SHA256 (letter_to_grandma.txt) =
deff9c9bbece44866796ff6cf21f2612fbb77aa1b2515a900bafb29be118080b

Observez le format de la sortie. OpenSSL affiche l'algorithme d'hach utilisé, SHA-256, suivi du nom du
fichier utilisé comme données d'entrée. Le hachage SHA-256 apparaît juste après le signe égal (‘=’) .

d. 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 Grand-
pè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.

a. Maintenant que le fichier a été modifié et enregistré, exécutez la même commande pour générer un
hachage SHA-2-256 du fichier.

[analyst@secOps lab.support.files]$ openssl sha256 lettre_à_grand-mère.txt

SHA256 (letter_to_grandma.txt) =
43302c4500b7c4b8e574ba27a59d83267812493c029fd054c9242f3ac73100bc

b. Question :

Le nouveau hash est-il différent du hash calculé à l'étape (d) ? En quoi est-il différent ?
Oui, le nouveau hash est différent de celui calculé précédemment, car même un changement minime dans
le-----------------------------------------------------------------------------------------------------------------
fichier, comme remplacer "m" par "p", entraîne une modification complète du hash. réponses ici
Cela illustre la
sensibilité des fonctions de hash aux modifications des données.

e. Un algorithme de hachage avec une longueur de bits plus longue, tel que SHA-2-512, peut également être
utilisé. Pour générer un hachage SHA-2-512 du fichier letter_to_grandma.txt , utilisez la commande
suivante:

[analyst@secOps lab.support.files]$ openssl sha512 letter_to_grandma.txt

SHA512 (letter_to_grandma.txt) =
7c35db79a06aa30ae0f6de33f2322fd419560ee9af9cedeb6e251f2f1c4e99e0bbe5d2fc32ce5
01468891150e3be7e288e3e568450812980c9f8288e31031d3
[analyst@secOps lab.support.files]$

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 11 sur 13 www.netacad.com
Travaux Pratiques -

f. Utilisez sha256sum et sha512sum pour générer un hachage SHA-2-256 et un hachage SHA-2-512 du


fichier letter_to_grandma.txt :

[analyst@secOps lab.support.files]$ sha256sum letter_to_grandma.txt

43302c4500b7c4b8e574ba27a59d83267812493c029fd054c9242f3ac73100bc
letter_to_grandma.txt

[analyst@secOps lab.support.files]$ sha512sum letter_to_grandma.txt

7c35db79a06aa30ae0f6de33f2322fd419560ee9af9cedeb6e251f2f1c4e99e0bbe5d2fc32ce5
01468891150e3be7e288e3e568450812980c9f8288e3103a1d3 letter_to_grandma.txt

Question :

Les hachages générés à l'aide sha256sum et sha512sum correspondent-ils aux images générées au
cours des étapes (g) et (h), respectivement? Expliquez votre réponse.
Oui, les hachages générés avec `sha256sum` et `sha512sum` correspondent aux images générées, car chaque
-----------------------------------------------------------------------------------------------------------------
fonction de hachage produit une empreinte unique basée sur le contenu du fichier. Si le contenu du fichier reste
inchangé, le hachage restera le même, garantissant ainsi l'intégrité des données.
Remarque: On recommande désormais l'utilisation de SHA-2 pour toute opération de hachage. Si les
hackers n'ont pas encore réussi à pirater de manière efficace la fonction de hash SHA-2 , les ordinateurs
s'avèrent de plus en plus puissants. Cette évolution naturelle devrait donc bientôt rendre SHA-2
vulnérable aux attaques.

SHA-3 est le plus récent algorithme de hachage et éventuellement être le remplacement de la famille
SHA-2 de hachages.

Remarque: La machine virtuelle CyberOps Workstation inclut uniquement la prise en charge de SHA-2-
224, SHA-2-256 et SHA-2-512 (sha224sum, sha256sumet sha512sum, respectivement).

2. Vérifier les hashs


Comme mentionné précédemment, les hashs sont souvent utilisés pour vérifier l'intégrité des fichiers. Suivez
les étapes ci-dessous pour utiliser les hashs SHA-2-256 afin de vérifier l'intégrité du fichier sample.img qui a
été téléchargé sur Internet.

a. sample.img_SHA256.sig a été téléchargé en même temps que sample.img. Le fichier


sample.img_SHA256.sig contient le hachage SHA-2-256 calculé par le site web. Tout d'abord, utilisez la
commande cat pour afficher le contenu du fichier sample.img_SHA256.sig :

[analyst@secOps lab.support.files]$ cat sample.img_SHA256.sig

c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a

b. Utilisez la commande SHA256sum pour calculer le hash SHA-2-256 du fichier sample.img :

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 12 sur 13 www.netacad.com
Travaux Pratiques -

[analyst@secOps lab.support.files]$ sha256sum sample.img

c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a sample.img

Question :

Le sample.img a-t-il été téléchargé sans erreurs? Expliquez votre réponse.

-----------------------------------------------------------------------------------------------------------------
Oui, le fichier-----------------------------------------------------------------------------------------------------------------
`sample.img` a été téléchargé sans erreurs, car le hash SHA-2-256 calculé avec `sha256sum` correspond
exactement à celui du fichier `sample.img_SHA256.sig`. Cela indique que l'intégrité du fichier a été préservée.

Remarque: Si la comparaison des hachages est une méthode relativement efficace pour détecter les
erreurs de transmission, il existe de meilleurs moyens de s'assurer que le fichier n'a pas été altéré. Des
outils tels que gpg, offrent des fonctionnalités bien plus efficaces pour s'assurer que le fichier téléchargé
n'a pas été modifié par des tiers et qu'il s'agit bien du fichier que l'éditeur souhaitait publier.

 2017 - aa Cisco et/ou ses filiales. Tous droits réservés. Document public de Cisco Page 13 sur 13 www.netacad.com

Vous aimerez peut-être aussi