Вы находитесь на странице: 1из 14

Amyn Bennamane MIF30 - Cryptographie 16/05/2009

Rapport de projet Cryptographie


Le protocole SSL
1. Sommaire
1. Sommaire ........................................................................................................................................ 1
2. Introduction ..................................................................................................................................... 2
3. Prsentation de SSL ......................................................................................................................... 2
4. Historique ........................................................................................................................................ 2
5. Applications de SSL .......................................................................................................................... 2
5.1. Contextes dutilisation............................................................................................................. 2
5.2. Objectifs scuritaires ............................................................................................................... 3
5.2.1. Confidentialit ................................................................................................................. 3
5.2.2. Intgrit ........................................................................................................................... 3
5.2.3. Authentification............................................................................................................... 4
5.2.4. Relations entre les trois concepts ................................................................................... 4
6. Fonctionnement .............................................................................................................................. 4
6.1. Les deux couches de SSL.......................................................................................................... 5
6.2. Couche basse : Record Layer ................................................................................................... 5
6.2.1. Fragmentation ................................................................................................................. 6
6.2.2. Compression .................................................................................................................... 6
6.2.3. MAC - Message Authentication Code.............................................................................. 7
6.2.4. Chiffrement ..................................................................................................................... 7
6.2.5. Dcapsulation .................................................................................................................. 7
6.3. Couche haute : Handshake Protocol ....................................................................................... 7
6.3.1. Etat de la session (session state) ..................................................................................... 8
6.3.2. Etat de la connexion (connection state) .......................................................................... 9
6.3.3. Messages possibles ......................................................................................................... 9
6.4. Couche Haute : Autres protocoles ........................................................................................ 11
6.4.1. Changement des Spcifications de Chiffrement ........................................................... 11
6.4.2. Protocole dAlerte ......................................................................................................... 11
7. Vulnrabilits Connues.................................................................................................................. 11

1
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
Replay ................................................................................................................................................ 12
Analyse de Traffic .............................................................................................................................. 12
Copier-Coller Cut-And-Paste .......................................................................................................... 12
LHomme du Milieu ........................................................................................................................... 13
8. Conclusion ..................................................................................................................................... 13
9. Bibliographie.................................................................................................................................. 14

2. Introduction
Le besoin de scurisation des changes sur Internet nest pas le mme quil y a dix
ans de cela. Aujourdhui, il est monnaie courante pour un consommateur de faire ses
courses sur internet, de faire toute sorte de transactions bancaires, ou dchanger des
donnes sensibles professionnelles sur le rseau. Le protocole SSL, apparu en 1995, a pour
but dassurer une certaine scurit dans les changes de donnes sensibles sur internet.
Dans le contexte actuel prcit, lutilisation du protocole SSL est indispensable, et il est bon,
en tant quutilisateur final, de comprendre les buts, le fonctionnement, les limites de ce
protocole. Cest ce que ce document essaye dexpliquer de faon simple.

3. Prsentation de SSL
SSL signifie Socket Secure Layer (littralement Couche de Scurit des Sockets, o les
sockets sont les structures de communications sur la couche transport du modle OSI). La
version 3.1 du protocole a t renomme en TLS pour Transport Layer Security (Scurit de
la Couche Transport).

4. Historique
SSL a t dvelopp par la socit Netscape en 1994. Il a t publi en 1995,
directement en version 2. Les vulnrabilits de la version 2 ont t corriges par la version 3
publie en 1996. Suite au rachat du brevet de Netscape par lIETF en 2001, la version 3.1 a
t renomme en TLS. Les versions 1.1 et 1.2 ont succd respectivement en 2006 et 2008
TLS version 1.

5. Applications de SSL
5.1. Contextes dutilisation

A lheure actuelle, SSL est principalement mis en place sur des serveurs web
proposant des services de transactions commerciales (achat/vente en ligne), ou simplement

2
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
des services didentification dutilisateurs de comptes en lignes (comptes de messageries,
forums).

Cette utilisation de SSL se nomme https, pour http secure , car le protocole http
est utilis au dessus de SSL, cest--dire que SSL est insr entre le bloc de protocoles TCP/IP
et la couche application en http.

Mais SSL peut tre utilis pour dautres protocoles applicatifs, tel que telnet ou ftp.

5.2. Objectifs scuritaires

Les objectifs de scurit que veut atteindre le protocole SSL sont les suivants :
confidentialit, intgrit, authentification. Ci-aprs une explication de ces trois termes.

