Atelier 2 Sécurité

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

Atelier 

Sécurité des Réseaux         RSI3   
 
 

Atelier 2 : Opérations Cryptographiques avec OpenSSL

Objectifs :
Se familiariser avec les concepts de la sécurité informatique en général et les mécanismes cryptographiques en
particulier en utilisant une librairie (OpenSSL) permettant de réaliser les principales opérations
cryptographiques (chiffrement, déchiffrement).

Concepts
SSL (Secure Sockets Layer) a été à l'origine développé par Netscape. SSL sert de support :
◦ à SSH pour donner un Telnet sécurisé et faire des tunnels cryptés simplement
◦ à HTTP pour sécuriser les sites de Web marchands
◦ à POP ou IMAP pour sécuriser la récupération de mail

Une session SSL se déroule en deux temps :


• une phase de poignée de mains (handshake) durant laquelle le client et le serveur s’identifient, et
conviennent du système de chiffrement et d’une clé qu’ils utiliseront par la suite.
• la phase de communication proprement dite durant laquelle les données échangées sont
compressées, chiffrées et signées.
L’identification durant la poignée de mains est assurée à l’aide de certificats X509.

SSL a trois buts :


− confidentialité des échanges grâce au cryptage symétrique
− intégrité des données grâce à la fonction de hachage
− authentification des entités communicantes grâce aux certificats

OpenSSL est une version libre du protocole SSL (Secure Sockets Layer version 1 et 2) et TLS (Transport Layer
Security = SSL version 3). Il permet de crypter toutes les données échangées entre le client et le serveur de façon à ce
que seul le serveur puisse décrypter ce qui vient du client et inversement. Un éventuel pirate ne peut pas, dans un
temps raisonnable, décrypter les informations.
OpenSSL est une boîte à outils cryptographiques implémentant les protocoles SSL et TLS qui offre :

 
Z.Bouziri I.Kechiche       10   
                                                                        
Atelier Sécurité des Réseaux         RSI3   
 
 
1. Une bibliothèque de programmation en C permettant de réaliser des applications client/serveur
sécurisées s’appuyant sur SSL/TLS.
2. Une commande en ligne (OpenSSL) permettant :
– la création de clés RSA, DSA.
– la création de certificats X509
– le calcul d’empreintes (MD5, SHA, RIPEMD160, ...)
– le chiffrement et déchiffrement (RSA, DES, IDEA, RC2, RC4, Blowfish, ...)
– la réalisation de tests de clients et serveurs SSL/TLS
– la signature et le chiffrement de courriers (S/MIME)

Etude Pratique:
Partie A : Chiffrement par substitution et par transposition
1. Par le langage que vous souhaiter, implémenter les mécanismes de chiffrement par substitution et
par transposition.
Partie B : Chiffrement symétrique avec OpenSSL

Tache 1: la commande « enc » permet d’effectuer un chiffrement symétrique.


− visualiser les différentes options de cette commande.
− Que représentent ces options ?
− Quelle est la commande permettant d’effectuer un déchiffrement symétrique.
Tache2 : Chiffrement avec mot de passe
• Utiliser la commande « enc » pour chiffrer un fichier « test.txt » et placer le résultat dans un
fichier « test.chiffre » :
$ openssl enc « algo symétrique » -in « fichier d’origine » -out « fichier crypté » -k « cle
de chiffrement »

• Déchiffrer le même message, avec la commande. Placer le résultat dans un fichier nommé
« test.dechiffre » :
$openssl enc « algo symétrique » -d -in « fichier crypté »-out « fichier décrypté » -k « cle de
chiffrement »

• Vérifier de deux manières que le contenu du fichier décrypté est identique avec le message
d’origine :

Méthode1 : manuellement en visualisant le contenu des fichiers.


 
Z.Bouziri I.Kechiche       11   
                                                                        
Atelier Sécurité des Réseaux         RSI3   
 
 
Méthode2 : avec la commande « diff »
$ diff «fichier d’origine » « fichier décrypté »

• Comparez les tailles des fichiers clairs et chiffrés. Donnez une explication sur la différence de ces
tailles.
Tentez de déchiffrer un fichier crypté en utilisant un mauvais mot de passe. Comment réagit OpenSSL ?

Partie B : Chiffrement asymétrique avec OpenSSL

Tache 1 : Génération d’une paire de clé


1. Quelles sont les différentes extensions possibles pour les clés asymétriques ?
2. Utiliser la commande « genrsa » pour générer une paire de clés RSA
$ openssl genrsa –out <clé> <taille en bit>

3. Visualiser le contenu du fichier par la commande qui suit et expliquer le rôle de chaque option.
$ openssl rsa –in <clé> –text –noout

4. Est-il judicieux de laisser une clé privée en claire ? Que faut-il faire ?
5. Avec la commande « rsa », il est possible de chiffrer une clé privée. Pour cela trois options sont
possibles qui précisent l’algorithme de chiffrement symétrique à utiliser : -des, -des3 et -idea
Utiliser la commande suivante pour chiffrer la clé privée :
$ openssl rsa –in « clé privée » –« algo symétrique » –out « clé privée »

Tache 2 : Extraction de la clé publique


La partie publique d’une paire de clé peut être communiquée à n’importe qui. La clé générée contient la partie privée,
et ne peut donc pas être communiquée tel quelle. L’extraction de la partie publique est donnée par la commande :

$ openssl rsa –in « clé privée » -pubout –out « clé publique »

• Extraire la partie publique dans le fichier publickey.pem ou publickey.key.

Tache 3 : Chiffrement et déchiffrement de données


On peut chiffrer /déchiffrer les données avec les clés RSA :

$ openssl rsautl -encrypt –in « fichier d’origine » -inkey « clé de cryptage » –out « fichier crypté »

$ openssl rsautl -decrypt –in « fichier crypté » -inkey « clé de décryptage » –out « fichier décrypté »

Attention :

 
Z.Bouziri I.Kechiche       12   
                                                                        
Atelier Sécurité des Réseaux         RSI3   
 
 
Le fichier des données à chiffrer ne doit pas avoir une taille excessive (ne doit pas dépasser 116 octets pour
une clé de 1024 bits.
L’option « –pubin » est à ne pas oublier si on utilise la clé publique pour chiffrer

1. Créer un fichier texte « fichier.txt » contenant un message de votre choix.


2. Utiliser RSA pour transférer ce fichier entre deux utilisateurs A et B sur deux machine distincts.
Chaque utilisateur va envoyer sa clé publique par la commande scp

 
Z.Bouziri I.Kechiche       13   
                                                                        

Vous aimerez peut-être aussi