Vous êtes sur la page 1sur 42

Le protocole SSL

S. LAZAAR ENSA de Tanger

Le protocole SSL (Secure Socket Layer) permet la transmission de donnes chiffres sur le rseau Internet. C'est une cration de Netscape, l'une des premires socits avoir dvelopp un navigateur grand public. La cl de cryptage utilise est une cl publique RSA, se basant sur un ensemble d'oprations sur des nombres premiers.
S. LAZAAR 2

La cl de cryptage:
se compose dans les faits de deux cls : une pour le codage, et une pour le dcodage. Cette technologie est accepte par les navigateurs, mais aussi par les serveurs. Un organisme est charg de mettre en place des certificats de confiance pour tous les sites qui utilisent le protocole SSL But: bien identifier un site et l'organisme qui le gre.
S. LAZAAR 3

Architecture de rseau utilisant SSL

S. LAZAAR

Comment a marche SSL ?


SSL est bas sur 2 protocoles:
SSL Handshake protocol: avant de communiquer, les 2 programmes SSL ngocient des cls et des protocoles de chiffrement communs. SSL Record protocol: Une fois ngocis, ils chiffrent toutes les informations changes et effectuent divers contrles.

S. LAZAAR

Le principe de fonctionnement est: serveur - client

Le navigateur se connecte un serveur scuris: une cl de cryptage unique est mise en place tout au long de la transaction entre le serveur et le navigateur. Le navigateur envoie des donnes cryptes destination du serveur, le seul dchiffrer les informations reues, grce la mise en place d'une cl d'change unique. Le serveur envoie un avis de bonne rception de l'information.
S. LAZAAR 6

Le client vrifie la validit du certificat (donc l'authenticit du marchand), Il cre une cl secrte alatoire , chiffre cette cl l'aide de la cl publique du serveur, puis lui envoie le rsultat (la cl de session). Le serveur est en mesure de dchiffrer la cl de session avec sa cl prive. Les deux entits sont en possession d'une cl commune dont ils sont seuls connaisseurs. Le reste des transactions peut se faire l'aide de cl de session, garantissant l'intgrit et la confidentialit des donnes changes.
S. LAZAAR 7

Utilit: e-commerce
SSL une solution logicielle qui chiffre le numro de carte bancaire lorsqu'il transite sur le rseau depuis le poste du client. Il est dcrypt sur le serveur du marchand.
Chaque transaction implique un cot fixe de 0,15 0,30 , auquel il faut ajouter les pourcentages prlevs par la banque du commerant, l'metteur de la carte de crdit, le serveur de paiement Internet, etc... Ce cot fixe pose un vrai problme pour les paiements de faible montant
S. LAZAAR 8

SSL est actuellement le systme le plus fiable puisque la totalit du numro de la carte de crdit est crypte. Le cryptage SSL est aujourd'hui utilis par le plus grand nombre de commerants en ligne travers le monde et, de part sa notorit, est amen se dvelopper un niveau encore plus lev. Le protocole SSL permet d'authentifier le commerant, qui doit obligatoirement dtenir une cl secrte correspondant la cl publique de chiffrement de la connexion.

Le protocole SSLne permet pas d'authentifier le client qui conserve la facult de rpudier la transaction. Moralit : le commerant supporte tous les risques lis la fraude.
S. LAZAAR 9

Le systme SSL est indpendant du protocole utilis, ce qui signifie qu'il peut aussi bien scuriser des transactions faites sur le Web par le protocole HTTP que des connexions via le protocole FTP, POP SSL agit telle une couche supplmentaire, permettant d'assurer la scurit des donnes, situe entre la couche application et la couche transport
S. LAZAAR 10

Avantages: SSL est transparent pour l'utilisateur:


Un utilisateur du navigateur internet pour se connecter un site de commerce lectronique scuris par SSL enverra des donnes chiffres sans aucune manipulation ncessaire de sa part

La quasi intgralit des navigateurs supporte dsormais le protocole SSL.


Netscape Navigator affiche un cadenas verrouill pour indiquer la connexion un site scuris par SSL et un cadenas ouvert dans le cas contraire Microsoft Internet Explorer affiche un cadenas uniquement lors de la connexion un site scuris par SSL.

11

Au milieu de l'anne 2001, le brevet de SSL appartenant jusqu'alors Netscape a t rachet par l'IETF (Internet Engineering Task Force ) Il a t rebaptis pour l'occasion TLS (Transport Layer Security).

S. LAZAAR

12

Fonctionnement de SSL 2.0 La scurisation des transactions par SSL 2.0 est base sur un change de cls entre client et serveur. La transaction scurise par SSL se fait selon le modle suivant : Le client se connecte au site marchand scuris par SSL et lui demande de s'authentifier. Le client envoie galement la liste des cryptosystmes qu'il supporte, trie par ordre dcroissant selon la longueur des cls. Le serveur a rception de la requte envoie un certificat au client, contenant la cl publique du serveur, signe par une autorit de certification (CA), et le nom du cryptosystme le plus haut dans la liste avec lequel il est compatible La longueur de la cl de chiffrement - 40 bits ou 128 bits - sera celle du cryptosystme commun ayant la plus grande taille de cl.
S. LAZAAR 13

SSL 3.0 SSL 3.0 vise authentifier le serveur vis-vis du client Note : Dans Firefox 2, le support de SSL 2.0 est dsactiv par dfaut, en faveur de SSL 3.0.

S. LAZAAR

14

SSL permet d'assurer les services de scurit suivants: confidentialit : obtenue par l'utilisation dalgorithmes de chiffrement symtriques de blocs comme DES, FORTEZZA, IDEA, 3DES ou RC2, ou par des algorithmes chiffrement symtrique de flots comme RC4

intgrit : assure par l'utilisation de MACs (Message Authentication Code) bass sur les fonctions de hachage MD5 (16 octets) ou SHA-1 (20 octets) authentification : SSL permet l'authentification des 2 entits (authentification client facultative) bas sur des certificats X.509, et l'authentification des donnes grce aux MACs.
S. LAZAAR 15

Les sous-protocoles de SSL


Le protocole SSL est constitu de quatre sousprotocoles: 1 ) Handshake qui permet l'authentification mutuelle du client et serveur, la ngociation des algorithmes de chiffrement, de hachage, et l'change des cls symtriques qui assurent le chiffrement.