5.2.1. Confidentialit

Assurer la confidentialit des donnes consiste assurer que les donnes ne sont
accessibles que par les personnes ayant un droit moral daccs ces donnes. Dans le
contexte de la communication entre deux parties, la donne en question est linformation
envoye dune partie lautre, et la personne ayant le droit daccder aux donnes est le
destinataire du message envoye.

La confidentialit peut tre compromise par un pirate tentant dintercepter un


message en transit sur le rseau et en extraire des informations utiles.

5.2.2. Intgrit

Assurer lintgrit dune donne signifie assurer que la donne ne sera pas altre
durant son transfert ou son stockage. Dans le contexte de la communication entre deux
parties, cela signifie que le destinataire de la donne doit pouvoir la visualiser comme
lexpditeur la cre, sans altration durant son transfert.

Un message pourrait tre altr durant son transfert soit par un problme li au
support, soit dlibrment par une personne mal intentionne.

Il est noter que SSL est sens reposer sur un protocole fiable comme TCP,
proposant un contrle dintgrit. Cependant, cest un contrle dintgrit qui ne peut rien
contre la modification volontaire des donnes, qui peut faire passer des donnes falsifies
pour des donnes sans erreur dun point de vue traitement du signal. L o TCP se limite aux
CRC, numros de segments, et acquittements, SSL se sert des signatures et des hashages de
signatures. Voir la partie Fonctionnement pour les dtails.

3
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
5.2.3. Authentification

Lauthentification consiste sassurer quune personne dit la vrit sur un ou


plusieurs de ses attributs. Dans le contexte de la communication entre 2 parties, un attribut
dune partie pourrait tre son nom, sa raison sociale, ou tout autre lment de ce quelle est
ce quelle sait, ou ce quelle possde, qui pourrait assurer lautre partie de lidentit de sa
partenaire.

Lors de laccs un site web de vente en ligne, le consommateur voudrait, au


moment du paiement, tre sur quil donne son argent la boutique en ligne dont il connait
la rputation, et non un escroc qui encaissera largent sans suite. Cest pour cela quil a
besoin dauthentification : pour tre sur que le site web est bien la fameuse boutique en
question, daprs son nom. On a donc souvent besoin didentification du serveur web, mais
plus rarement celle du client. SSL permet lauthentification des deux parties.

5.2.4. Relations entre les trois concepts

Il est vident que ces trois concepts sont trs lis. Une communication dont
lauthentification est compromise est une communication o lon risque de communiquer
des informations une personne qui nest pas celle que lon croit. Donc la confidentialit est
compromise par dfinition, car cette personne malveillante na pas le droit de prendre
connaissance de ces informations. De plus, lintgrit est aussi compromise, car le vritable
destinataire dsir naura pas reu notre message, et plus forte raison il naura pas reu le
message sans altration dans le cas dune compromission de lauthentification aboutissant
une configuration de lhomme du milieu, le message pourra tre altr par ce dernier, et
on aura donc une compromission dintgrit au sens usuel.

Nous avons donc que lintgrit et la confidentialit dpendent de lauthentification,


mais on peut ajouter que la confidentialit dpend aussi, dans une certaine mesure, de
lintgrit, comme on peut le constater dans des attaques par copier-coller .

6. Fonctionnement
SSL est un protocole de niveau Session. Plusieurs communications diffrentes
peuvent simultanment avoir lieu sous la mme session. Cela peut tre utile lorsque deux
parties communiquent dans plusieurs processus clients par exemple : les couts
dtablissement de connexion multiples sont conomiss.

4
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

6.1.Les deux couches de SSL

SSL est compos de 2 couches logiques superposes dans la pile OSI : une
couche basse appele Record Layer ou Record Protocol et une couche haute appele
Handshake Protocol .

La couche basse est en fait la couche qui fournit les services de bases qui seront
ncessaires tout au long dune communication. La couche haute est constitue de
protocoles de gestions de la connexion, qui sont encapsuls dans la couche basse.

6.2.Couche basse : Record Layer

La couche basse de SSL le Record Layer ou Record Protocol est la couche


encapsulant tous les types de donnes SSL : donnes brutes et donnes de gestion de la
connexion.

Une trame de la couche Record Layer se compose des champs suivants :

Type Minor Major Record Length Record Data


version version (< 214o)

8 bits 8bits 8 bits 16 bits < 214 octets

