Vous êtes sur la page 1sur 42

VPN niveaux transport et

application
Introduction: les
Certificats
Plan
Rappels sur la cryptographie asymtrique.
Infrastructure Cl publique (PKI).
Modle de Confiance.
Structure du Certificat numrique.
Conclusion
Cryptographie asymtrique et
gestion des cls

Problmes:
Distribution des cls
Obtenir la cl publique dune autre entit
Distribuer sa propre cl publique

Rvocation
Rvoquer une cl publie
Dterminer si une cl publie est valide ou non
Distribution des cls publiques

1. Alice envoie sa cl publique Bob

Alice Bob

2. Mallet intercepte la cl et la remplace avec sa propre cl

Mallet

Alice / Bob
3. Mallet peut dcrypter tout le trafic et gnrer des
signatures falsifies
Distribution des cls publiques (suite)

Une autorit de certification (CA) rsout ce


problme:
Alice envoie sa cl publique au CA
Alice prouve quelle dtient la cl prive correspondant
la cl publique envoye
Le CA vrifie lidentit dAlice
Le CA signe lensemble: cl publique et identit dAlice
avec sa cl prive, le document sign est appel
certificat

Quand Bob reoit le certificat dAlice, il est sr que la cl


qui y est certifie est celle dAlice
Certificat numrique

Structure de donnes liant diffrents lments au


moyen de la signature dune autorit de confiance
Le groupe de travail SPKI a dvelopp un standard
pour les certificats numriques focalisant lautorisation
plutt que lauthentification. Un certificat SPKI relie une
autorisation une cl publique, sans exiger
ncessairement lidentit du dtenteur de la cl prive
correspondante. Nanmoins, un hash de la cl
publique peut tre utilis comme un identificateur
unique du dtenteur de la cl.
SPKI offre une simplicit par rapport au standard X.509
en offrant un schma dencodage moins riche que la
notation ASN.1 utilise par X.509.
Infrastructure cl publique (PKI)

Daprs le standard X.509:

Publie /
CA Rpertoire
Publie la rvocation

Demande / met

Utilisateur final