2 ) le protocole SSL Change Cipher Spec


3 ) le protocole SSL Alert 4 ) le protocole SSL Record S. LAZAAR
16

S. LAZAAR

17

Le protocole Handshake: Ce protocole permet l'authentification obligatoire du serveur, du client est optionnelle, Il permet de ngocier pour choisir les suites de chiffrement qui seront utilises lors de la session.

S. LAZAAR

18

Le protocole ChangeCipherSpec (CCS): Ce protocole comprend un seul et unique message (1 octet) qui porte le mme nom que le protocole Il permet d'indiquer au protocole Record la mise en place des algorithmes de chiffrement qui viennent d'tre ngocis.

S. LAZAAR

19

Le Protocole SSLRecord: Ce protocole intervient aprs l'mission du message ChangeCipherSpec. Il permet de garantir :
- la confidentialit l'aide de chiffrement des donnes

- l'intgrit l'aide de gnration d'un condensat.


S. LAZAAR 20

Le protocole SSL Alert:


Ce protocole gnre des messages d'alerte suite aux erreurs que peuvent s'envoyer le client et le serveur. Les messages sont composs de 20 octets: le premier tant soit fatal soit warning. Si le niveau de criticit du message est fatal, la connexion SSL est abandonne. Le deuxime octet est utilis pour le code d'erreur.
S. LAZAAR 21

Liste des Messages du protocol Alert: Les erreurs fatales sont: bad_record_mac: rception d'un MAC erron decompression_failure: les donnes appliques la fonction de compression sont invalides handshake_failure: impossibilit de ngocier les bons paramtres illegal_parameter: un paramtre chang au cours du protocole Handshake ne correspond pas avec les autres paramtres unexpected_message : message non reconnu.
S. LAZAAR 22

Les warnings sont : bad_certificate: le certificat n'est pas bon certificate_expired : certificat prim certificat_revoked : certificat rvoqu certificat_unknown : certificat invalide pour des raisons prciss au dessus close_notify: la fin d'une connexion no_certificate: rponse ngative une demande de certificat unsupported_certificate: le certificat reu n'est pas reconnu
S. LAZAAR 23

ssldump is an SSLv3/TLS network protocol analyzer. It identifies TCP connections on the chosen network interface and attempts to interpret them as SSLv3/TLS traffic. When it identifies SSLv3/TLS traffic, it decodes the records and displays them in a textual form to stdout.

S. LAZAAR

24

Sample Output Here's an example trace generated by ssldump. New TCP connection #3: localhost(3638) <-> localhost(4433) 3 1 0.0738 (0.0738) C>S Handshake ClientHello 3 2 0.0743 (0.0004) S>C Handshake ServerHello 3 3 0.0743 (0.0000) S>C Handshake Certificate 3 4 0.0743 (0.0000) S>C Handshake ServerHelloDone 3 5 0.0866 (0.0123) C>S Handshake ClientKeyExchange 3 6 0.0866 (0.0000) C>S ChangeCipherSpec 3 7 0.0866 (0.0000) C>S Handshake Finished 3 8 0.0909 (0.0043) S>C ChangeCipherSpec 3 9 0.0909 (0.0000) S>C Handshake Finished 3 10 1.8652 (1.7742) C>S application_data 3 11 2.7539 (0.8887) C>S application_data 3 12 5.1861 (2.4321) C>S Alert warning close_notify 3 5.1868 (0.0007) C>S TCP FIN 3 5.1893 (0.0024) S>C TCP FIN 25