Les champs trouvs ici sont classiques. On trouve le type du protocole encapsul, (se
rfrant au protocole de la couche haute de SSL, voir Couche haute : Handshake Protocol),
les numros de version de SSL utilis, la taille des donnes et les donnes utiles aprs
traitement.

Voici le traitement que subit un segment arrivant de la couche haute du SSL :

Fragmentation

Compression ( Optionelle )

Signature (MAC - Message Authentication Code )

Chiffrement

Schma montrant la succession de ces actions (1) :

5
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

Ces traitements constituent les services que fournit le Record Layer la couche
suprieure de SSL.

6.2.1. Fragmentation

Lorsquun segment de donnes provient de la couche haute, il est fragment en


segments de taille infrieure 214o (taille dpendant de limplantation). Les sparations
entre segments de la couche haute ne sont pas gards (deux segments de couche haute
spars conscutifs peuvent tre contigus dans un segment du Record Layer).

6.2.2. Compression

La compression est optionnelle. En fait, elle est toujours active, mais sans effet par
dfaut. Elle est inutile lorsque le taux de transfert est lev, o elle cre un surcout de
traitement.

6
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
6.2.3. MAC - Message Authentication Code

Le MAC est une signature de chaque segment de donne qui passe dans la
connexion. Le MAC sert prouver quun message na pas t corrompu durant le transfert (il
assure donc lintgrit du message). Il est calcul de la manire suivante :

hash(MAC_write_secret + pad_2

+ hash (MAC_write_secret + pad_1 + seq_num + length + content));

O :

MAC_write_secret est une phrase secrte decide au moment de la


connexion

pad_1 est le caractre 0x36 rpt 48 fois pour MD5 ou 40 fois pour SHA

pad_2 est le caractre 0x5c rpt autant de fois que pad_1

seq_num est le numro de squence du message

hash est lalgorithme de hashage decid au moment de la connexion

6.2.4. Chiffrement

Le chiffrement peut tre de deux grands types : chiffrement par bloc, tel que AES, ou
chiffrement de flux, tel que RS4. Le chiffrement par bloc est une mthode de chiffrement qui
prend un bloc et qui le transforme en un bloc chiffr. Le chiffrement par flux est une autre
mthode qui chiffre un flux au fil de leau, gnrant un flux chiffr en temps rel.

Lalgorithme de chiffrement tant dfini au dbut de la connexion, le chiffrement


consiste chiffrer le message accompagn du MAC, pour assurer la confidentialit du
message.

6.2.5. Dcapsulation

Bien sur, lors de la remonte des donnes dans la pile des protocoles, les oprations
sont menes inversement : dcryptage, contrle dintgrit, dcompression, concatnation
des messages, puis envoi la couche haute SSL.

6.3.Couche haute : Handshake Protocol

Le Handshake Protocol sert grer une connexion SSL, c'est--dire dcider des
paramtres de scurits dune communication, et notamment assurer le point sensible qui
est lauthentification initiale. A linstar dune connexion TCP comprenant de segments grant

7
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
la fiabilit, le Handshake Protocol propose des segments ddis ltablissement dune
connexion et la gestion du flux, mais tout ceci dun point de vue scurit.

Schma reprsentant les changes de messages de type Handshake pour une


connexion SSL :

La dernire ligne reprsente le dbut du transfert de donnes couche application,


c'est--dire les donnes utiles, ne faisant plus partie du processus de poigne de main.

Toutes les donnes qui sont apparemment implicites dans la couche infrieures,
c'est--dire les informations dont on a dit quelles ont t tablies au dbut de la connexion,
sont effectivement tablies par le Handshake, et mmorises en ce qui est appel ltat de la
session (session state) et les tats des connexions (connection states).

6.3.1. Etat de la session (session state)

La structure de donnes session state est compose des champs suivants :

session id Octet arbitraire identifiant une session.

peer certificate Un certificat X509.v3 appartenant au poste.

compression method La mthode de compression.

8
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

cipher spec Description des algorithmes de chiffrement et des paramtres


pour le MAC.

master secret Phrase secrte de 48 octets partage entre client et serveur.

is resumable Drapeau indiquant la rutilisabilit dune session pour


plusieurs connexions.

6.3.2. Etat de la connexion (connection state)

La structure de donnes connection state est compose des champs suivants :

server and client random Suite doctets alatoire choisie par le client et le
serveur chaque connexion.

server write MAC secret Le secret utilise pour calculer le MAC sur des
donnes crites par le serveur.

client write MAC secret Idem pour les donnes client.

server write key La cl de chiffrement utilise pour les donnes cryptes par
le serveur et dcryptes par le client.

