TP 3 Utilisation d'OpenSSL-Sana MANSSOURI
TP 3 Utilisation d'OpenSSL-Sana MANSSOURI
TP 3 Utilisation d'OpenSSL-Sana MANSSOURI
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 :
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 :
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 -
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 :
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 -
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 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.
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 :
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 -
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 -
PASSWORD FOUND!!!!: pw == B
Remarque: La longueur de mot de passe aurait pu être définie sur moins de 1 à 4 caractères
Question :
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 :
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*~
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 :
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
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.
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
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 !
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é.
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.
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.
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:
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 -
43302c4500b7c4b8e574ba27a59d83267812493c029fd054c9242f3ac73100bc
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).
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a
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 -
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a sample.img
Question :
-----------------------------------------------------------------------------------------------------------------
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