Atelier 2 Sécurité
Atelier 2 Sécurité
Atelier 2 Sécurité
Sécurité des Réseaux RSI3
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
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
• 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 :
• 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 ?
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 »
$ 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
Z.Bouziri I.Kechiche 13