client write key Idem, inversement.

initialization vectors Donnes dinitialisation jouant le rle de grain initial


pour le chiffrement par bloc.

sequence numbers Chaque partie maintient de son cot les numros de


squence des messages envoys et reus pour chaque connexion.

6.3.3. Messages possibles

Ci-dessous une description de la communication de poigne de main reprsente


dans le schma prcdent.

ClientHello : Initialisation de ltat de la session par le client.

ServerHello : Rponse au client_hello.

ServerCertificate : Le serveur sauthentifie avec son certificat x509.

CertificateRequest : Optionnellement, le serveur demande au client de


sauthentifier.

9
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

ServerKeyExchange: Si le serveur na pas de certificate ou un certificat ne


contenant que la signature de sa cl publique, il dfinit ici quel algorithme
dchange de cls sera utilis. Pour SSL 3, les algorithmes disponibles sont
RSA, Diffie-Hellman fixe , Diffie-Hellman phmre, Diffie-Hellman anonyme,
et Fortezza).

ClientCertificate : Le client sauthentifie en rponse au message


CertificateRequest. Si le client na pas de certificat, il envoie un message
derreur (voir Protocole dAlerte).

ClientKeyExchange : En rponse au message server_key_exchange, le client


envoie les paramtres de lalgorithme dauthentification choisi. Par exemple,
pour RSA, il envoie son pre-master secret chiffr avec la cl publique du
serveur.

CertificateVerify: This message is sent in order to provide definite verification


of a client certificate. This message is sent following all client certificates
except those including Fixed Diffie-Hellman parameters.

A ce stade, client et serveur calculent leur secret matre comme suit :

master_secret = MD5 ( pre_master_secret + SHA ( A +


pre_master_secret + ClientHello.random +
ServerHello.random ) ) + MD5 ( pre_master_secret + SHA (
BB + pre_master_secret + ClientHello.random +
ServerHello.random ) ) + MD5 ( pre_master_secret + SHA (
CCC + pre_master_secret + ClientHello.random +
ServerHello.random ) ) ;

Le secret matre est utilis comme grain pour la gnration dune cl symtrique
pour la communication.

ChangeCipherSpec : Le client et le serveur indiquent quils ont calcul la cl


symtrique et que tous les messages suivants seront chiffr avec.

Finished: Ce message suit le message ChangeCipherSpec pour indiquer que les


paramtres de cryptographie ont t bien pris en compte et il est chiffr avec
la cl calcule juste avant.

A ce moment a lieu une synchronisation avant le dbut des changes de donnes utiles.

10
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

6.4.Couche Haute : Autres protocoles

La couche haute est appele Handshake Protocol car elle est la plus importante en
terme de nombre de messages utiliss pour grer la connexion.

Les deux autres protocoles disponibles dans cette couche sont le protocole de
changement des spcifications de chiffrement et le protocole dalerte.

6.4.1. Changement des Spcifications de Chiffrement

Ce protocole sert modifier la stratgie de chiffrement utilise dans une session. Son
fonctionnement est toujours le mme que lorsquil apparait dans le processus de poigne de
main :

Ainsi, aprs tout changement dans la stratgie de chiffrement, les deux parties se
resynchronisent avec un message Finished (Termin).

6.4.2. Protocole dAlerte

Le protocole dAlerte sert signaler une erreur dans la communication, comme une
erreur dans le calcul du MAC, ou une impossibilit de sauthentifier pour le client.

Les erreurs sont de deux types : fatales et non fatales. Les erreurs fatales mettent fin
la communication, tandis que les non fatales marquent seulement la session comme non
utilisable pour les prochaines connexions. Le protocole est donc trs simple : un octet pour
lerreur et un octet pour sa gravit.

7. Vulnrabilits Connues
SSL dans sa version 2 possdait des vulnrabilits qui ont fini par en faire un
protocole obsolte. Il a t avantageusement remplac par le protocole en version 3, qui
rgle la plupart de ces vulnrabilits.

11
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
SSL en version 3, daprs larticle de D.Wagner et B.Schneier, est relativement fiable,
et une analyse de nombreux points de scurits na pas rvl de faille importante dans SSL
3, bien que certains points puissent tre amliors.

Malgr la grande fiabilit de SSL 3, certaines vulnrabilits sont exploitables par un


