ISTIC LIRS 20223
TP2 : Chiffrement et signature numériques
Objectif:
- Travailler avec OPENSSL
- Maitriser les concepts de chiffrement symétrique
- Maitriser les concepts de chiffrement asymétrique
- Maitriser les concepts de signature numérique
INSTALLATION :
Installer Win64OpenSSLLight1.0.exe
Accéder au répertoire bin de l’exécution à travers l’invité des commandes windows et exécuter la commande openssl
CHIFFREMENT SYMÉTRIQUE
La commande qui vous permet d’utiliser le chiffrement symétrique est la commande enc (en tapant enc –help vous aurez toutes les
options associées)
Question 1 :
Soit un fichier donné entree.txt (qui contient le texte suivant : Bonjour nous sommes les étudiants de la LART3 nous étudions de la
sécurité réseau).
Ecrire la commande qui permet de le chiffrer et produit ainsi un fichier sortie.enc en utilisant l’algorithme des3
On peut alors vérifier que le message sortie.enc est bien chiffré.
On peut alors vérifier que le message ainsi déchiffré est bien identique à entree.txt.
Refaire le même travail avec l’algorithme DES
CHIFFREMENT ASYMÉTRIQUE
Génération de clé privée/publique RSA :
Le format de sortie par défaut est du PEM (PrivacyEnhanced Mail).
A l’aide de l’option –outform ou -inform on peut changer le format. Deux formats sont supportés par cette option PEM et DER.
Pour créer la clé privée/publique, vous pouvez taper la commande suivante :
OpenSSL>genrsa -out key 1024
.
Pour la vérification des clés privée/publique RSA et les visualiser vous pouvez taper :
OpenSSL>rsa -in key
Génération de la clé publique RSA :
OpenSSL>rsa -in key -pubout -out pubkey
Pubkey est un fichier qui va contenir la clé publique. Il a été créé à partir du
fichier key qui contient les clés privée/publique.
NB : Lorsque vous manipuler la clé publique, utiliser toujours l’option -pubin
1
ISTIC LIRS 20223
Vérification de la clé publique RSA :
OpenSSL>rsa -pubin -in pubkey –text
CHIFFREMENT/DÉCHIFFREMENT DE DONNÉES AVEC RSA
On peut chiffrer des données avec une clé publique RSA. Pour cela on utilise la commande rsautl
Openssl> rsautl -encrypt -in fichier_entrée –pubin -inkey clépublique
-out fichier_sortie
Pour déchiffrer, on remplace l'option -encrypt par -decrypt. Le fichier contenant la clé doit obligatoirement contenir la partie privée.
1 SIGNATURE DE FICHIERS
Il n'est possible de signer que de petits documents. Pour signer un gros document on calcule d'abord une empreinte de ce document.
La commande dgst permet de le faire.
Openssl> dgst -fonctionhachage -out fichierempreinte fichier_entrée
où fonction hachage est une fonction de hachage.
Avec openssl, plusieurs fonctions de hachage sont proposées dont
MD5 (option -md5), qui calcule des empreintes de 128 bits,
SHA1 (option -sha1), qui calcule des empreintes de 160 bits,
RIPEMD160 (option -ripemd160), qui calcule des empreintes de 160 bits.
Signer un document revient à signer son empreinte. Pour cela, on utilise l'option -sign de la commande rsautl
Openssl> rsautl -sign -in fichierempreinte -inkey cléprivée -out fichiersignature
pour vérifier la signature
openssl> rsautl -verify -in fichiersignature –pubin -inkey clepublique
-out fichierempreinte2
Il reste ensuite à vérifier que l'empreinte ainsi produite est la même que celle que l'on peut calculer avec.