INSTITUT UNIVERSITAIRE DES SCIENCES 1 UNIVERSITY INSTITUTE OF SCIENCE AND
ET TECHNIQUES DE YAOUNDE TECHNOLOGY OF YAOUNDE
INSTITUT SUPERIEUR DES SCIENCES ET HIGHER INSTITUTE OF SCIENCE AND
DES TECHNIQUES DE YAOUNDE TECHNOLOGY OF YAOUNDE
ANNEE ACADEMIQUE 2022-2023 ACADEMIC YEAR 2022-2023
TP1 OpenSSL
Objectif : Acquérir une compréhension pratique approfondie des fonctionnalités d'OpenSSL en utilisant des
commandes spécifiques.
Matériel requis :
- Un ordinateur avec un système d'exploitation compatible avec OpenSSL (par exemple, Linux ou Windows avec
Cygwin).
Installation de openssl
L'installation d'OpenSSL peut varier en fonction du système d'exploitation que vous utilisez. Voici les instructions
générales pour quelques plateformes courantes :
1. Linux (Ubuntu, Debian, CentOS, etc.) :
- Ouvrez un terminal.
- Exécutez la commande suivante pour installer OpenSSL :
sudo apt-get install openssl
2. macOS :
- Ouvrez un terminal.
- Pour installer OpenSSL via Homebrew, exécutez la commande suivante :
brew install openssl
3. Windows :
- Il existe plusieurs options pour installer OpenSSL sur Windows. L'une des options les plus populaires est d'utiliser
un package binaire précompilé tel que "Win32 OpenSSL" ou "OpenSSL for Windows" disponible sur le site
[Link]
- Téléchargez le package binaire correspondant à votre version de Windows (32 bits ou 64 bits).
- Exécutez le fichier d'installation téléchargé et suivez les instructions à l'écran pour installer OpenSSL.
Après avoir installé OpenSSL, vous pouvez vérifier si l'installation s'est déroulée correctement en ouvrant un terminal
et en exécutant la commande suivante :
openssl version
Cela affichera la version d'OpenSSL installée sur votre système, ce qui confirme que l'installation a réussi.
- OpenSSL préalablement installé sur votre système.
1
2
Exercice 1 : Génération de clés et de certificats
1. Génération d'une clé privée RSA :
openssl genpkey -algorithm RSA -out [Link]
2. Affichage de la clé privée
openssl pkey -in [Link] -text
3. Génération d'une clé publique à partir de la clé privée :
openssl rsa -in [Link] -pubout -out [Link]
4. Création d'une demande de certificat (CSR) à partir de la clé privée :
openssl req -new -key [Link] -out [Link]
5. Génération d'un certificat auto-signé à partir de la clé privée et du CSR :
openssl x509 -req -in [Link] -signkey [Link] -out [Link]
6. Affichage des informations du certificat :
openssl x509 -in [Link] -text
Exercice 2 : Chiffrement et déchiffrement de fichiers
1. Création d'un fichier texte contenant un message à chiffrer (par exemple, [Link]).
2. Chiffrement du fichier à l'aide de l'algorithme AES-256-CBC en utilisant une clé secrète :
openssl enc -aes-256-cbc -salt -in [Link] -out [Link] -k secretpassword
3. Déchiffrement du fichier chiffré pour récupérer le message original :
openssl enc -d -aes-256-cbc -in [Link] -out [Link] -k secretpassword
Exercice 3 : Signature numérique
1. Création d'une paire de clés privée/publique supplémentaire pour la signature :
openssl genpkey -algorithm RSA -out signing_private.key
openssl rsa -in signing_private.key -pubout -out signing_public.key
2. Signature numérique d'un fichier à l'aide de la clé privée :
openssl dgst -sha256 -sign signing_private.key -out [Link] [Link]
3. Vérification de la signature à l'aide de la clé publique correspondante
openssl dgst -sha256 -verify signing_public.key -signature [Link] [Link]
Exercice 4 : Communication sécurisée avec SSL/TLS
1. Création d'un certificat auto-signé pour un serveur :
openssl req -newkey rsa:2048 -nodes -keyout [Link] -x509 -days 365 -out [Link]
2. Configuration d'un serveur Web local (par exemple, Apache) pour utiliser le certificat et HTTPS.
2
3
3. Accès au serveur via un navigateur Web et vérification que la connexion est sécurisée.
Exercice 5 : Utilisation d'OpenSSL en ligne de commande
1. Conversion d'un format de clé vers un autre (par exemple, PEM vers DER) :
openssl rsa -in [Link] -outform DER -out [Link]
2. Calcul d'un hachage (par exemple, SHA-256) d'un fichier :
openssl dgst -sha256 [Link]
3. Génération d'un nombre aléatoire cryptographiquement sûr :
openssl rand -hex 16