individu mal intentionn pour compromettre une ou plusieurs des dimensions de scurit
prises en charge par SSL. La cause principale qui permet dexploiter ces failles est due, dans
la majorit des cas, une mauvaise configuration dun utilisateur, de sa crdulit, ou de son
ignorance de certains mcanismes de scurit.

Ci-aprs une description dattaques classiques en matire de scurit, et une mise en


correspondance rapide avec SSL.

Replay

La Replay Attack consiste intercepter une communication et renvoyer lidentique


un message dj envoy dans cette communication. Ceci peut servir envoyer des
informations dauthentifications copies sur celles dune communication passe.

SSL pare cette attaque grace au MAC qui contient le numro de squence du
message et dautres paramtres spcifiques la connexion et au poste. Donc un message
renvoy sera dtect comme ntant pas sa place. Soit mauvais numro de squence, soit
mauvais numro de connexion, etc. De plus, le MAC ne peut tre modifi car il est hash. Le
hashage est sens tre sens unique.

Analyse de Traffic

Cette attaque consiste couter une communication et essayer de deviner des


information partir de la longueur des champs protocolaires.

SSL ne propose pas de solution contre ces attaques car elles sont considres peu
dangereuses. Cependant dans de rares cas (cas des chiffrements de flux), il est possible de
rcuprer la longueur du champ GET de http (lURL). Daprs larticle de D.Wagner et
B.Schneier, ce cas, bien que peu dangereux, pourrait faire lobjet dune amlioration par un
bourrage alatoire.

Copier-Coller Cut-And-Paste

Lattaque par copier-coller consiste intercepter un message dans une


communication SSL, puis de le rediffuser un autre moment ou dans une autre session. Une
variante plus subtile consiste tenter dinsrer un bloc (couche basse) de message chiffr et
lintroduire comme bloc dun autre message qui est destin tre restitu en clair. En effet,

12
Amyn Bennamane MIF30 - Cryptographie 16/05/2009
certains champs dune page web par exemple prsentent un niveau faible de confidentialit
et seront restitus en clair.

SSL pare ce danger en appliquant un MAC chaque bloc. Le MAC dpend du poste,
de la session et du numro de message. Et lattaquant ne peut pas gnrer un bon MAC, car
le MAC dpend aussi de ma phrase secrte.

LHomme du Milieu

Comme il a t vu auparavant, lintgrit et la confidentialit sont tributaires de


lauthentification. Cela veut dire quune compromission de cette dernire est la voie royale
vers la compromission des deux autres.

Lattaque de lHomme du milieu (ou MITM pour Man In The Middle) exploite ce
phnomne en compromettant lauthenticit durant la phase dauthentification (Handshake
protocol) par substitution lune des deux parties. En gnral, lauthentification du client
nest pas exige par le serveur, donc cot serveur il ny a pas de problme. Cot client, le
pirate espre que le client sera assez ignorant pour accepter une connexion un site dont la
cl publique ne correspond pas celle dsigne par le jeton x509 associ son nom de
domaine chez lAutorit de Certification.

Pour se substituer, dun point de vue rseau, au serveur pour le client, lattaquant
corrompt le cache ARP et/ou DNS en diffusant en broadcast des rponses respectivement
ARP et/ou DNS.

SSL implante lauthentification utilisant les jetons x509 permettant aux parties de se
donner les moyens dviter cette attaque, mais ne peut probablement pas faire plus.

8. Conclusion
Lutilisation importante et croissante tmoigne de lefficacit de SSL. Ce protocole qui
continue dvoluer jusqu aujourdhui par de petits ajouts nest pas prt de voir son
utilisation diminuer.

Malheureusement, le facteur limitant de faon ultime la scurit reste le facteur


humain. Bien que SSL constitue un outil complet pour assurer une scurit satisfaisante pour
des changes sensibles, il y a des efforts faire pour sensibiliser les utilisateurs finaux aux
mcanismes de cette scurit, car ces derniers en ont de plus en plus besoin dans leur vie
quotidienne. Car, sans surprise, les techniques actuelles de divulgation dinformation et de
vol dargent sur le web reposent largement sur lingnierie sociale.

13
Amyn Bennamane MIF30 - Cryptographie 16/05/2009

9. Bibliographie
(1) http://www2.rad.com/networks/2001/ssl/over.htm

Analysis of the SSL 3.0 protocol (David Wagner, Bruce Scheier), Avril 1997

SSL Man-in-the-Middle Attacks (Peter Burkholder), Fvrier 2002 (v2.0)

SSL 3.0 Specification (Final Draft) (IETF) 1999.

14

Вам также может понравиться