SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Thomas Moegli
Ing. HES Msc. Télécommunications - Réseaux et Sécurité IT
Protocoles SSL/TLS
Protocoles SSL/TLS

Introduction
Thomas Moegli
๏ Définition
๏ SSL : Secure Socket Layer
๏ TLS : Transport Layer Security
๏ SSL/TLS offrent les services suivants :
๏ Confidentialité et intégrité des échanges
๏ Authentification du serveur
๏ Authentification du client (optionnel)
๏ SSL/TLS assurent la protection de plusieurs protocoles applicatifs 

(HTTP, FTP, SMTP, POP, …)
๏ Les dernières versions assurent également les communications UDP
๏ SSL/TLS est asymétrique
๏ Deux rôles distincts : client et serveur
๏ Côté client : logiciel SSL/TLS, navigateur Web gérant SSL/TLS
๏ Côté serveur : serveur Windows ou boîtier spécialisé
Protocoles SSL/TLS
3
Thomas Moegli
๏ Couche réseau (Couche 3) : Protocole IPSec
๏ Transparent pour les couches supérieures
๏ Filtrage du trafic au niveau du réseau
๏ Couche Transport : SSL/TLS
๏ Couche Applicative : Kerberos, S/MIME, PGP, SET
Protocoles SSL/TLS
Modèle OSI et Sécurité
4
IP IPSec
TCP
HTTP FTP SMTP
Réseau (3)
IP
TCP
HTTP FTP SMTP
SSL/TLS
IP
TCP
SMTPKerberos
UDP
S/MIME PGP
HTTP
SET
Transport (4)
Application (7)
Thomas Moegli
๏ Originaire du navigateur Web Netscape
๏ 1994 : Premières tentatives de mettre en place un
canal sécurisé pour l’échange de données
confidentielles
๏ Développement du protocole SSLv1 (peu diffusé)
puis SSLv2 (1995)
๏ Souffre d’un certain nombre de défauts importants
en matière de sécurité
๏ 1995 : SSLv3
๏ Correction de failles conceptuelles importantes
๏ 2014 : Bannissement du protocole suite à la
publication d’une faille appelée POODLE
๏ Microsoft, de son côté, a développé un protocole
relativement proche : PCT (Private Communication
Technology) qui sortit fin 1995
Protocoles SSL/TLS
Historique
5
Thomas Moegli
๏ 1996 : l’IETF souhaita normaliser un protocole de type SSL (idée de converger les protocoles de Netscape et Microsoft)
๏ Mise en place d’un groupe de travail TLS (Transport Layer Security)
๏ Janvier 1999 : Publication dans la RFC 2246 du protocole TLS v1.0
๏ TLSv1.0 = SSLv3.1
๏ Avril 2006 : Publication dans la RFC 4346 du protocole TLS v1.1
๏ Août 2008 : TLS v1.2 (RFC 5246)
๏ Les différentes entre TLS et SSL sont suffisantes pour que les protocoles ne soient pas directement interopérables
๏ Les navigateurs Web savent utiliser les deux protocoles (TLS v1.2 et SSLv3)
๏ Ocobre 2015 : Draft de TLS 1.3
Protocole SSL/TLS
Historique
6
Thomas Moegli
๏ Boite à outils cryptographiques qui offre
๏ Une bibliothèque de programmation en C pour réaliser des applications
client/serveur sécurisées s’appuyant sur SSL/TLS
๏ libcrypto : Librarie pour les algorithmes cryptographiques
๏ libssl : Librairie implémentant le protocole TLS
๏ Commande (openssl) permettant
๏ Création de clefs RSA, DSA (Signature)
๏ Création de certificats X509
๏ Calcul d’empreintes (MD5, SHA, RIPEMD160, …)
๏ Chiffrement et déchiffrement (DES, IDEA, RC2, RC4, Blowfish, …)
๏ Réalisation de tests de clients et serveurs SSL/TLS
๏ Signature et chiffrement de courriers (S/MIME)
๏ Présent dans de très nombreuses implémentations (Wikipedia,
Google, Dropbox, Yahoo!, Flickr, …)
๏ Importante vulnérabilité majeure (Heartbleed) dévoilée en avril 2014
Protocole SSL/TLS
OpenSSL
7
Protocoles SSL/TLS

