Module : Sécurité
Sujet : Open SSL
Réalisé par :
Chef de groupe : Bekkouche Selma (G07)
Abderrahmane Zineb (G07)
Lanasri D...
2
Sommaire
Introduction .....................................................................................................
3
Introduction
De nos jours, la communication sur un milieu précaire est une applicabilité
omniprésente. Nous sommes nombr...
4
I. Protocole SSL
SSL « Couche socket sécurisée » est un acronyme pour Secure Socket Layer.
C’est un protocole ou un ense...
5
- Authentification mutuelle
- Négociation des algorithmes de chiffrement et de hachage
- Échange des clés symétriques
 ...
6
 Bibliothèque cryptographique
 Cryptographie clé publique et certificats X509: RSA, DSA, DH
 Chiffrement: DES, 3DES, ...
7
3. Chiffrement symétrique de la paire des clés
Afin de renforcer la sécurité et ne pas stocker dans son pc une clé privé...
8
Signer le document
openssl rsautl -sign -in fE -inkey Clepriv.pem -out signature
Fe: petit fichier ou une empreint
IV. D...
9
L'option passin et passout : C'est pour protéger les fichiers, pass:xxxx permet de faire une
protection par mots de pass...
10
2. Déchiffrement du message "message.crypt"
Déchiffrement de la "clé partagée" (secret)
...Destinataire> openssl rsautl...
Prochain SlideShare
Chargement dans…5
×

Rapport sécurité

348 vues

Publié le

