Activité 4.2 : TP OpenSSL ; usages de base
Ce TP permet de se familiariser avec les usages de base de la bibliothèque OpenSSL, un outil essentiel pour la sécurité des communications informatiques. Vous apprendrez à générer des clés, chiffrer et déchiffrer des fichiers, signer et vérifier des signatures, ainsi qu’à calculer des empreintes (hachages).
D'après le document Activité 4.2 : TP OpenSSL ; usages de base
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Cryptography and Secure Communication · PDF · 3 pages
Afficher l'aperçu du document
Ce TP permet de se familiariser avec les usages de base de la bibliothèque OpenSSL, un outil essentiel pour la sécurité des communications informatiques. Vous apprendrez à générer des clés, chiffrer et déchiffrer des fichiers, signer et vérifier des signatures, ainsi qu’à calculer des empreintes (hachages). Pour réaliser ce TP, il vous faudra télécharger OpenSSL et disposer d’un environnement Windows ou Linux avec un terminal ou shell.
Objectifs
- Générer des clés RSA et manipuler les clés publiques et privées.
- Chiffrer et déchiffrer des fichiers avec des algorithmes symétriques et asymétriques.
- Signer des fichiers et vérifier les signatures.
- Calculer et comparer des empreintes (hachages) de fichiers.
- Utiliser les commandes OpenSSL en ligne de commande.
Prérequis et installation
- Connaissances de base en cryptographie (chiffrement symétrique et asymétrique, signatures, hachage).
- Un système d’exploitation Windows ou Linux avec accès à un terminal.
- Télécharger OpenSSL depuis https://indy.fulgan.com/SSL/.
- Extraire l’archive téléchargée et lancer l’exécutable
openssl.exe(Windows) ou utiliser la commandeopenssl(Linux). - Un éditeur de texte pour créer et modifier des fichiers texte.
Présentation d’OpenSSL et protocole SSL/TLS
OpenSSL est une bibliothèque libre implémentant les protocoles SSL (Secure Socket Layer) et TLS (Transport Layer Security), qui assurent la communication sécurisée entre clients et serveurs sur TCP/IP. Le protocole SSL fonctionne en deux phases :
- La poignée de mains : identification mutuelle, négociation des algorithmes de chiffrement et échange des clés.
- La phase de communication : échange des données chiffrées, compressées et signées.
OpenSSL fournit une bibliothèque C pour développer des applications sécurisées, ainsi qu’un ensemble d’outils en ligne de commande pour manipuler clés, certificats, chiffrement, signatures, hachages, etc.
Étape 1 : Chiffrement symétrique avec DES
Dans cette première étape, vous créez un fichier texte simple, puis vous le chiffrez avec l’algorithme symétrique DES. Ensuite, vous déchiffrez ce fichier pour vérifier que le contenu est bien identique à l’original.
Procédure :
- Créer un fichier texte
c:\f1.txtcontenant un paragraphe quelconque. - Chiffrer ce fichier avec DES en utilisant la commande :
openssl enc -des -in c:\f1.txt -out c:\SSYMETRIQUE\f1chiffré
Cette commande chiffre le fichier f1.txt et produit un fichier chiffré nommé f1chiffré dans le dossier SSYMETRIQUE.
- Déchiffrer le fichier chiffré pour obtenir
f1déchiffré:
openssl enc -des -d -in c:\SSYMETRIQUE\f1chiffré -out c:\SSYMETRIQUE\f1déchiffré
Le fichier f1déchiffré doit être strictement identique à f1.txt.
Étape 2 : Génération et utilisation de clés RSA
Vous allez générer une paire de clés RSA 512 bits, puis utiliser ces clés pour chiffrer, signer et vérifier des fichiers.
Procédure :
- Générer une clé privée RSA 512 bits :
openssl genrsa -out rsa.priv 512
Cette commande crée la clé privée dans le fichier rsa.priv.
- Extraire la clé publique correspondante :
openssl rsa -in rsa.priv -pubout -out rsa.pub
La clé publique est stockée dans rsa.pub.
- Déposer la clé publique dans le dossier
NOSCLESPUBLIQUESsous la formeCPNomPrenomsur la plateforme. - Chiffrer un petit fichier texte avec la clé publique :
openssl rsautl -encrypt -inkey rsa.pub -pubin -in fichier.txt -out fNomPrénomchiffré
Le fichier chiffré fNomPrénomchiffré doit être déposé sur l’espace de dépôt.
- Signer ce même fichier avec la clé privée :
openssl rsautl -sign -inkey rsa.priv -in fichier.txt -out fNomPrénomsigné
Le fichier signé fNomPrénomsigné est à déposer pour vérification.
- Calculer le hachage MD5 du fichier initial :
openssl dgst -md5 -out h1md5 fichier.txt
Modifier ensuite le fichier initial (par exemple en changeant un caractère) et recalculer le hachage :
openssl dgst -md5 -out h2md5 fichier.txt
Les fichiers h1md5 et h2md5 doivent être différents, montrant que le hachage change si le fichier est modifié.
- Signer un fichier volumineux (par exemple ce TP) :
openssl rsautl -sign -inkey rsa.priv -in TP.txt -out fTPsigné
Déposer le fichier signé fTPsigné pour vérification.
Résultats attendus
- Le fichier déchiffré
f1déchiffréest identique au fichier originalf1.txt. - La clé publique est correctement extraite et déposée dans
NOSCLESPUBLIQUES. - Le fichier chiffré RSA
fNomPrénomchiffréest généré et déposé. - La signature
fNomPrénomsignéest créée et déposée. - Les fichiers de hachage
h1md5eth2md5sont différents après modification du fichier initial. - Le fichier volumineux signé
fTPsignéest produit et déposé. - Un compte rendu contenant les commandes utilisées et vos commentaires est remis.
Pièges courants
- Ne pas respecter les noms exacts des fichiers et dossiers demandés (ex.
f1chiffré,fNomPrénomchiffré). - Oublier d’utiliser l’option
-pubinlors du chiffrement avec la clé publique. - Confondre chiffrement symétrique (DES) et asymétrique (RSA) dans les commandes.
- Ne pas vérifier que le fichier déchiffré est identique à l’original (vérification essentielle).
- Modifier le fichier après calcul du premier hachage sans recalculer le second.
- Ne pas déposer les fichiers dans les bons dossiers ou sous les bons noms sur la plateforme.
- Oublier de signer le fichier volumineux ou de déposer le compte rendu.
Commentaires
Aucun commentaire pour le moment. Posez la première question.