Fonctionnement
Thomas Moegli
๏ 4 protocoles différents qui interviennent dans les différentes phases d’une communication sous SSL/TLS
๏ En-tête de message SSL :
Protocole SSL/TLS
Fonctionnement
9
๏ Message SSL encapsulé dans du TCP :
Type
contenu
Version
majeure
Version
mineure
Longueur
du message
Un ou plusieurs
messages de
protocole
MAC
(optionnel)
Padding
1 byte 1 byte 1 byte 2 bytes
IP
Header
TCP
Header
SSL
Header
Message(s) du protocole SSL HMAC Padding
20 bytes 20 bytes 5 octets
SSL
Thomas Moegli
Protocole SSL/TLS
Architecture
10
SSL Record
Application
Data
Handshake
ChangeCipher
Spec
Alert
HTTP
TCP
SSL Record
๏ Fragmentation des messages
๏ Compression
๏ Authentification du message
et mesures de protection
d’intégrité
๏ Chiffrement
Thomas Moegli
Protocole SSL/TLS
SSL Record
11
Donnée d’application
Fragment
Fragment compressé
HM
AC
Fragment compressé
Fragment chiffré
Fragment chiffré
SSL
Record
Header
Fragment
Fragment compressé
HM
AC
Fragment compressé
Fragment chiffré
Fragment chiffré
SSL
Record
Header
Fragment
Fragment compressé
HM
AC
Fragment compressé
Fragment chiffré
Fragment chiffré
SSL
Record
Header
Thomas Moegli
Handshake (valeur 22)
Sert à l’établissement de la connexion
Protocole SSL/TLS
Protocoles mis en oeuvre
12
ApplicationData
ChangeCipherSpec (valeur 20)
Pour signaler la mise en oeuvre de nouveaux mécanismes de sécurité
Alert (valeur 21)
Pour signifier la fin de la session ou des erreurs dans le déroulement de celle-ci
ApplicationData (valeur 23)
Pour signaler les échanges sécurisés de données d’application
Heartbeat (valeur 24)
Pour vérifier si une connexion entre deux équipements est encore en vie
Thomas Moegli
Protocole Handshake
๏ Etapes
๏ Négociation des algorithmes et paramètres de
sécurité
๏ Echange de la clé
๏ Authentification du serveur
๏ Authentification du client (Opt.)
๏ Les messages du protocole Handshake ont
comme valeur 22
๏ Un message SSL peut contenir plusieurs messages
du protocole Handshake
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
13
Message
Handshake 2
Message
Handshake2
Version Majeure Version Mineure
Longueur
2 octets
Longueur (suite) Type Handshake1
Longueur Handshake1
3 octets
Message
Handshake1
Type Handshake2
Longueur Handshake2
3 octets
Type de contenu
Valeur = 22
Longueur Handshake1 (suite)
ApplicationData
ApplicationData
Thomas Moegli
Protocole Handshake
๏ Messages
๏ ClientHello (valeur = 1)
๏ ServerHello (valeur = 2)
๏ Certificate (valeur = 11)
๏ ServerKeyExchange (valeur = 12)
๏ CertificateRequest (valeur = 13)
๏ ServerHelloDone (valeur = 14)
๏ CertificateVerify (valeur = 15)
๏ ClientKeyExchange (valeur = 16)
๏ Finished (valeur = 20)
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
14
1 - ClientHello
2 - ServerHello
3 - Certificate
3bis - ServerKeyExchange
4 - CertificateRequest
5 - ServerHelloDone
6 - Certificate
6bis - ClientKeyExchange
7 - CertificateVerify
8 - ChangeCipherSpec
8bis - Finished
9 - ChangeCipherSpec
9bis - Finished
Calcul du secret partagé
CLIENT
SERVEUR
ApplicationData
ApplicationData
Thomas Moegli
Message ClientHello
๏ Permet à un client de demander l’établissement d’une connexion sécurisée avec le serveur
๏ Eléments du message
๏ Version de SSL (3.0 pour SSL v3, 3.1 pour TLS v1.0, 3.2 pour TLS v1.1, 3.3 pour TLS v1.2)
๏ Nomenclature : X.Y (X : Version majeure, Y : Version mineure)
๏ Identifiant de session (est vide pour une session totalement nouvelle ou rempli avec l’identifiant d’une session existante)
๏ Propositions de chiffrement et de calcul d’intégrité, appelé CipherSuite
๏ Définissent également l’algorithme de négociation de clés (RSA, Diffie-Hellman, Fortezza, …)
๏ Méthodes optionnelles de compression
๏ Données aléatoires pour générer les clés afin de limiter les risques d’attaques par rejeu
๏ Nombre aléatoire composé de la combinaison et de l’heure du client (4 octets) + 28 octets délivrés par un générateur de nombres
aléatoires (total = 32 octets)
๏ Extensions éventuelles proposées par le client (par ex. algorithmes de signatures)
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
15
1
ApplicationData
ApplicationData
Thomas Moegli
Message ClientHello : Ciphers Suites
๏ Le client propose un ensemble de suites
cryptographiques qu’il est capable de mettre en
oeuvre
๏ Chaque suite cryptographique décrit les
algorithmes et mécanismes utilisés pour les 4
fonctions suivantes :
๏ Etablissement des éléments secrets de session
๏ Authentification des parties
๏ Chiffrement des données applications
๏ Protection de l’intégrité des données applications
๏ La syntaxe est présentée ci-contre
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
16
SSL_X_WITH_Y_Z
๏ X : Désigne l’algorithme utilisé pour l’échange de
clés (RSA ou Diffie-Hellman avec signatures DSS ou
RSA)
๏ Y : Désigne l’algorithme de chiffrement et son mode
de fonctionnement (ECB, CBC, CTR)
๏ Z : Désigne l’algorithme de hachage
1
ApplicationData
ApplicationData
Thomas Moegli
Message ClientHello : Ciphers Suites
SSL_NULL_WITH_NULL_NULL = { 0, 0 }
SSL_RSA_WITH_NULL_MD5 = { 0, 1 }
SSL_RSA_WITH_NULL_SHA = { 0, 2 }
SSL_RSA_EXPORT_WITH_RC4_40_MD5 = { 0, 3 }
SSL_RSA_WITH_RC4_128_MD5 = { 0, 4 }
SSL_RSA_WITH_RC4_128_SHA = { 0, 5 }
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0, 6 }
SSL_RSA_WITH_IDEA_CBC_SHA = { 0, 7 }
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0, 8 }
SSL_RSA_WITH_DES_CBC_SHA = { 0, 9 }
SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0, 10 }
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
17
Suite Cipher initiale (Aucun algorithme)
Algorithme pour clé publique (Chiffrement Asymétrique)
Algorithme de hachage
Algorithme pour clé secrète (Chiffrement Symétrique)
1
ApplicationData
ApplicationData
Thomas Moegli
Message ClientHello
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
18
Longueur Handshake
3 octets
Version Majeure Version Mineure
Données aléatoires (date + nombre aléatoire) = Random
32 octets
long SessionID
Compression choisie Compression choisie Compression 2
Longueur des Ciphersuites
2 octets
Ciphersuite N° 1
Type de contenu
Valeur = 1
SessionID
0 à 32 octets
Ciphersuite N° 2
Compression 2 … Compression n
Ciphersuite N° X Longueur compressions Compression 1
Type Handshake
Valeur = 20
1
ApplicationData
ApplicationData
Thomas Moegli
Message ServerHello
๏ Permet au serveur de répondre au Client Hello en précisant les éléments suivants :
๏ Deux cas de figure
๏ Aucune des propositions du client n’est jugée acceptable ➔ Le serveur met fin à la connexion via un message Alert
๏ Le serveur choisit une suite cryptographique parmi celles proposées par le client et émet le message ServerHello
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
19
2
ApplicationData
ApplicationData
Thomas Moegli
Message ServerHello
๏ Eléments du message
๏ Version de serveur
๏ Données aléatoires pour générer les clés afin de limiter les risques d’attaques par rejeu
๏ Identifiant de session
๏ Peut contenir le même identifiant que celui demandé par le client (en cas de reprise de session)
๏ Peut contenir une nouvelle valeur (en cas de nouvelle session)
๏ Si la valeur est vide, le serveur a refusé la reprise de session demandée par le client
๏ Une seule CipherSuite choisie parmi celles proposées par le client
๏ Les RFC décrivant TLS ne définissent pas précisément comment le serveur doit choisir la suite cryptographique.
๏ En général : le serveur parcourt la liste fournie par le client et choisit la première suite qu’il supporte (Microsoft IIS)

ou le serveur parcourt sa liste de préférences et prend la première suite qui se trouve dans la liste du client (Apache)
๏ Possibilité sous Apache de forcer les préférences avec la directive SSLHonorCipherOrder
๏ Une seule méthode de compression (optionnelle)
๏ Extensions éventuelles choisies par celles proposées par le client
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
20
2
ApplicationData
ApplicationData
Thomas Moegli
Données aléatoires (date + nombre aléatoire) = Random
32 octets
Type de contenu
Valeur = 2
Longueur Handshake
3 octets
Version Majeure Version Mineure
long SessionID
SessionID
0 à 32 octets
Ciphersuite retenue
2 octets
Compression choisie
Message ServerHello
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
21
Type Handshake
Valeur = 20
2
ApplicationData
ApplicationData
Thomas Moegli
Message Certificate
๏ Permet au serveur d’envoyer un certificat au client
๏ Le certificat contient les données nécessaires à l’établissement des clés
๏ Sinon, le message 3bis permettra de les envoyer
๏ Les certificats envoyés doivent être de type X509v3
๏ Envoi du certificat du serveur en premier
๏ Envoi du certificat de niveau supérieur
๏ etc…
๏ Le certificat racine n’est pas envoyé car il est généralement déjà présent dans le navigateur ou le logiciel
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
22
3
ApplicationData
ApplicationData
Thomas Moegli
Message Certificate
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
23
Type Handshake
(Valeur = 11)
Longueur de la chaîne de certificats Longueur…
Longueur du certificat n
Longueur
Certificat 1
…du 1er certificat
Certificat n° …
Certificat n
Certificat n
Longueur Handshake
3 octets
Longueur de la chaîne de certificats
3 octets
Longueur…
Certificat 1
Certificat 1
Longueur du certificat n
3 octets
Type de contenu
Valeur = 11
… du 1er certificat
3 octets
Type Handshake
Valeur = 20
3
ApplicationData
ApplicationData
Thomas Moegli
Message Server_Key_Exchange
๏ Envoyé que si les certificats du serveur ne contiennent pas toute les informations nécessaires pour créer un
PremasterSecret
๏ Dans le cas de Diffie-Hellman, le message contient la clé publique du serveur
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
24
3bis
ApplicationData
ApplicationData
Thomas Moegli
Message Certificate Request
๏ Envoyé si le serveur souhaite également authentifier le client par un certificat
๏ Eléments du message
๏ Liste des certificats (RSA,DSS,RSA-DH,DSS-DH) que le serveur accepte
๏ (Optionnel) Liste des autorités de certifications qu’il reconnaît
๏ Est généralement utilisé dans le cadre d’un VPN avec une liste finie de clients
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
25
4
ApplicationData
ApplicationData
Thomas Moegli
Autorité 1
Autorité 2
Longueur Handshake
3 octets
Longueur des types de
certificats
Type 1 Type 2 …
Type n
Longueur des autorités de certification
2 octets
Longueur autorité n° 1
Longueur autorité n° 2
…
Type de contenu
Valeur = 13
…
…
Message Certificate Request
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
26
Type Handshake
Valeur = 20
4
ApplicationData
ApplicationData
Thomas Moegli
Longueur Handshake (valeur = 0)
3 octets
Type de contenu
Valeur = 14
Message Server Hello Done
๏ Sert à indiquer au client que le serveur a, pour sa part, fini d’envoyer les messages de cette phase
๏ Le nombre de messages émis par le serveur dans la phase de prise de contact peut être variable
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
27
5
ApplicationData
ApplicationData
Thomas Moegli
Message Client Certificate
๏ Dans le cas où une requête CertificateRequest a été émise par le serveur, ce message permet au client d’envoyer
son certificat
๏ Eléments
๏ Liste de certificats ordonnée comme pour le serveur
๏ Au moins un certificat doit émaner d’une des autorités listés dans le CertificateRequest
๏ Si le client ne dispose pas d’un certificat
๏ Avec TLS, il émet un message avec une longueur de chaîne de certificats égale à zéro
๏ Avec SSLv3, il émet un message AlertProtocol de type « warning/no certificate ».
๏ Si le serveur décide de rompre la session, il émet un AlertProtocol « Fatal Handshake failure »
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
28
6
ApplicationData
ApplicationData
Thomas Moegli
Message Client Key Exchange
๏ Il suit le message ClientCertificate si celui-ci existe, sinon c’est le premier message envoyé par le client
๏ Eléments
๏ Varie beaucoup suivant les algorithmes de clés publiques retenues par le serveur dans le message ServerHello
๏ Différences entre TLS et SSL
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
29
6bis
ApplicationData
ApplicationData
Thomas Moegli
Message Client Key Exchange
๏ Cas du RSA sous SSL :
๏ Cas du DH sous SSL :
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
30
Longueur modulo RSA
2 octets
Exposant RSA
Type de contenu
Valeur = 12
Longueur Handshake
3 octets
Modulo RSA …
…
Longueur exposant RSA
2 octets
…
Longueur valeur Ys
Valeur Ys …
Compression 2
…
Longueur valeur p Diffie-Hellman
2 octets
Type de contenu
Valeur = 12
Longueur Handshake
3 octets
Valeur p
… Longueur valeur g …
…
Type Handshake
Valeur = 20
Type Handshake
Valeur = 20
6bis
ApplicationData
ApplicationData
Thomas Moegli
Message Certificate Verify
๏ N’est envoyé que si un certificat client a été envoyé du client au serveur par un message ClientCertificate et que
le certificat possède des capacités de signature
๏ La signature (MD5, SHA) permet de signer tous les messages (de type Handshake) échangés entre le client et le
serveur depuis le ClientHello
๏ Etapes
๏ Le client utilise la clé privée de son certificat pour calculer cette signature.
๏ Le serveur contrôle cette signature avec la clé publique du client inclus dans son certificat
๏ Si la signature est valide, le client est bien en possession de la clé privée
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
31
7
ApplicationData
ApplicationData
Thomas Moegli
Signature
Type de contenu
Valeur = 15
Longueur Handshake
3 octets
Message Certificate Verify
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
32
Type Handshake
Valeur = 20
7
ApplicationData
ApplicationData
Thomas Moegli
Phase de calcul du secret partagé
๏ Aucun échange à ce moment-là
๏ Chacune des deux parties (client et serveur) calcule de son côté le MasterSecret à partir des éléments préalablement
échangés (PremasterSecret, nombres aléatoires)
๏ MasterSecret : longueur fixe de 48 octets
๏ Secret partagé qui sert à la génération des clés de cryptage symétrique et des signatures MAC
๏ Génération dans l’ordre suivant
client_write_MAC_secret