Mais:
Le CA doit vrifier les dtails de chaque utilisateur
Risques pour la scurit du CA
PKI
La mthode la plus utilise pour grer la rvocation de
certificats est de maintenir une liste de rvocation de
certificats CRL (Certificate Revocation List), qui est une
liste de certificats rvoqus signe et priodiquement
publie par le CA ou par une autorit autorise par le
CA. Quand un systme utilisant un certificat veut vrifier
la validit dun certificat, il ne vrifie pas uniquement la
validit de la signature du CA ayant sign le certificat
mais saisit galement une liste de rvocation rcente et
vrifie que le numro de srie du certificat nappartient
pas cette liste de rvocation. Le mot rcent varie
avec la politique de scurit locale : un CA met une
CRL priodiquement (chaque heure, chaque jour ou
chaque semaine
Infrastructure cl publique (suite)

Publie /
CA Rpertoire
Publie la rvocation

Demande / met

RA

Utilisateurs finaux

Autorit denregistrement (RA)


Intermdiaire entre dtenteur de cl et CA
Vrifie les requtes des utilisateurs et les transmet au CA
Le niveau de vrification dpend de la politique de certification (CPS) mise
en uvre
Modle de confiance dans X.509
Infrastructure hirarchique
Possibilitde certification entre 2 CAs appartenant des arbres
diffrents, cest la co-certification

CA1 CA1 co-certifie CA2 CA2


1 1

2 3 2 3

5 5
4

1
CA
Utilisateur final
Certificats X.509

Principal format utilis pour les certificats

Norme:
ITU-T X.509, ou ISO/IEC 9594-8

Versions successives:
1988 : v1
1993 : v2 = v1 + 2 nouveaux champs
1996 : v3 = v2 + extensions
Structure dun certificat X.509
Version (V1)
Cl prive du CA
Serial Number (V1)
Signature Algorithm Identifier (V1)
(pour la signature de lmetteur du certificat)
Issuer (V1)
(Nom X500 du CA)
Gnration de la
Validity (V1)
(Dates dbut et fin du certificat)
signature

Subject (V1)
(Nom X500 du dtenteur)
SubjectPublicKeyInformation (V1)
(Identificateur de lalgorithme et cl publique)
IssuerUniqueIdentifier (V2)

SubjectUniqueIdentifier (V2)

Extensions (V3)

Signature digitale du CA
Extensions dun Certificat X.509

Le concept dorigine des certificats X.509 est de relier


lidentit dune entit une cl publique
Nouvelles situations: besoin davoir dautres
informations que lidentit

Solution: Introduction de blocks de donnes pouvant


supporter nimporte quel type dinformations pour
satisfaire des besoins locaux
Extensions dun Certificat X.509 (suite)

Rajout de nouveaux champs sans la modification de la


dfinition ASN.1 dun certificat
Permettre le rajout dextensions selon le besoin des
implmentations
Lidentificateur dune extension est dfini selon ITU-T
Rec. X.660 | ISO/IEC 9834-1

Identificateur Extension1 Flag critique (1 ou 0) Valeur Extension1

Identificateur Extension2 Flag critique (1 ou 0) Valeur Extension2

Identificateur Extension3 Flag critique (1 ou 0) Valeur Extension3


Extensions dun Certificat X.509 (suite)

Les extensions sont classes en 4 catgories:

Les extensions dinformation sur la cl et la


politique de scurit
Les extensions dinformations sur le dtenteur et
lmetteur

Les extensions de contraintes sur le chemin de


certification

Les extensions de rvocation


SSL/TLS: le transport scuris
Plan
Introduction

Le protocole SSL/TLS

Le protocole SET
Introduction: choix
protocolaires.
Simple

Lger

Pas ou peu de contrle

Optimisation et confiance
Le Protocole SSL
SSL : Introduction
SSL dfini par netsacpe et intgr au
browser
Premire version de SSL test en interne
Premire version de SSL diffus : V2
(1994)
Version actuelle V3
Standard l IETF au sein du groupe
Transport Layer Security (TLS)
Standard au sein du WAP Forum Wireless
Transport Layer Security (WTLS)
SSL : Architecture

NFS

FTP SMTP HTTP Telnet XDR

SSL SNMP RPC

TCP UDP

IP
Ports pour SSL (1/2)

Protocole Port Protocole non Application


scuris scuris
HTTPS 443 HTTP Transactions requte-
rponse scurises
SSMTP 465 SMTP Messagerie lectronique

SNNTP 563 NNTP News sur le rseau Internet

SSL-LDAP 636 LDAP Annuaire X.500 allg

SPOP3 995 POP3 Accs distant la bote aux


lettres avec rapatriement des
messages
Ports pour SSL (2/2)

Protocole Port Protocole non Application


scuris scuris
FTP-DATA 889 FTP Transfert de fichiers

FTPS 990 FTP Contrle du transfert de fichiers

IMAPS 991 IMAP4 Accs distant la bote aux lettres avec ou


sans rapatriement des messages
TELNETS 992 Telnet Protocole daccs distant un systme
informatique
IRCS 993 IRC Protocole de confrence par lcrit
SSL : Services
Authentification
Serveur (obligatoire), client (optionnel)
Utilisation de certificat X509 V3
A ltablissement de la session.
Confidentialit
Algorithme de chiffrement symtrique ngoci, cl
gnr ltablissement de la session.
Intgrit
Fonction de hachage avec cl secrte : hmac(cl
secrte, h, Message)
Non Rejeu
Numro de squence
SSL : Protocoles

Application

SSL
Handshake

Alert CCS

Record

TCP
Handshake (1/6)
Authentification du serveur et
ventuellement du client,
Ngociation des algorithmes de
chiffrement et de hachage, change dun
secret,
Gnration des cls.
Handshake (2/6)
Message Type de Sens de Signification
message transmission
HelloRequest optionnel serveur client Ce message demande au client d'entamer
le Handshake.
ClientHello obligatoire client serveur Ce message contient :
le numro de version du protocole SSL ;
le nombre alatoire : client_random ;
l'identificateur de session : session_ID ;
la liste des suites de chiffrement choisies
par le client ;
la liste des mthodes de compression
choisies par le client.
ServerHello obligatoire serveur client Ce message contient :
le numro de version du protocole SSL ;
un nombre alatoire : serveur_random ;
l'identificateur de session : session_ID ;
une suite de chiffrement ;
une mthode de compression.
Handshake (3/6)

Certificate Optionnel serveur client Ce message contient le certificat du


client serveur serveur ou celui du client si le serveur le lui
rclame et que le client en possde un.
ServerKeyExchange Optionnel serveur client Ce message est envoy par le serveur que
sil ne possde aucun certificat, ou
seulement un certificat de signature.
CertificateRequest Optionnel serveur client Par ce message, le serveur rclame un
certificat au client.
ServerHelloDone Obligatoire serveur client Ce message signale la fin de lenvoi des
messages ServerHello et subsquents.
Handshake (4/6)

ClientKeyExchange Obligatoire client serveur Ce message contient le PreMasterSecret


crypt laide de la cl publique du
serveur.
CertificateVerify Optionnel client serveur Ce message permet une vrification
explicite du certificat du client.
Finished obligatoire serveur client Ce message signale la fin du protocole
client serveur Handshake et le dbut de lmission des
donnes protges avec les nouveaux
paramtres ngocis.
Handshake (5/6)

Ouverture d'une
session SSLv3
Client Serveur

Client Hello

Serveur Hello
Certificate
(Serveur Key Exchange)
(Certificate Request)
Server Hello Done

(Certificate)
Client Key Exchange
(Certificate Verify)
ChangeCipherSpec
Finished

ChangeCipherSpec
Finished
Application Data

Application Data
Handshake (6/6)

Ouverture d'une
connexion

Client Serveur

Client Hello

Serveur Hello
ChangeCipherSpec
Finished

ChangeCipherSpec
Finished

Application Data
ChangeCipherSpec (CCS)
ChangeCipherSpec signale au Record
toute modification des paramtres de
scurit,

Constitu dun message (1 octet)


Le protocole Record

Reoit les donnes des couches suprieures :


(Handshake, Alert, CCS, HTTP, FTP ...), et les
transmet au protocole TCP.

Aprs application de :
la fragmentation des donnes en blocs de taille
maximum de 214 octets
la compression des donnes, fonction prvue mais
non supporte actuellement
la gnration dun condenst pour assurer le service
dintgrit
le chiffrement des donnes pour assurer le service de
confidentialit
Le protocole Alert
Le protocole Alert peut tre invoqu :
par lapplication, par exemple pour signaler la
fin dune connexion
par le protocole Handshake suite un
problme survenu au cours de son
droulement
par la couche Record directement, par
exemple si l'intgrit d'un message est
mise en doute
Le protocole Alert (2)
Message Contexte Type
bad_certificate chec de vrification dun certificat fatal
bad_record_mac rception dun MAC erron fatal
certificate_expired certificat prim fatal
certificate_revoked certificat mis en opposition (rvoqu) fatal
certificate_unknown certificat invalide pour dautres motifs que ceux fatal
prciss prcdemment
close_notify interruption volontaire de session fatal
decompression_failure les donnes appliques la fonction de fatal
dcompression sont invalides (par exemple, trop
longues)
handshake_ failure impossibilit de ngocier des paramtres satisfaisants fatal
illegal_parameter un paramtre chang au cours du protocole fatal
Handshake dpasse les bornes admises ou ne
concorde pas avec les autres paramtres
no_certificate rponse ngative une requte de certificat avertissement
ou fatal
unexpected_message arrive inopportune dun message fatal
unsupported_certificate le certificat reu nest pas reconnu par le destinataire avertissement
ou fatal
SSL : charges (1/2)
Les choix pour les calculs de la charge
cryptographique de SSL:
algorithme de chiffrement du protocole record : DES 64
bits en mode CBC ;
algorithme de chiffrement asymtrique : RSA 1024 bits ;
fonction de hachage : MD5 ;
itinraire de certification comprenant une seule tape ;
certificat du serveur : autorit de certification unique, dj
connue du client (un seul certificat dans le message
Certificate) ;
taille des informations contenues, du message Certificate :
500 Koctets (notons que la taille des informations du
certificat est dans la plupart des cas infrieure) ;
seule le serveur est certifi.
SSL : charges (2/2)

Opration Temps de calcul pour le client Temps de calcul pour le Total (ms)
(ms) serveur (ms)
Ouverture dune nouvelle 18,94 16,9 35,85
session (Handshake complet)
Rafrachissement d'une 0,11 0,11 0,22
session (Handshake simplifi)
Ouverture dune nouvelle 0,079 0,071 0,15
connexion
Temps de calcul pour 16Ko 5,5 5,3 10,8
de donnes (chiffrement ou
dchiffrement, laboration et
vrification du MAC)
HTTPS
Pile des protocoles
Chiffrement et authentification
Page chiffr