Nous présentons Open SSL pour la sécurité.

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
348
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport sécurité

  1. 1. Module : Sécurité Sujet : Open SSL Réalisé par : Chef de groupe : Bekkouche Selma (G07) Abderrahmane Zineb (G07) Lanasri Dihia (G07) Mallem Saliha (G07) Proposé par : Mr.Anane 2012/2013
  2. 2. 2 Sommaire Introduction ................................................................................................................................ 3 I. Protocole SSL ..................................................................................................................... 4 1. Principe de fonctionnement............................................................................................................. 4 1.1. Une poignée de mains .................................................................................................................. 4 1.2. La phase de communication......................................................................................................... 4 2. Les sous protocoles composants SSL.............................................................................................. 4 3. Protocole TLS.................................................................................................................................. 5 II. L’open SSL ..................................................................................................................... 5 III. Open SSL & Chiffrement................................................................................................ 6 1. Chiffrement Symétrique.................................................................................................................. 6 1.1. AES : Chiffrer un fichier texte avec le système AES 128 bits en mode CBC : ....................... 6 2. Chiffrement Asymétrique................................................................................................................ 6 2.1. RSA.............................................................................................................................................. 6 3. Principe de Signature....................................................................................................................... 7 Signer le document.......................................................................................................................... 8 IV. Démonstration ................................................................................................................. 8 1. Emetteur ......................................................................................................................................... 8 2. Récepteur........................................................................................................................................ 9 Conclusion................................................................................................................................ 10 Références ................................................................................................................................ 10
  3. 3. 3 Introduction De nos jours, la communication sur un milieu précaire est une applicabilité omniprésente. Nous sommes nombreux à croire qu’il est possible d'intercepter et de modifier des données transmises sur des fils, mais peu d’entre nous se rendent compte combien cette tâche est devenu maintenant facile. C’est pour cela l'internet était toujours un endroit dangereux, plus dangereux que l’on pense. Si une application ne protège pas correctement les données avant de les envoyer dans le réseau. Cette application est un désastre en matière de sécurité. La cryptographie avec ses divers buts (la confidentialité, l'intégrité, l'authentification et la non-répudiation…) est l'un des principaux outils utilisés pour contrecarrer les nombreux types d’attaques sur le réseau, et c’est l’objectif fondamental du protocole SSL (Secure Socket Layer) et son successeur TLS (Transport Layer Security) qui sont implémente par OpenSSL. Nous allons présenter dans ce rapport le principe de fonctionnement de l’OpenSSL ainsi que les différents méthodes de chiffrements, pour finir avec une démonstration qui rendre la compréhension de ce concept plus simple.
  4. 4. 4 I. Protocole SSL SSL « Couche socket sécurisée » est un acronyme pour Secure Socket Layer. C’est un protocole ou un ensemble de protocoles développé par la société Netscape communication corporation pour offrir un certain niveau de sécurité et de confidentialité lors de la communication en mode Client / Serveur via l’internet ,pour les applications réseau utilisant le protocole TCP /IP. Le protocole SSL est intercalé entre la couche TCP /IP et les applications utilisant le protocole TCP.  Il a été intégré dans les navigateurs web depuis 1994.  La version 3.1 a été standardisée à l'IETF dans la RFC 2246. 1. Principe de fonctionnement Le protocole SSL prend en charge l'authentification du client et du serveur et assure la sécurité et l'intégrité du canal de transmission. Une session SSL se déroule en deux phases : 1.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és lors du reste de la communication. L’identification durant cette phase est assurée à l’aide de certificat X509. On peut résumer cette étape comme suit : Etape 1: authentification du serveur - Requête client - Le serveur envoie son certificat et une liste d'algorithmes de cryptographie à négocier - Le client vérifie le certificat du serveur à l'aide de la clé publique contenu dans le navigateur - Le client génère un pré-master secret (PMS) (48 octets) qui sera utilisé pour générer le master-key (48 octets). - PMS est chiffré avec la clé publique du serveur. - Les données échangées entre le client et le serveur seront chiffrées et authentifiées avec des clés dérivées du master-secret Etape 2: authentification du client - Le serveur peut demander au client de s'authentifier en lui demandant son certificat - Le client répond en envoyant son certificat puis en signant un message avec sa clé privée (contient des informations sur la session et le contenu des messages précédents) 1.2. La phase de communication Les données sont alors échangées en format compressées, chiffrées et signées. 2. Les sous protocoles composants SSL  Handshake
  5. 5. 5 - Authentification mutuelle - Négociation des algorithmes de chiffrement et de hachage - Échange des clés symétriques  Change Cipher Spec - Indique la mise en place des algorithmes de chiffrement négociés  Record  Garantir la confidentialité à l'aide du chiffrement, et L'authentification à l’aide de condensât  Alert - Émission de messages d’alertes suites aux erreurs que peuvent s'envoyer le client et le serveur 3. Protocole TLS TLS (Transport Layer Security) est une évolution de SSL réalisé par l’IETF. Ce protocole sert de base à HTTPS. Il est fondé sur le protocole SSL version3.1 et fournit la confidentialité des communications sur Internet. Figure 1 : Le protocole SSL/TLS II. L’open SSL OpenSSL est une boîte à outils cryptographiques implémentant librement les protocoles SSL et TLS qui Offre : 1. une bibliothèque de programmation et de fonctionnalités écrites en C permettant de réaliser des applications client/serveur sécurisées s’appuyant sur SSL/TLS. Elle est vue comme :  Bibliothèque SSL/TLS (libssl.a)  Mise en œuvre des protocoles SSLv2, SSLv3, TLSv1
  6. 6. 6  Bibliothèque cryptographique  Cryptographie clé publique et certificats X509: RSA, DSA, DH  Chiffrement: DES, 3DES, Blowfish, RC2, IDEA, RC4, + modes ECB, CBC,CFB, OFb pour les algorithmes par blocs  Hachage: MD2, MD4, MD5, SHA1, MDC2, RIPEMD160 2. Un ensemble exécutable de commandes en ligne (OpenSSL) permettant :  la création de clés RSA, DSA (signature)  la création de certificats X509 (identification)  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) L’openSSL comporte 60000 lignes de codes en langage C. Elle est fondée sur la bibliothèque cryptographique SSLeay d'Eric Toung et Tim Hudson. L’utilisation des commandes d’OpenSSL La syntaxe générale pour l’utilisation des fonctionnalités de la bibliothèque Open SSL en mode Shell Linux est la suivante : $ openssl <commande> <options> Le $ représente le prompt du Shell III. Open SSL & Chiffrement Cette bibliothèque nous permet tout simplement d’implémenter et d’utiliser les algorithmes de chiffrements qu’on a vu en cours qu’ils soient Symétriques comme CBC, ECB, CFB ou bien asymétrique comme le RSA. 1. Chiffrement Symétrique 1.1. AES : Chiffrer un fichier texte avec le système AES 128 bits en mode CBC : $openssl enc –aes-128-cbc –in nomficherAchiffrer –out nomChiffré –iv vecteurInitialisation(en hexa 64 bits) –K cle(hexa 128 bit) $openssl enc –aes-128-cbc –d –in nomChiffré –out nomficherDechiffré Afin d’éviter la manipulation des chiffres hexadécimaux il suffit d’introduire un mot de passe « c’est plus pratique » à partir duquel la paire des clés est générée 2. Chiffrement Asymétrique 2.1. RSA On suit les mêmes étapes vues en cours, mais sans faire aucun calcul, ce sont les commandes Open SSL qui vont le faire. 1. Générer paire RSA $openssl gensra –out fichierResultat tailleDeChaqueCle 2. Visualiser le contenu du fichier Openssl rsa –in nomFichier –text –noout
  7. 7. 7 3. Chiffrement symétrique de la paire des clés Afin de renforcer la sécurité et ne pas stocker dans son pc une clé privée non protégée POLICE 11 12 $openssl rsa –in fichiercle –des -out fichierDes 4. Exporter la partie publique Publication de la clé publique, cependant le fichier précédant (chiffré) contient la paire des clés, ce qui nécessite une séparation entre les deux ; pour exporter la clé publique : $openssl rsa –in fichierDes –pubout –out Clepub Il va toujours demander le mot de passe du chiffrement DES 5. Visualiser le contenu $openssl rsa –in Clepub –pubin(pour indiquer qu’une seule cle est dans le fichier et c la publique) –text -noout 6. Chiffrer donnes Openssl rsautl encrypt –pubin Clepub –in fichierAchiffrer –out chiffré 7. Déchiffrer Openssl rsautl decrypt –inkey fichierDes –in chiffré –out fichierlisible 3. Principe de Signature Figure 2 : Principe de signature Openssl permet de signer des petits documents, si on veut signer un grand document il faut d’abord lui calculer une empreinte. $openssl dgst –foctiondeHachage –out Résultat grandFicher Fonctions de hachage : MD5 pour une empreinte de 128 bits, SHA ou RIPEMD160 pour une empreinte de 160 bits.
  8. 8. 8 Signer le document openssl rsautl -sign -in fE -inkey Clepriv.pem -out signature Fe: petit fichier ou une empreint IV. Démonstration Pour se familiariser avec les opérations cryptographiques: chiffrement, déchiffrement, hachage, signature digitale. On va effectuer l’expérimentation ci-dessous : Consignes avant de commencer  Créer un répertoire pour la source « Source » et un répertoire pour le destinataire « Destinataire ».  Mettre tous les fichiers qui concernent la source dans le répertoire Source et tous les fichiers qui concernent le destinataire dans le répertoire Destinataire. Il y a trop d’espace entre les mots  A chaque fois qu'un fichier doit être transmis de la source vers le Destinataire, copier ce fichier dans le répertoire du destinataire. Il y a trop d’espace entre les mots  Pour pouvoir appeler l'exécutable openssl.exe, rajouter le chemin de ce dernier dans la variable d'environnement PATH. Il y a trop d’espace entre les mots 1. Emetteur 1. Message confidentiel Créer un fichier "message.txt" et y mettre un texte confidentiel 2. Générer les clés privées RSA de la source et la destination ...Source> openssl genrsa -out src_rsa.pem -passout pass:srcpasswd -des 512 ...Destinataire> openssl genrsa -out dest_rsa.pem -passout pass:destpasswd -des 512 src_rsa.pem et dest_rsa.pem vont contenir les clés privées de la source et du destinataire protégés par les mots de passe srcpasswd et destpasswd respectivement. 3. Extraction des clés publiques à partir des fichier "src_rsa.pem" et "dest_rsa.pem" vers "src_rsa_pub.pem" et "dest_rsa_pub.pem" ...Source> openssl rsa -in src_rsa.pem -passin pass:srcpasswd -out src_rsa_pub.pem -pubout ...Destinataire> openssl rsa -in dest_rsa.pem -passin pass:destpasswd -out dest_rsa_pub.pem -pubout L’option –pubout : permet d'extraire la clé publique (par défaut c'est la clé privée qui est extraite)
  9. 9. 9 L'option passin et passout : C'est pour protéger les fichiers, pass:xxxx permet de faire une protection par mots de passe. 4. échange de secret partagé La source choisi un secret partagé « qui sera utilisé pour générer la clé symétrique partagée » par exemple "secret" « stocké dans secret.txt »et elle chiffre ce secret partagé avec la clé publique de la destination "dest_rsa_pub.pem" Ici "secret" sera utilisé par DES pour fabriquer la clé symétrique ET le vecteur d'initialisation nécessaire pour DES en mode CBC. ...Source> openssl rsautl -in secret.txt -out secret.crypt -inkey dest_rsa_pub.pem -pubin - encrypt 5. Chiffrement de "message.txt" avec DES-CBC en utilisant le secret partagé "secret" comme paramètre de génération de clé de session et de vecteur d'initialisation. ...Source> openssl enc -des-cbc -in message.txt -out message.crypt -pass file:secret.txt 6. Signature de message crypté "message.crypt" Calcul de condensat (code de hashage) avec MD5 ...Source> openssl dgst -md5 -binary -out message.crypt.dgst message.crypt Chiffrement du condensat « code de hashage » avec la clé privée de la source "src_rsa.pem" ...Source> openssl rsautl -in message.crypt.dgst -out message.crypt.dgst.sign -sign - inkey src_rsa.pem 2. Récepteur La destination connait: dest_rsa.pem dest_rsa_pub.pem et reçoit: "secret.crypt" "message.crypt" "message.crypt.dgst.sign" Donc il faudra recopier ces trois fichiers du répertoire Source vers le répertoire Destinataire. 1. Authentification de la source et de l'intégrité de donnée reçue Déchiffrement de l'empreinte « code de hashage » du message ==> dgst1 ...Destinataire> openssl rsautl -in message.crypt.dgst.sign -out dgst1 -pubin -inkey src_rsa_pub.pem La destination calcule elle même le digest à partir de "message.crypt" ==>dgst2 ...Destinataire> openssl dgst -md5 -binary -out dgst2 message.crypt La destination compare les deux condensats: (la commande FC fait un File Compare, /B fait une comparaison Binaire) ...Destinataire> fc /B dgst1 dgst2 Comparaison des fichiers dgst1 et dgst2: aucune différence trouvée ce qui confirme l'intégrité du "message.crypt" est confirmée. Aussi l'authentification de la source est vérifiée.
  10. 10. 10 2. Déchiffrement du message "message.crypt" Déchiffrement de la "clé partagée" (secret) ...Destinataire> openssl rsautl -decrypt -in secret.crypt -out secret.txt -inkey dest_rsa.pem Déchiffrement du "message.crypt" à l'aide de secret qui se trouve dans "secret.txt" ...Destinataire> openssl enc -in message.crypt -out message.txt -pass file:secret.txt - d -des-cbc Lire le message! ! ! ...Destinataire> type message.txt Service confidentialité Conclusion L’OpenSSL est une version sûre et efficace de SSL / TLS, largement utilisé garce à son détails des défis dans la sécurisation réseau communications. Ce rapport était un bénéfice pour nous, puisque il nous a permet d’avoir une vision globale sur le monde de sécurité et une autre vision plus détaillée sur l’outil OpenSSL qui répond au mieux à au défis de cette dernière. Références  « Introduction à la cryptographie » Copyright © 1990- 1998 Network Associates, Inc. et ses filiales»  « Introduction à la sécurité informatique (YACINE CHALLAL & HATEM BETTAHAR) ; 15/10/2008 »  « TP 1 : OpenSSL usages de base »  Télécharger OpenSSL pour Windows à partir du site web  OpenSSL COHEN Achraf, YACOUBOU S.Bouraima, 2011  TKTcert: A web-based authenticated a certified service

×