server_write_MAC_secret

client_write_key

server_write_key

client_write_IV

server_write_IV
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
33
ApplicationData
ApplicationData
Thomas Moegli
Phase de calcul du secret partagé
๏ Formule du MasterSecret :
๏ sm = MD5(sp || SHA(‘A’ || sp || rc || rs)) ||

MD5(sp || SHA(‘BB’ || sp || rc || rs)) ||

MD5(sp || SHA(‘CCC’ || sp | rc || rs))
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
34
๏ sm : MasterSecret
๏ sp : PreMasterSecret
๏ ‘A’ : Caractère A
๏ ‘BB’ : Caractère BB
๏ ‘CCC’ : Caractère CCC
๏ rc : Nonce Client
๏ rs : Nonce Serveur
ApplicationData
ApplicationData
Thomas Moegli
Message Client Change Cipher Specs
๏ Via ce message, le client indique au serveur que tous les échanges seront dorénavant chiffrés et/ou authentifiés selon
les paramètres négociés.
๏ Message d’un seul octet
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
35
Version Majeure Version Mineure
Longueur
2 octets
Longueur (Suite)
Type
Valeur = 1
Type de contenu
Valeur = 20
Type Handshake
Valeur = 20
8
ApplicationData
ApplicationData
Thomas Moegli
Message Client Finished
๏ Envoi d’un message chiffré Finished contenant un hachage et un code MAC couvrant tous les messages Handshake
déjà échangés
๏ Message déchiffré par le serveur. Si la tentative de déchiffrement échoue, le serveur rejettera le handshake et mettra un
terme à la connexion.
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
36
Type Handshake
(Valeur = 20)
Longueur
(valeur = 36)
Hachage MD5
Hachage SHA
Version Majeure Version Mineure
Longueur
3 octets, Valeur = 36
Hachage MD5
16 octets
Compression choisie Compression choisie Compression 2
Type Handshake
Valeur = 20
Hachage SHA
20 octets
8bis
ApplicationData
ApplicationData
Thomas Moegli
Message Server Change Cipher Specs
๏ Via ce message, le serveur indique au client que tous les échanges seront dorénavant chiffrés et/ou authentifiés selon
les paramètres négociés.
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
37
9
ApplicationData
ApplicationData
Thomas Moegli
Message Server Finished
๏ Le serveur envoie un message chiffré Finished contenant un hachage et un code MAC qui couvre tous les messages
Handshake déjà échangés.
๏ Le client procède au déchiffrement et à l’authentification du message Finished du serveur
๏ Si tout est OK, la phase Handshake est terminée. Les échanges de données peuvent commencer (Application Phase).
Protocole SSL/TLS
Protocole Handshake et Change Cipher Spec
38
9bis
ApplicationData
ApplicationData
Thomas Moegli
Version Majeure Version Mineure
Longueur
2 octets
Données applicatives (chiffrées)
Type de contenu
Valeur = 23
MAC
Longueur (suite)
๏ Les données d’application sont transportées dans ce type de message
๏ Donnés chiffrées et éventuellement signées
Protocole SSL/TLS
Protocole Application
39
ApplicationData
Thomas Moegli
๏ Messages ayant pour but de signaler une erreur fatale (entraînant une fermeture de session) ou une simple alerte (qui
laisse à l’autre extrémité de décider ou non de la rupture de la connexion)
๏ Comprend un code d’erreur
๏ Peut également être employé pour signaler la fin normale de la phase Application
Protocole SSL/TLS
Protocole Alert
40
Niveau alerte
Warning (valeur = 1)
Fatal (valeur = 2)
Description de l’alerteDescription de l’alerte
Niveau d’alerte
1 octet
Warning : Valeur = 1
Fatal : Valeur = 2
ApplicationData
Thomas Moegli
Protocole SSL/TLS
Protocole Alert
41
Thomas Moegli
๏ Comme les calculs liés aux clés asymétriques prennent du temps et des ressources, SSL/TLS permet de reprendre une
session déjà existante lorsque le client a de nouveau besoin d’échanger des données avec le serveur
๏ Le client reprend dans le ClientHello (1) le numéro de session en cours d’utilisation
๏ Ce numéro permet aux deux parties de conserver le même MasterSecret
๏ Les nombres aléatoires émis dans les messages ClientHello et ServerHello seront différents de la session
précédente

➔ Génération de clés différentes
๏ Les échanges de messages Hello sont directement suivis des messages Change CipherSpec et Finished avant de
passer à la phase Data
๏ Si le serveur ne retrouve pas dans sa table la valeur SessionID du client, il lui proposera un autre identifiant de session
๏ Le client devra procéder à un Handshake complet sans reprise de session
Protocole SSL/TLS
Reprise de session existante
42
Thomas Moegli
Protocole SSL/TLS
Reprise de session existante
43
CLIENT
SERVEUR
1 - ClientHello
2 - ServerHello
3 - ChangeCipherSpec
4 - Finished
5 - ChangeCipherSpec
6 - Finished
Thomas Moegli
Fonctionnement de DH pour TLS
1. Le serveur doit initialement disposer (via la commande openssh, dhparam par ex.) de :
๏ p : un grand nombre premier
๏ g : un générateur, aussi appelé racine primitive modulo p 