Les variables d'tat d'une session SSL


Une session SSL est dfinie par les variables suivantes: Session ID (identifiant de session): squence arbitraire de 32 octets choisie par le serveur pour identifier une session. Peer certificate (certificat du pair): certificat X 509 du correspondant (soit pour un serveur ou un client). Compression method l'algorithme de compression utilis, NULL pour l'instant (ce champ reste vide) Cipher spec: suite de chiffrement dfinit les algorithmes de chiffrement et de hachage MasterSecret : cl de 48 octets partage entre le client et le serveur. Is resumable (drapeau): flag qui indique sil est possible d'ouvrir de nouvelles connexions sur la session en question.
S. LAZAAR 26

Les paramtres qui dfinissent une connexion SSL


Server_random et Client_random: deux nombres alatoires de 32 octets, gnrs par le client et le serveur lors de chaque connexion. Server_MAC_write_secret: cl secrte utilise par le serveur pour calculer les MACs Client_MAC_write_secret: cl secrte utilise par le client pour calculer les MACs Server_write_key: cl symtrique utilise par le serveur pour le chiffrement des donnes. Client_write_key: cl symtrique utilise par le client pour le chiffrement des donnes. Initialization vectors: vecteur d'initialisation pour le chiffrement par bloc en mode CBC (Cipher Bloc Chaining), l'un du cot serveur et l'autre du cot client. Sequence number: chaque message est numrot, l'un pour le serveur, l'autre par le client, S. et chacun cod sur 8 octets. LAZAAR 27

Les attaques et faiblesses de SSL


SSL est thoriquement vulnrable aux attaques par force brute en cas d'utilisation de cls 40 (utiliser des cls de 128 bits). SSL est trs vulnrable aux attaques par le milieu (man in the middle): l'attaquant intercepte (physiquement) la requte du client et se fait passer pour le serveur auprs de lui, tout en se faisant passer pour un client auprs du serveur lgitime: Il reoit donc la totalit du flux suppos protg.
S. LAZAAR 28

SSL est faible dans le sens o il n'impose pas l'authentification client SSL est faible car il prsente des souplesses dans son implmentation, notamment en ce qui concerne la vrification des certificats des serveurs.
En effet, le client devrait vrifier la signature, la validit ainsi que le statut de rvocation du certificat, s'assurer que le CA concern appartient bien aux CAs auxquels il fait confiance. Il peut permettre un attaquant de substituer sa propre cl publique celle du serveur original puis de rediriger le traffic vers son faux site tout en faisant croire au client qu'il communique bien avec son serveur lgitime.
S. LAZAAR 29

SSL est ventuellement vulnrable des attaques plus pousses, bases sur des proprits cryptographiques. Il existe des attaques par brute-force sur l'change de la cl symtrique ou des attaques dites de rollback: l'attaquant cherche modifier le choix des algorithmes d'changes de cls de faon ce que les 2 entits n'utilisent pas les mmes.

lattaquant pourra dchiffrer le message car les paramtres fournit par le serveur dans le cas d'un algorithme n'offrent aucune scurit si on les applique un autre
S. LAZAAR 30

Attaque Brute force: Gnralement les mots de passe de la plupart des logiciels sont stocks crypts dans un fichier. Pour obtenir un mot de passe, il suffit de rcuprer ce fichier et de lancer un logiciel de brute force cracking. Ce procd consiste tester de faon exhaustive toutes les combinaisons possibles de caractres (alphanumriques + symboles), de manire trouver au moins un mot de passe valide.

Cette attaque se base sur le fait que n'importe quel mot de passe est crackable. Ce n'est qu'une question de temps.
S. LAZAAR 31

Implmentations:
Plusieurs offres commerciales du serveur SSL sont disponibles, par exemple: SSLeay (open source) Netscape Entreprise Server Apache Oracle Web Application Server Internet Information Server (IIS) Lotus Domino d'IBM Java Server de Sun Microsystems
S. LAZAAR 32

Qu'est-ce qu'une fonction de hachage ? Une fonction de hachage (fonction de condensation) est une fonction permettant d'obtenir un condens ( condensat ou hach ou message digest) d'un texte:
Une suite de caractres assez courte reprsente le texte qu'il condense. La fonction de hachage doit tre telle qu'elle associe un et un seul hach un texte en clair (la moindre modification du document entrane la modification de son hach). Cest une fonction sens unique (one-way function) , impossible de retrouver le message original partir du condens. Sil existe un moyen de retrouver le message en clair partir du hach, la fonction de hachage est dite brche secrte .
S. LAZAAR 33

