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

TP1-Sécurité Des Données

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

Cycle Ingénieur

TP N° 1: Usages de base d’openSSL

1. Protocole SSL
Le protocole SSL est entre la couche transport et une application utilisant TCP. Le principe général d’un protocole
de type SSL est qu’il se passe en deux temps :
1. Une poignée de mains : c’est une étape durant laquelle le client et le serveur s’identifient, se mettent
d’accord sur le type du système de chiffrement et les clefs qui seront utilisées lors du reste de la
communication.
2. La phase de communication : les données sont alors échangées en format compressées, chiffrées et signées.
2. OpenSSL
La bibliothèque OpenSSL est une implantation libre des protocoles SSL et TLS qui donne accès à :
 une bibliothèque de fonctionnalité écrite en C permettant de réaliser des applications client/serveur sécurisées
s’appuyant sur SSL/TLS,
 un ensemble d’exécutables en commande en ligne permettant :
 la forge de clef RSA, DSA (pour la signature)
 la création de certificat X509 (identification)
 le calcul d’empreinte (MD5, SHA, ...)
 le chiffrement et le déchiffrement (RSA, DES, IDEA, RC2, RC4, Blowfish, ...)
 la réalisation de tests des clients et serveurs SSL/TLS
 la signature et le chiffrement de courriers (S/MIME).
A tout instant vous pouvez avoir une vue sur l’ensemble des fonctionnalités d’OpenSSL à l’aide des pages de
manuel man openssl ou openssl –help
Afin d’afficher l’aide d’une commande particulière, on fait appel à :
man openssl <commande> ou openssl –help <commande>
La syntaxe générale pour l’utilisation en mode shell des fonctionnalités OpenSSL est la suivante :
openssl <commande> <options> <arguments>

3. Génération d’une chaine aléatoire


Pour générer un nombre aléatoire de taille nombre bits (utiliser l’option -base 64 pour la lisibilité).
Structure de la commande
openssl rand –base64 (ou –hex) <nombre_bits> :
Exemple 1: Génération d’une chaine non lisible de taille 128 bits : openssl rand 128
Exemple 2: Génération d’une chaine codée en Base64 : openssl rand -base64 128
Exemple 3: Génération d’une chaine codée en hexadécimal : openssl rand -hex 32
Le résultat de ces trois manœuvres est le suivant :

KARTIT Ali : Docteur en Sécurité des réseaux informatiques 2022/2023


4. Codage/Décodage d’un fichier texte
Pour le codage de clair.txt dans un fichier code.enc avec l’algorithme spécifié :
Structure de codage
openssl enc <-algo> -in <clair.txt> -out <code.enc>
Structure de décodage
openssl enc <-algo> -d -in <code.enc> -out <clair.txt>
Exemple : Encodage/décodage d’un fichier texte en base 64
Encodage
openssl enc -a -in textfilekartit.txt -out textfilekartitencoded.enc
Décodage
openssl enc -a -d -in textfilekartitencoded.enc -out textfilekartitdecoded.txt

5. Chiffrement symétrique
Pour le chiffrement de clairkartit.txt dans un fichier chiffrékartit.enc avec l’algorithme spécifié :
Structure de chiffrement
openssl enc <-algo> -e –k text_or_file_key -in <clairkartit.txt> -out <chiffrékartit.enc>
Structure de déchiffrement
openssl enc <-algo> -d - k text_or_file_key -in <chiffrékartit.enc> -out <clairkartit.txt>
Structure de chiffrement spéciale AES
openssl aes-256-ecb -e –k text_or_file_key -in <clairkartit.txt> -out <chiffrékartit.enc>
Structure de déchiffrement spéciale AES
openssl aes-256-ecb -d - k text_or_file_key -in <chiffrékartit.enc> -out <clairkartit.txt>
Liste des algorithmes
openssl enc –list
Exemple 1 : Chiffrement/déchiffrement d’un fichier texte avec clé textuelle DES
Chiffrement
openssl enc -des3 -e -k admin123 -in clairkartit.txt -out chiffrékartit.enc
Si on voulait que le chiffré soit lisible, on ajoute l’option -a
openssl enc -des3 –e -a -k admin123 -in clairkartit.txt -out chiffrékartit_lisible.enc

KARTIT Ali : Docteur en Sécurité des réseaux informatiques 2022/2023


Déchiffrement
openssl enc -des3 -d -k admin123 -in chiffrékartit.enc -out chiffrékartitdecrypted.txt
Ou
openssl enc -des3 -d –a -k admin123 -in chiffrékartit.enc -out chiffrékartitdecrypted.txt

Si la clé est erronée lors du déchiffrement, le résultat sera différent de l’origine


openssl enc -des3 -d -k admin124 -in chiffrékartit.enc -out chiffrékartitdecrypted1.txt
Exemple 2 : Chiffrement/déchiffrement d’un fichier texte avec clé fichier AES
Chiffrement
openssl aes-256-ecb -e -k session.key -in textfilekartit1.txt -out textfilekartit1crypted.enc
Si on voulait que le chiffré soit lisible, on ajoute l’option -a
openssl aes-256-ecb -e –a -k session.key -in textfilekartit1.txt -out textfilekartit1crypted_lisible.enc

Déchiffrement
openssl aes-256-ecb -d -k session.key -in textfilekartit1crypted.enc -out textfilekartit1decrypted.txt

KARTIT Ali : Docteur en Sécurité des réseaux informatiques 2022/2023


Si la clé est erronée lors du déchiffrement, le résultat sera différent de l’origine
openssl aes-256-ecb -d -k session1.key -in textfilekartit1crypted.enc -out textfilekartit2decrypted.txt

TAF-1: Travaillez en binôme afin d’implémenter l’infrastructure suivante, l’algorithme à utiliser


est :AES256 et la chaine générée est en base64.

Etapes d’authentification réciproque:

1. L’émetteur et récepteur génèrent des chaines aléatoires Ra et Rb


2. L’émetteur et récepteur échangent leurs chaines aléatoires
3. L’émetteur crée la clé secrète
4. L’émetteur crypte la chaine Rb et l’envoie au récepteur
5. Le récepteur crypte la chaine Ra et l’envoie à l’émetteur
6. L’émetteur compare Dk(Ek(Ra)) avec Ra
7. Le récepteur compare Dk(Ek(Rb)) avec Rb

TAF-2 : Une fois l’authentification effectuée, échangez un message confidentiel. Le message peut être
un fichier PDF, Txt…

Etapes de confidentialité du message :

1. L’émetteur crée la clé secrète


2. L’émetteur crypte le message
3. L’émetteur envoie la clé
4. L’émetteur envoie le message crypté
5. Le récepteur récupère la clé et décrypte le message

KARTIT Ali : Docteur en Sécurité des réseaux informatiques 2022/2023

Vous aimerez peut-être aussi