(pour chaque entier a premier avec p, il existe un entier k tel que gk
≡ a (mod p)
2. Le serveur choisit un nombre aléatoire a et calcule ya = ga mod p.

Après l’envoi du message Certificate, il envoie un message Server Key Exchange contenant, en clair mais
authentifié par sa clé privée :
๏ La valeur aléatoire issue du message Client Hello
๏ La valeur aléatoire issue du message Server Hello
๏ les nombres p et g
๏ le résultat ya
Protocole SSL/TLS
Algorithme de Diffie-Hellman
44
Thomas Moegli
Fonctionnement de DH pour TLS (suite)
3. Le client vérifie la signature et choisit un nombre aléatoire b. Il envoie yb = gb
mod p dans un message Client Key
Exchange.

En ayant reçu ya du serveur, il calcule (ya)b
mod p = k qui constitue le secret partagé
4. Le serveur reçoit yb calcule (yb)a
mod p = k qui constitue le secret partagé
Protocole SSL/TLS
Algorithme de Diffie-Hellman
45
Thomas Moegli
IPsec VPN
๏ Très déployé, technologie maîtrisée
๏ Permet facilement l’extension du réseau pour des
succursales
๏ Client lourd à déployer (avant la connexion) et maintenir
๏ Nécessite l’ouverture de ports supplémentaires sur le
pare-feu
๏ UDP/500 + ESP (50) + UDP/4500 + …
๏ Souvent, ces ports ne sont pas ouverts par défaut
Protocole SSL/TLS
Comparaison avec IPsec
46
SSL VPN
๏ Permet d’étendre la sécurité du réseau à des personnes
externes à l’entreprise (clients, partenaires commerciaux)
๏ Simplifie l’accès aux partenaires business
๏ Propose un accès depuis quasi n’importe quel
emplacement (Internet café, mobile, etc…)
๏ Souvent, le port est déjà ouvert sur les firewall
๏ Exemple : Port TCP 443
๏ Permet des portails d’accès utilisateur personnalisés
๏ Réduit les coûts d’exploitation
Thomas Moegli
Avantages
๏ Pas ou peu de logiciels à installer & maintenir sur PC
๏ Accès sécurisé aux ressources internes
๏ Intégration de policies pour vérifier l’état des client qui
se connectent
๏ Sécurité point à point (Endpoint security) avec Cisco
Secure Desktop
๏ Plusieurs niveaux d’accès
๏ Clientless – Thin Client – Thick Client
๏ Intégration facile avec les pare-feu
๏ SSL over TCP/443
Protocole SSL/TLS
Avantages et Inconvénients
47
Inconvénients
๏ Moins sécurisé pour l’authentification utilisateur que
IPsec
๏ S’assurer que les certificats sont de confiance
๏ Les policies impliquent plus d’administration
๏ Solutions NAC et Endpoint security propriétaires
๏ Solutions Cisco Thin Client et Clientless nécessitent Java
JRE et support ActiveX
๏ Impossible de faire du VPN Site-to-Site
Thomas Moegli
๏ L’IANA a accordé à certaines applications des ports IP particuliers pour leur permettre de communiquer avec SSL sans
interférence
Protocole SSL/TLS
Protocoles applicatifs et SSL/TLS
48
Protocole non sécurisé Protocole sécurisé Port Application
HTTP HTTPS TCP 443 Transactions requête-réponse
SMTP SSMTP TCP 465 Messagerie électronique
NNTP SNNTP TCP 563 News sur le réseau Internet
LDAP SSL-LDAP TCP 636 Annuaire X.500
POP3 SPOP3 TCP 995 Accès à la boîte aux lettres
FTP FTPS (Données) TCP 989 Transfert de fichiers
FTP FTPS (Contrôle) TCP 990 Contrôle du transfert de fichiers
IMAP IMAPS TCP 991 Accès à la boîte aux lettres
Thomas Moegli
Merci de votre attention !

thomas.moegli@icloud.com
Références
Transport Layer Security, Wikipedia.org 

[https://en.wikipedia.org/w/index.php?title=Transport_Layer_Security&oldid=711145576]
Les VPN : Fonctionnement, mise en oeuvre et maintenance des Réseaux Privés Virtuels, ENI Editions (J-P. Archier)
Réseaux Privés Virtuels - VPN, Frameip [http://www.frameip.com/vpn/] (X. Lasserre, T. Klein, _SebF)
SSL/TLS : Etat des lieux et recommandations, ANSSI : Agence nationale de la sécurité des systèmes d’information 

[http://www.ssi.gouv.fr/uploads/IMG/pdf/SSL_TLS_etat_des_lieux_et_recommandations.pdf] (O. Levillain)
49

Contenu connexe

Tendances

Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxInes Kechiche
 
configuration vpn-ipsec-routeur
 configuration vpn-ipsec-routeur configuration vpn-ipsec-routeur
configuration vpn-ipsec-routeurJULIOR MIKALA
 
Mécanismes de sécurité
Mécanismes de sécuritéMécanismes de sécurité
Mécanismes de sécuritéGhazouani Mahdi
 
Travaux Dirigée: Equipements d'interconnexion
Travaux Dirigée: Equipements d'interconnexionTravaux Dirigée: Equipements d'interconnexion
Travaux Dirigée: Equipements d'interconnexionInes Kechiche
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxInes Kechiche
 
Sécurité informatique
Sécurité informatiqueSécurité informatique
Sécurité informatiqueoussama Hafid
 
VPN - Virtual Private Network
VPN - Virtual Private NetworkVPN - Virtual Private Network
VPN - Virtual Private Networkjulienlfr
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Rapport mise en place d'un sevrer VPN .
   Rapport mise en place d'un sevrer VPN .   Rapport mise en place d'un sevrer VPN .
Rapport mise en place d'un sevrer VPN .Mouad Lousimi
 
C4 Réseaux : Couche reseau
C4 Réseaux : Couche reseauC4 Réseaux : Couche reseau
C4 Réseaux : Couche reseauPRONETIS
 
petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques Manuel Cédric EBODE MBALLA
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdfgorguindiaye
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sakka Mustapha
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatiqueSouhaib El
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 

Tendances (20)

Vpn
VpnVpn
Vpn
 
Cours etherchannel
Cours etherchannelCours etherchannel
Cours etherchannel
 
SSL/TSL Protocols
SSL/TSL ProtocolsSSL/TSL Protocols
SSL/TSL Protocols
 
Vpn
VpnVpn
Vpn
 
Travaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseauxTravaux Dirigée: Notions de bases dans les réseaux
Travaux Dirigée: Notions de bases dans les réseaux
 
Vpn
VpnVpn
Vpn
 
configuration vpn-ipsec-routeur
 configuration vpn-ipsec-routeur configuration vpn-ipsec-routeur
configuration vpn-ipsec-routeur
 
Mécanismes de sécurité
Mécanismes de sécuritéMécanismes de sécurité
Mécanismes de sécurité
 
Travaux Dirigée: Equipements d'interconnexion
Travaux Dirigée: Equipements d'interconnexionTravaux Dirigée: Equipements d'interconnexion
Travaux Dirigée: Equipements d'interconnexion
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 
Sécurité informatique
Sécurité informatiqueSécurité informatique
Sécurité informatique
 
VPN - Virtual Private Network
VPN - Virtual Private NetworkVPN - Virtual Private Network
VPN - Virtual Private Network
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Rapport mise en place d'un sevrer VPN .
   Rapport mise en place d'un sevrer VPN .   Rapport mise en place d'un sevrer VPN .
Rapport mise en place d'un sevrer VPN .
 
C4 Réseaux : Couche reseau
C4 Réseaux : Couche reseauC4 Réseaux : Couche reseau
C4 Réseaux : Couche reseau
 
petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdf
 
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
Sécurité Réseau à Base d'un Firewall Matériel (fortigate)
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatique
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 

En vedette

En vedette (20)

EtherChannel
EtherChannelEtherChannel
EtherChannel
 
Virtuals LAN
Virtuals LANVirtuals LAN
Virtuals LAN
 
Cisco ASA
Cisco ASACisco ASA
Cisco ASA
 
Services IP
Services IPServices IP
Services IP
 
SSL & TLS Architecture short
SSL & TLS Architecture shortSSL & TLS Architecture short
SSL & TLS Architecture short
 
Authentification des protocoles de routage
Authentification des protocoles de routageAuthentification des protocoles de routage
Authentification des protocoles de routage
 
JunOS - Fondamentaux
JunOS - FondamentauxJunOS - Fondamentaux
JunOS - Fondamentaux
 
Secure Socket Layer
Secure Socket LayerSecure Socket Layer
Secure Socket Layer
 
SSL/TLS : Faille Heartbleed
SSL/TLS : Faille HeartbleedSSL/TLS : Faille Heartbleed
SSL/TLS : Faille Heartbleed
 
IPv6
IPv6IPv6
IPv6
 
Protocole OSPF
Protocole OSPFProtocole OSPF
Protocole OSPF
 
Vpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et clientVpn d’acces avec cisco asa 5500 et client
Vpn d’acces avec cisco asa 5500 et client
 
Protocole EIGRP
Protocole EIGRPProtocole EIGRP
Protocole EIGRP
 
VPN: SSL vs IPSEC
VPN: SSL vs IPSECVPN: SSL vs IPSEC
VPN: SSL vs IPSEC
 
Introduction to Secure Sockets Layer
Introduction to Secure Sockets LayerIntroduction to Secure Sockets Layer
Introduction to Secure Sockets Layer
 
Présentation sécurité open_ssl
Présentation sécurité open_sslPrésentation sécurité open_ssl
Présentation sécurité open_ssl
 
IPSec and VPN
IPSec and VPNIPSec and VPN
IPSec and VPN
 
SSL/TLS
SSL/TLSSSL/TLS
SSL/TLS
 
Cisco ospf
Cisco ospf Cisco ospf
Cisco ospf
 
Transport Layer Security (TLS)
Transport Layer Security (TLS)Transport Layer Security (TLS)
Transport Layer Security (TLS)
 

Similaire à Protocoles SSL/TLS

Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécuritédihiaselma
 
Cours HTTPS pour UnPointZero
Cours HTTPS pour UnPointZeroCours HTTPS pour UnPointZero
Cours HTTPS pour UnPointZeroCHILDZ Laurent
 
Utilisation de services Web sécurisés en Java en environnement Open Source
Utilisation de services Web sécurisés en Java en environnement Open SourceUtilisation de services Web sécurisés en Java en environnement Open Source
Utilisation de services Web sécurisés en Java en environnement Open Sourceguest3be047
 
Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalRMSDEVMTL
 
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...CERTyou Formation
 
Webinar SSL Français
Webinar SSL FrançaisWebinar SSL Français
Webinar SSL FrançaisSSL247®
 
ssl-presentation-180811194533.pdf
ssl-presentation-180811194533.pdfssl-presentation-180811194533.pdf
ssl-presentation-180811194533.pdfIyadtech
 
Reseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfReseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfSergeAKUE
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKISylvain Maret
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec GoMickaël Rémond
 
cours-gratuit.com--CoursInformatique-id3180.pdf
cours-gratuit.com--CoursInformatique-id3180.pdfcours-gratuit.com--CoursInformatique-id3180.pdf
cours-gratuit.com--CoursInformatique-id3180.pdfGodefroyCheumaniTche1
 
TechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricTechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricGeoffrey DANIEL
 
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c Socket tcp ip client server on langace c
Socket tcp ip client server on langace c mouad Lousimi
 

Similaire à Protocoles SSL/TLS (20)

Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécurité
 
Https,ssl,ssh
Https,ssl,sshHttps,ssl,ssh
Https,ssl,ssh
 
Cours HTTPS pour UnPointZero
Cours HTTPS pour UnPointZeroCours HTTPS pour UnPointZero
Cours HTTPS pour UnPointZero
 
Utilisation de services Web sécurisés en Java en environnement Open Source
Utilisation de services Web sécurisés en Java en environnement Open SourceUtilisation de services Web sécurisés en Java en environnement Open Source
Utilisation de services Web sécurisés en Java en environnement Open Source
 
Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalR
 
BSidesQuebec2013-ssl
BSidesQuebec2013-sslBSidesQuebec2013-ssl
BSidesQuebec2013-ssl
 
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...
Es66 g formation-cours-avance-sur-la-securite-z-os-cryptographie-reseau-racf-...
 
Webinar SSL Français
Webinar SSL FrançaisWebinar SSL Français
Webinar SSL Français
 
ssl-presentation-180811194533.pdf
ssl-presentation-180811194533.pdfssl-presentation-180811194533.pdf
ssl-presentation-180811194533.pdf
 
SSL.TLS.pptx
SSL.TLS.pptxSSL.TLS.pptx
SSL.TLS.pptx
 
SSL.pdf
SSL.pdfSSL.pdf
SSL.pdf
 
Reseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfReseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdf
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKI
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec Go
 
Solution standard de compensation appliquée à une architecture e business séc...
Solution standard de compensation appliquée à une architecture e business séc...Solution standard de compensation appliquée à une architecture e business séc...
Solution standard de compensation appliquée à une architecture e business séc...
 
cours-gratuit.com--CoursInformatique-id3180.pdf
cours-gratuit.com--CoursInformatique-id3180.pdfcours-gratuit.com--CoursInformatique-id3180.pdf
cours-gratuit.com--CoursInformatique-id3180.pdf
 
Cours si1
Cours si1Cours si1
Cours si1
 
TechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App FabricTechDays 2010 (CLO305) : Windows Azure App Fabric
TechDays 2010 (CLO305) : Windows Azure App Fabric
 
Socket tcp ip client server on langace c
Socket tcp ip client server on langace c Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
 
Protocole Diameter
Protocole DiameterProtocole Diameter
Protocole Diameter
 

Dernier

GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 

Dernier (20)

GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 

Protocoles SSL/TLS

  • 1. Thomas Moegli Ing. HES Msc. Télécommunications - Réseaux et Sécurité IT Protocoles SSL/TLS
  • 3. Thomas Moegli ๏ Définition ๏ SSL : Secure Socket Layer ๏ TLS : Transport Layer Security ๏ SSL/TLS offrent les services suivants : ๏ Confidentialité et intégrité des échanges ๏ Authentification du serveur ๏ Authentification du client (optionnel) ๏ SSL/TLS assurent la protection de plusieurs protocoles applicatifs 
 (HTTP, FTP, SMTP, POP, …) ๏ Les dernières versions assurent également les communications UDP ๏ SSL/TLS est asymétrique ๏ Deux rôles distincts : client et serveur ๏ Côté client : logiciel SSL/TLS, navigateur Web gérant SSL/TLS ๏ Côté serveur : serveur Windows ou boîtier spécialisé Protocoles SSL/TLS 3
  • 4. Thomas Moegli ๏ Couche réseau (Couche 3) : Protocole IPSec ๏ Transparent pour les couches supérieures ๏ Filtrage du trafic au niveau du réseau ๏ Couche Transport : SSL/TLS ๏ Couche Applicative : Kerberos, S/MIME, PGP, SET Protocoles SSL/TLS Modèle OSI et Sécurité 4 IP IPSec TCP HTTP FTP SMTP Réseau (3) IP TCP HTTP FTP SMTP SSL/TLS IP TCP SMTPKerberos UDP S/MIME PGP HTTP SET Transport (4) Application (7)
  • 5. Thomas Moegli ๏ Originaire du navigateur Web Netscape ๏ 1994 : Premières tentatives de mettre en place un canal sécurisé pour l’échange de données confidentielles ๏ Développement du protocole SSLv1 (peu diffusé) puis SSLv2 (1995) ๏ Souffre d’un certain nombre de défauts importants en matière de sécurité ๏ 1995 : SSLv3 ๏ Correction de failles conceptuelles importantes ๏ 2014 : Bannissement du protocole suite à la publication d’une faille appelée POODLE ๏ Microsoft, de son côté, a développé un protocole relativement proche : PCT (Private Communication Technology) qui sortit fin 1995 Protocoles SSL/TLS Historique 5
  • 6. Thomas Moegli ๏ 1996 : l’IETF souhaita normaliser un protocole de type SSL (idée de converger les protocoles de Netscape et Microsoft) ๏ Mise en place d’un groupe de travail TLS (Transport Layer Security) ๏ Janvier 1999 : Publication dans la RFC 2246 du protocole TLS v1.0 ๏ TLSv1.0 = SSLv3.1 ๏ Avril 2006 : Publication dans la RFC 4346 du protocole TLS v1.1 ๏ Août 2008 : TLS v1.2 (RFC 5246) ๏ Les différentes entre TLS et SSL sont suffisantes pour que les protocoles ne soient pas directement interopérables ๏ Les navigateurs Web savent utiliser les deux protocoles (TLS v1.2 et SSLv3) ๏ Ocobre 2015 : Draft de TLS 1.3 Protocole SSL/TLS Historique 6
  • 7. Thomas Moegli ๏ Boite à outils cryptographiques qui offre ๏ Une bibliothèque de programmation en C pour réaliser des applications client/serveur sécurisées s’appuyant sur SSL/TLS ๏ libcrypto : Librarie pour les algorithmes cryptographiques ๏ libssl : Librairie implémentant le protocole TLS ๏ Commande (openssl) permettant ๏ Création de clefs RSA, DSA (Signature) ๏ Création de certificats X509 ๏ Calcul d’empreintes (MD5, SHA, RIPEMD160, …) ๏ Chiffrement et déchiffrement (DES, IDEA, RC2, RC4, Blowfish, …) ๏ Réalisation de tests de clients et serveurs SSL/TLS ๏ Signature et chiffrement de courriers (S/MIME) ๏ Présent dans de très nombreuses implémentations (Wikipedia, Google, Dropbox, Yahoo!, Flickr, …) ๏ Importante vulnérabilité majeure (Heartbleed) dévoilée en avril 2014 Protocole SSL/TLS OpenSSL 7
  • 9. Thomas Moegli ๏ 4 protocoles différents qui interviennent dans les différentes phases d’une communication sous SSL/TLS ๏ En-tête de message SSL : Protocole SSL/TLS Fonctionnement 9 ๏ Message SSL encapsulé dans du TCP : Type contenu Version majeure Version mineure Longueur du message Un ou plusieurs messages de protocole MAC (optionnel) Padding 1 byte 1 byte 1 byte 2 bytes IP Header TCP Header SSL Header Message(s) du protocole SSL HMAC Padding 20 bytes 20 bytes 5 octets SSL
  • 10. Thomas Moegli Protocole SSL/TLS Architecture 10 SSL Record Application Data Handshake ChangeCipher Spec Alert HTTP TCP SSL Record ๏ Fragmentation des messages ๏ Compression ๏ Authentification du message et mesures de protection d’intégrité ๏ Chiffrement
  • 11. Thomas Moegli Protocole SSL/TLS SSL Record 11 Donnée d’application Fragment Fragment compressé HM AC Fragment compressé Fragment chiffré Fragment chiffré SSL Record Header Fragment Fragment compressé HM AC Fragment compressé Fragment chiffré Fragment chiffré SSL Record Header Fragment Fragment compressé HM AC Fragment compressé Fragment chiffré Fragment chiffré SSL Record Header
  • 12. Thomas Moegli Handshake (valeur 22) Sert à l’établissement de la connexion Protocole SSL/TLS Protocoles mis en oeuvre 12 ApplicationData ChangeCipherSpec (valeur 20) Pour signaler la mise en oeuvre de nouveaux mécanismes de sécurité Alert (valeur 21) Pour signifier la fin de la session ou des erreurs dans le déroulement de celle-ci ApplicationData (valeur 23) Pour signaler les échanges sécurisés de données d’application Heartbeat (valeur 24) Pour vérifier si une connexion entre deux équipements est encore en vie
  • 13. Thomas Moegli Protocole Handshake ๏ Etapes ๏ Négociation des algorithmes et paramètres de sécurité ๏ Echange de la clé ๏ Authentification du serveur ๏ Authentification du client (Opt.) ๏ Les messages du protocole Handshake ont comme valeur 22 ๏ Un message SSL peut contenir plusieurs messages du protocole Handshake Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 13 Message Handshake 2 Message Handshake2 Version Majeure Version Mineure Longueur 2 octets Longueur (suite) Type Handshake1 Longueur Handshake1 3 octets Message Handshake1 Type Handshake2 Longueur Handshake2 3 octets Type de contenu Valeur = 22 Longueur Handshake1 (suite) ApplicationData ApplicationData
  • 14. Thomas Moegli Protocole Handshake ๏ Messages ๏ ClientHello (valeur = 1) ๏ ServerHello (valeur = 2) ๏ Certificate (valeur = 11) ๏ ServerKeyExchange (valeur = 12) ๏ CertificateRequest (valeur = 13) ๏ ServerHelloDone (valeur = 14) ๏ CertificateVerify (valeur = 15) ๏ ClientKeyExchange (valeur = 16) ๏ Finished (valeur = 20) Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 14 1 - ClientHello 2 - ServerHello 3 - Certificate 3bis - ServerKeyExchange 4 - CertificateRequest 5 - ServerHelloDone 6 - Certificate 6bis - ClientKeyExchange 7 - CertificateVerify 8 - ChangeCipherSpec 8bis - Finished 9 - ChangeCipherSpec 9bis - Finished Calcul du secret partagé CLIENT SERVEUR ApplicationData ApplicationData
  • 15. Thomas Moegli Message ClientHello ๏ Permet à un client de demander l’établissement d’une connexion sécurisée avec le serveur ๏ Eléments du message ๏ Version de SSL (3.0 pour SSL v3, 3.1 pour TLS v1.0, 3.2 pour TLS v1.1, 3.3 pour TLS v1.2) ๏ Nomenclature : X.Y (X : Version majeure, Y : Version mineure) ๏ Identifiant de session (est vide pour une session totalement nouvelle ou rempli avec l’identifiant d’une session existante) ๏ Propositions de chiffrement et de calcul d’intégrité, appelé CipherSuite ๏ Définissent également l’algorithme de négociation de clés (RSA, Diffie-Hellman, Fortezza, …) ๏ Méthodes optionnelles de compression ๏ Données aléatoires pour générer les clés afin de limiter les risques d’attaques par rejeu ๏ Nombre aléatoire composé de la combinaison et de l’heure du client (4 octets) + 28 octets délivrés par un générateur de nombres aléatoires (total = 32 octets) ๏ Extensions éventuelles proposées par le client (par ex. algorithmes de signatures) Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 15 1 ApplicationData ApplicationData
  • 16. Thomas Moegli Message ClientHello : Ciphers Suites ๏ Le client propose un ensemble de suites cryptographiques qu’il est capable de mettre en oeuvre ๏ Chaque suite cryptographique décrit les algorithmes et mécanismes utilisés pour les 4 fonctions suivantes : ๏ Etablissement des éléments secrets de session ๏ Authentification des parties ๏ Chiffrement des données applications ๏ Protection de l’intégrité des données applications ๏ La syntaxe est présentée ci-contre Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 16 SSL_X_WITH_Y_Z ๏ X : Désigne l’algorithme utilisé pour l’échange de clés (RSA ou Diffie-Hellman avec signatures DSS ou RSA) ๏ Y : Désigne l’algorithme de chiffrement et son mode de fonctionnement (ECB, CBC, CTR) ๏ Z : Désigne l’algorithme de hachage 1 ApplicationData ApplicationData
  • 17. Thomas Moegli Message ClientHello : Ciphers Suites SSL_NULL_WITH_NULL_NULL = { 0, 0 } SSL_RSA_WITH_NULL_MD5 = { 0, 1 } SSL_RSA_WITH_NULL_SHA = { 0, 2 } SSL_RSA_EXPORT_WITH_RC4_40_MD5 = { 0, 3 } SSL_RSA_WITH_RC4_128_MD5 = { 0, 4 } SSL_RSA_WITH_RC4_128_SHA = { 0, 5 } SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0, 6 } SSL_RSA_WITH_IDEA_CBC_SHA = { 0, 7 } SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0, 8 } SSL_RSA_WITH_DES_CBC_SHA = { 0, 9 } SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0, 10 } Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 17 Suite Cipher initiale (Aucun algorithme) Algorithme pour clé publique (Chiffrement Asymétrique) Algorithme de hachage Algorithme pour clé secrète (Chiffrement Symétrique) 1 ApplicationData ApplicationData
  • 18. Thomas Moegli Message ClientHello Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 18 Longueur Handshake 3 octets Version Majeure Version Mineure Données aléatoires (date + nombre aléatoire) = Random 32 octets long SessionID Compression choisie Compression choisie Compression 2 Longueur des Ciphersuites 2 octets Ciphersuite N° 1 Type de contenu Valeur = 1 SessionID 0 à 32 octets Ciphersuite N° 2 Compression 2 … Compression n Ciphersuite N° X Longueur compressions Compression 1 Type Handshake Valeur = 20 1 ApplicationData ApplicationData
  • 19. Thomas Moegli Message ServerHello ๏ Permet au serveur de répondre au Client Hello en précisant les éléments suivants : ๏ Deux cas de figure ๏ Aucune des propositions du client n’est jugée acceptable ➔ Le serveur met fin à la connexion via un message Alert ๏ Le serveur choisit une suite cryptographique parmi celles proposées par le client et émet le message ServerHello Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 19 2 ApplicationData ApplicationData
  • 20. Thomas Moegli Message ServerHello ๏ Eléments du message ๏ Version de serveur ๏ Données aléatoires pour générer les clés afin de limiter les risques d’attaques par rejeu ๏ Identifiant de session ๏ Peut contenir le même identifiant que celui demandé par le client (en cas de reprise de session) ๏ Peut contenir une nouvelle valeur (en cas de nouvelle session) ๏ Si la valeur est vide, le serveur a refusé la reprise de session demandée par le client ๏ Une seule CipherSuite choisie parmi celles proposées par le client ๏ Les RFC décrivant TLS ne définissent pas précisément comment le serveur doit choisir la suite cryptographique. ๏ En général : le serveur parcourt la liste fournie par le client et choisit la première suite qu’il supporte (Microsoft IIS)
 ou le serveur parcourt sa liste de préférences et prend la première suite qui se trouve dans la liste du client (Apache) ๏ Possibilité sous Apache de forcer les préférences avec la directive SSLHonorCipherOrder ๏ Une seule méthode de compression (optionnelle) ๏ Extensions éventuelles choisies par celles proposées par le client Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 20 2 ApplicationData ApplicationData
  • 21. Thomas Moegli Données aléatoires (date + nombre aléatoire) = Random 32 octets Type de contenu Valeur = 2 Longueur Handshake 3 octets Version Majeure Version Mineure long SessionID SessionID 0 à 32 octets Ciphersuite retenue 2 octets Compression choisie Message ServerHello Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 21 Type Handshake Valeur = 20 2 ApplicationData ApplicationData
  • 22. Thomas Moegli Message Certificate ๏ Permet au serveur d’envoyer un certificat au client ๏ Le certificat contient les données nécessaires à l’établissement des clés ๏ Sinon, le message 3bis permettra de les envoyer ๏ Les certificats envoyés doivent être de type X509v3 ๏ Envoi du certificat du serveur en premier ๏ Envoi du certificat de niveau supérieur ๏ etc… ๏ Le certificat racine n’est pas envoyé car il est généralement déjà présent dans le navigateur ou le logiciel Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 22 3 ApplicationData ApplicationData
  • 23. Thomas Moegli Message Certificate Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 23 Type Handshake (Valeur = 11) Longueur de la chaîne de certificats Longueur… Longueur du certificat n Longueur Certificat 1 …du 1er certificat Certificat n° … Certificat n Certificat n Longueur Handshake 3 octets Longueur de la chaîne de certificats 3 octets Longueur… Certificat 1 Certificat 1 Longueur du certificat n 3 octets Type de contenu Valeur = 11 … du 1er certificat 3 octets Type Handshake Valeur = 20 3 ApplicationData ApplicationData
  • 24. Thomas Moegli Message Server_Key_Exchange ๏ Envoyé que si les certificats du serveur ne contiennent pas toute les informations nécessaires pour créer un PremasterSecret ๏ Dans le cas de Diffie-Hellman, le message contient la clé publique du serveur Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 24 3bis ApplicationData ApplicationData
  • 25. Thomas Moegli Message Certificate Request ๏ Envoyé si le serveur souhaite également authentifier le client par un certificat ๏ Eléments du message ๏ Liste des certificats (RSA,DSS,RSA-DH,DSS-DH) que le serveur accepte ๏ (Optionnel) Liste des autorités de certifications qu’il reconnaît ๏ Est généralement utilisé dans le cadre d’un VPN avec une liste finie de clients Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 25 4 ApplicationData ApplicationData
  • 26. Thomas Moegli Autorité 1 Autorité 2 Longueur Handshake 3 octets Longueur des types de certificats Type 1 Type 2 … Type n Longueur des autorités de certification 2 octets Longueur autorité n° 1 Longueur autorité n° 2 … Type de contenu Valeur = 13 … … Message Certificate Request Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 26 Type Handshake Valeur = 20 4 ApplicationData ApplicationData
  • 27. Thomas Moegli Longueur Handshake (valeur = 0) 3 octets Type de contenu Valeur = 14 Message Server Hello Done ๏ Sert à indiquer au client que le serveur a, pour sa part, fini d’envoyer les messages de cette phase ๏ Le nombre de messages émis par le serveur dans la phase de prise de contact peut être variable Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 27 5 ApplicationData ApplicationData
  • 28. Thomas Moegli Message Client Certificate ๏ Dans le cas où une requête CertificateRequest a été émise par le serveur, ce message permet au client d’envoyer son certificat ๏ Eléments ๏ Liste de certificats ordonnée comme pour le serveur ๏ Au moins un certificat doit émaner d’une des autorités listés dans le CertificateRequest ๏ Si le client ne dispose pas d’un certificat ๏ Avec TLS, il émet un message avec une longueur de chaîne de certificats égale à zéro ๏ Avec SSLv3, il émet un message AlertProtocol de type « warning/no certificate ». ๏ Si le serveur décide de rompre la session, il émet un AlertProtocol « Fatal Handshake failure » Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 28 6 ApplicationData ApplicationData
  • 29. Thomas Moegli Message Client Key Exchange ๏ Il suit le message ClientCertificate si celui-ci existe, sinon c’est le premier message envoyé par le client ๏ Eléments ๏ Varie beaucoup suivant les algorithmes de clés publiques retenues par le serveur dans le message ServerHello ๏ Différences entre TLS et SSL Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 29 6bis ApplicationData ApplicationData
  • 30. Thomas Moegli Message Client Key Exchange ๏ Cas du RSA sous SSL : ๏ Cas du DH sous SSL : Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 30 Longueur modulo RSA 2 octets Exposant RSA Type de contenu Valeur = 12 Longueur Handshake 3 octets Modulo RSA … … Longueur exposant RSA 2 octets … Longueur valeur Ys Valeur Ys … Compression 2 … Longueur valeur p Diffie-Hellman 2 octets Type de contenu Valeur = 12 Longueur Handshake 3 octets Valeur p … Longueur valeur g … … Type Handshake Valeur = 20 Type Handshake Valeur = 20 6bis ApplicationData ApplicationData
  • 31. Thomas Moegli Message Certificate Verify ๏ N’est envoyé que si un certificat client a été envoyé du client au serveur par un message ClientCertificate et que le certificat possède des capacités de signature ๏ La signature (MD5, SHA) permet de signer tous les messages (de type Handshake) échangés entre le client et le serveur depuis le ClientHello ๏ Etapes ๏ Le client utilise la clé privée de son certificat pour calculer cette signature. ๏ Le serveur contrôle cette signature avec la clé publique du client inclus dans son certificat ๏ Si la signature est valide, le client est bien en possession de la clé privée Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 31 7 ApplicationData ApplicationData
  • 32. Thomas Moegli Signature Type de contenu Valeur = 15 Longueur Handshake 3 octets Message Certificate Verify Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 32 Type Handshake Valeur = 20 7 ApplicationData ApplicationData
  • 33. Thomas Moegli Phase de calcul du secret partagé ๏ Aucun échange à ce moment-là ๏ Chacune des deux parties (client et serveur) calcule de son côté le MasterSecret à partir des éléments préalablement échangés (PremasterSecret, nombres aléatoires) ๏ MasterSecret : longueur fixe de 48 octets ๏ Secret partagé qui sert à la génération des clés de cryptage symétrique et des signatures MAC ๏ Génération dans l’ordre suivant client_write_MAC_secret
 server_write_MAC_secret
 client_write_key
 server_write_key
 client_write_IV
 server_write_IV Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 33 ApplicationData ApplicationData
  • 34. Thomas Moegli Phase de calcul du secret partagé ๏ Formule du MasterSecret : ๏ sm = MD5(sp || SHA(‘A’ || sp || rc || rs)) ||
 MD5(sp || SHA(‘BB’ || sp || rc || rs)) ||
 MD5(sp || SHA(‘CCC’ || sp | rc || rs)) Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 34 ๏ sm : MasterSecret ๏ sp : PreMasterSecret ๏ ‘A’ : Caractère A ๏ ‘BB’ : Caractère BB ๏ ‘CCC’ : Caractère CCC ๏ rc : Nonce Client ๏ rs : Nonce Serveur ApplicationData ApplicationData
  • 35. Thomas Moegli Message Client Change Cipher Specs ๏ Via ce message, le client indique au serveur que tous les échanges seront dorénavant chiffrés et/ou authentifiés selon les paramètres négociés. ๏ Message d’un seul octet Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 35 Version Majeure Version Mineure Longueur 2 octets Longueur (Suite) Type Valeur = 1 Type de contenu Valeur = 20 Type Handshake Valeur = 20 8 ApplicationData ApplicationData
  • 36. Thomas Moegli Message Client Finished ๏ Envoi d’un message chiffré Finished contenant un hachage et un code MAC couvrant tous les messages Handshake déjà échangés ๏ Message déchiffré par le serveur. Si la tentative de déchiffrement échoue, le serveur rejettera le handshake et mettra un terme à la connexion. Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 36 Type Handshake (Valeur = 20) Longueur (valeur = 36) Hachage MD5 Hachage SHA Version Majeure Version Mineure Longueur 3 octets, Valeur = 36 Hachage MD5 16 octets Compression choisie Compression choisie Compression 2 Type Handshake Valeur = 20 Hachage SHA 20 octets 8bis ApplicationData ApplicationData
  • 37. Thomas Moegli Message Server Change Cipher Specs ๏ Via ce message, le serveur indique au client que tous les échanges seront dorénavant chiffrés et/ou authentifiés selon les paramètres négociés. Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 37 9 ApplicationData ApplicationData
  • 38. Thomas Moegli Message Server Finished ๏ Le serveur envoie un message chiffré Finished contenant un hachage et un code MAC qui couvre tous les messages Handshake déjà échangés. ๏ Le client procède au déchiffrement et à l’authentification du message Finished du serveur ๏ Si tout est OK, la phase Handshake est terminée. Les échanges de données peuvent commencer (Application Phase). Protocole SSL/TLS Protocole Handshake et Change Cipher Spec 38 9bis ApplicationData ApplicationData
  • 39. Thomas Moegli Version Majeure Version Mineure Longueur 2 octets Données applicatives (chiffrées) Type de contenu Valeur = 23 MAC Longueur (suite) ๏ Les données d’application sont transportées dans ce type de message ๏ Donnés chiffrées et éventuellement signées Protocole SSL/TLS Protocole Application 39 ApplicationData
  • 40. Thomas Moegli ๏ Messages ayant pour but de signaler une erreur fatale (entraînant une fermeture de session) ou une simple alerte (qui laisse à l’autre extrémité de décider ou non de la rupture de la connexion) ๏ Comprend un code d’erreur ๏ Peut également être employé pour signaler la fin normale de la phase Application Protocole SSL/TLS Protocole Alert 40 Niveau alerte Warning (valeur = 1) Fatal (valeur = 2) Description de l’alerteDescription de l’alerte Niveau d’alerte 1 octet Warning : Valeur = 1 Fatal : Valeur = 2 ApplicationData
  • 42. Thomas Moegli ๏ Comme les calculs liés aux clés asymétriques prennent du temps et des ressources, SSL/TLS permet de reprendre une session déjà existante lorsque le client a de nouveau besoin d’échanger des données avec le serveur ๏ Le client reprend dans le ClientHello (1) le numéro de session en cours d’utilisation ๏ Ce numéro permet aux deux parties de conserver le même MasterSecret ๏ Les nombres aléatoires émis dans les messages ClientHello et ServerHello seront différents de la session précédente
 ➔ Génération de clés différentes ๏ Les échanges de messages Hello sont directement suivis des messages Change CipherSpec et Finished avant de passer à la phase Data ๏ Si le serveur ne retrouve pas dans sa table la valeur SessionID du client, il lui proposera un autre identifiant de session ๏ Le client devra procéder à un Handshake complet sans reprise de session Protocole SSL/TLS Reprise de session existante 42
  • 43. Thomas Moegli Protocole SSL/TLS Reprise de session existante 43 CLIENT SERVEUR 1 - ClientHello 2 - ServerHello 3 - ChangeCipherSpec 4 - Finished 5 - ChangeCipherSpec 6 - Finished
  • 44. Thomas Moegli Fonctionnement de DH pour TLS 1. Le serveur doit initialement disposer (via la commande openssh, dhparam par ex.) de : ๏ p : un grand nombre premier ๏ g : un générateur, aussi appelé racine primitive modulo p 
 (pour chaque entier a premier avec p, il existe un entier k tel que gk ≡ a (mod p) 2. Le serveur choisit un nombre aléatoire a et calcule ya = ga mod p.
 Après l’envoi du message Certificate, il envoie un message Server Key Exchange contenant, en clair mais authentifié par sa clé privée : ๏ La valeur aléatoire issue du message Client Hello ๏ La valeur aléatoire issue du message Server Hello ๏ les nombres p et g ๏ le résultat ya Protocole SSL/TLS Algorithme de Diffie-Hellman 44
  • 45. Thomas Moegli Fonctionnement de DH pour TLS (suite) 3. Le client vérifie la signature et choisit un nombre aléatoire b. Il envoie yb = gb mod p dans un message Client Key Exchange.
 En ayant reçu ya du serveur, il calcule (ya)b mod p = k qui constitue le secret partagé 4. Le serveur reçoit yb calcule (yb)a mod p = k qui constitue le secret partagé Protocole SSL/TLS Algorithme de Diffie-Hellman 45
  • 46. Thomas Moegli IPsec VPN ๏ Très déployé, technologie maîtrisée ๏ Permet facilement l’extension du réseau pour des succursales ๏ Client lourd à déployer (avant la connexion) et maintenir ๏ Nécessite l’ouverture de ports supplémentaires sur le pare-feu ๏ UDP/500 + ESP (50) + UDP/4500 + … ๏ Souvent, ces ports ne sont pas ouverts par défaut Protocole SSL/TLS Comparaison avec IPsec 46 SSL VPN ๏ Permet d’étendre la sécurité du réseau à des personnes externes à l’entreprise (clients, partenaires commerciaux) ๏ Simplifie l’accès aux partenaires business ๏ Propose un accès depuis quasi n’importe quel emplacement (Internet café, mobile, etc…) ๏ Souvent, le port est déjà ouvert sur les firewall ๏ Exemple : Port TCP 443 ๏ Permet des portails d’accès utilisateur personnalisés ๏ Réduit les coûts d’exploitation
  • 47. Thomas Moegli Avantages ๏ Pas ou peu de logiciels à installer & maintenir sur PC ๏ Accès sécurisé aux ressources internes ๏ Intégration de policies pour vérifier l’état des client qui se connectent ๏ Sécurité point à point (Endpoint security) avec Cisco Secure Desktop ๏ Plusieurs niveaux d’accès ๏ Clientless – Thin Client – Thick Client ๏ Intégration facile avec les pare-feu ๏ SSL over TCP/443 Protocole SSL/TLS Avantages et Inconvénients 47 Inconvénients ๏ Moins sécurisé pour l’authentification utilisateur que IPsec ๏ S’assurer que les certificats sont de confiance ๏ Les policies impliquent plus d’administration ๏ Solutions NAC et Endpoint security propriétaires ๏ Solutions Cisco Thin Client et Clientless nécessitent Java JRE et support ActiveX ๏ Impossible de faire du VPN Site-to-Site
  • 48. Thomas Moegli ๏ L’IANA a accordé à certaines applications des ports IP particuliers pour leur permettre de communiquer avec SSL sans interférence Protocole SSL/TLS Protocoles applicatifs et SSL/TLS 48 Protocole non sécurisé Protocole sécurisé Port Application HTTP HTTPS TCP 443 Transactions requête-réponse SMTP SSMTP TCP 465 Messagerie électronique NNTP SNNTP TCP 563 News sur le réseau Internet LDAP SSL-LDAP TCP 636 Annuaire X.500 POP3 SPOP3 TCP 995 Accès à la boîte aux lettres FTP FTPS (Données) TCP 989 Transfert de fichiers FTP FTPS (Contrôle) TCP 990 Contrôle du transfert de fichiers IMAP IMAPS TCP 991 Accès à la boîte aux lettres
  • 49. Thomas Moegli Merci de votre attention ! thomas.moegli@icloud.com Références Transport Layer Security, Wikipedia.org 
 [https://en.wikipedia.org/w/index.php?title=Transport_Layer_Security&oldid=711145576] Les VPN : Fonctionnement, mise en oeuvre et maintenance des Réseaux Privés Virtuels, ENI Editions (J-P. Archier) Réseaux Privés Virtuels - VPN, Frameip [http://www.frameip.com/vpn/] (X. Lasserre, T. Klein, _SebF) SSL/TLS : Etat des lieux et recommandations, ANSSI : Agence nationale de la sécurité des systèmes d’information 
 [http://www.ssi.gouv.fr/uploads/IMG/pdf/SSL_TLS_etat_des_lieux_et_recommandations.pdf] (O. Levillain) 49