Le hach reprsente en quelque sorte l'empreinte digitale (finger print) du document.

S. LAZAAR

34

Algorithmes de hachage les plus utiliss:

MD5 (MD signifiant Message Digest). Dvelopp par Rivest en 1991, MD5 cre une empreinte digitale de 128 bits partir d'un texte de taille arbitraire en le traitant par blocs de 512 bits. Il est courant de voir des documents en tlchargement sur Internet accompagns d'un fichier MD5, il s'agit du condens du document permettant de vrifier l'intgrit de ce dernier SHA (Secure Hash Algorithm), pouvant tre traduit par Algorithme de hachage scuris cre des empreintes d'une longueur de 160 bits SHA-1 est une version amliore de SHA (1994), produit une empreinte de 160 bits partir d'un message d'une longueur maximale de 264 bits en le traitant par blocs de 512 bits. S. LAZAAR 35

Vrification d'intgrit En expdiant un message accompagn de son hach, il est possible de garantir l'intgrit d'un message i.e le destinataire peut vrifier que le message n'a pas t altr durant la communication:
Lors de la rception du message, il suffit au destinataire de calculer le hach du message reu et de le comparer avec le hach accompagnant le document. Si le message (ou le hach) a t falsifi durant la communication, les deux empreintes ne correspondront pas.

S. LAZAAR

36

Le scellement des donnes:


L'utilisation d'une fonction de hachage permet de vrifier que l'empreinte correspond bien au message reu, mais rien ne prouve que le message a bien t envoy par celui que l'on croit tre l'expditeur. Pour garantir l'authentification du message, il suffit l'expditeur de chiffrer (on dit signer) le condens l'aide de sa cl prive (le hach sign est appel sceau) et d'envoyer le sceau au destinataire.

A rception du message, il suffit au destinataire de dchiffrer le sceau avec la cl publique de l'expditeur, puis de comparer le hach obtenu avec la fonction de hachage au hach reu en pice jointe. Ce mcanisme de cration de sceau est appel S. LAZAAR 37 scellement.

Conclusion Le protocole SSL est actuellement le seul protocole de scurisation dploy et utilis grande chelle. Son grand avantage tant sa transparence Il garantit l'authentification, la confidentialit et l'intgrit des donnes. Avec son architecture modulaire, il ne se limite pas des applications traditionnelles:
Il intgre les rseaux sans fil comme le WAP (Wirless Transport Layer) sous le nom WTLS ( Wireless Transport Layer Security).
S. LAZAAR 38

ANNEXE

S. LAZAAR

39

openSSL
openSSL est une bote outils cryptographiques implmentant les protocoles SSL et TLS qui offre 1. une bibliothque de programmation en C permettant de raliser des applications client/serveur scurises s'appuyant sur SSL/TLS. 2. une commande en ligne (openssl) permettant la cration de cls RSA, DSA (signature) la cration de certificats X509 le calcul d'empreintes (MD5, SHA, RIPEMD160, ...) le chiffrement et dchiffrement (DES, IDEA, RC2, RC4, Blowfish, ...) la ralisation de tests de clients et serveurs SSL/TLS la signature et le chiffrement de courriers (S/MIME)

40

Blowfish est un algorithme de chiffrement cl symtrique par blocs conu par Bruce Schneier en 1993. Il tire son nom du poisson-lune japonais (ou fugu), qui en est galement l'emblme. Blowfish utilise une taille de bloc de 64 bits et la cl de longueur variable peut aller de 32 448 bits. Elle est base sur l'ide qu'une bonne scurit contre les attaques de cryptanalyse peut tre obtenue en utilisant de trs grandes cls pseudoalatoires.

Blowfish prsente une bonne rapidit d'excution except lors d'un changement de cl, il est environ 5 fois plus rapide que TripleDES et deux fois plus rapide que IDEA. Malgr son ge, il demeure encore solide du point de vue cryptographique avec relativement peu dattaques efficaces sur les versions avec moins de tours. La version complte avec 16 tours est ce jour entirement fiable et la recherche exhaustive reste le seul moyen pour l'attaquer. Il est utilis dans de nombreux logiciels propritaires et libres (dont GnuPG etOpenSSH).
41

S. LAZAAR

Rfrences
http://www.0faute.com/ssl.htm http://locoche.net/protocole.php http://fr.wikipedia.org/wiki/Fonction_de_hachage http://www.commentcamarche.net/crypto/signatur e.php3

www.securite.org/db/crypto/ssl
Support de cours. Universit dt.INPT, Rabat 2006
S. LAZAAR 42