faille OpenSSL Heartbleed
description
Transcript of faille OpenSSL Heartbleed
![Page 1: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/1.jpg)
Jean-François (Jeff) AUDENARD – CyberSecurity Advisor – Orange Business Services
faille OpenSSL Heartbleed
8es Rencontres de l’ARCSI
Toulouse13 Juin 2014
…. et un peu plus
v1r0
– 1
2 Ju
in 2
014
![Page 2: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/2.jpg)
Orange - diffusion libre - page #2
agenda
1.pour commencer, quelques révisions
2.une connexion SSL comment ça
marche ?
3.fonctionnement de Heartbleed
4.répondre à Heartbleed... les principes
5.conclusion
![Page 3: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/3.jpg)
Orange - diffusion libre - page #3
quelques révisions
une seule et même clef pour chiffrer et déchiffrer
• partage nécessaire de la clef
• renouvellement fréquent
ex: AES, Camellia
chiffrement symétrique
deux clefs intimement liéesclef publique / privée
ce que chiffre l’une des clefs, l’autre le déchiffre
ex: RSA
chiffrement asymétrique
un « condensé » d’infos
• non réversible• non prédictible
ex: MD5, SHA, ….
condensat / hash-code
chiffrement d’un hash-code avec la partie privée d’une
clef RSA
vérification d’authenticité
Ex: RSA
signature
![Page 4: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/4.jpg)
Orange - diffusion libre - page #4
phases d’une connexion SSL
client serveur
passage en mode chiffré sur base
de la clef négociée en (#2) et algorithmes en
(#1)
les messages sont chiffrés et
confidentiels
négociation des algorithmes
& authentification
du serveurnégociation clef de chiffrement
![Page 5: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/5.jpg)
Orange - diffusion libre - page #5
certificat SSL et pre-master
vérification du certificat SSLLe client vérifie la validité du certificat
SSL envoyé par le serveur
OCSP, CRL
Certificate Pinning, Perspectives, …
échange d’une pre-master keyle client génère la “pre-master key” et l’envoie au serveur chiffrant celle-ci à
l’aide de la clef publique RSA du serveur
négociation d’une pre-master keyle client et le serveur négocient la « pre-master key » sans jamais la transmettre
Diffie-Hellman
RSA
![Page 6: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/6.jpg)
Orange - diffusion libre - page #6
messages TLS
client serveur
messages TLS
Alert21
• permet de maintenir active une session• peut être émis dès la phase de négociation et durant toute la phase
d’échange de données
Heartbeat24
Handshake22
ChangeCipherSpec20
Heartbeat24
Application23
![Page 7: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/7.jpg)
Orange - diffusion libre - page #7
TLS Heartbeat Request/Response
HELLOPROFF (10 bytes)
Padding (16 bytes)
18
Heartbeat message
24 (0x18)
Record Length
29 (0x1D)
TLS Version
03 03 : TLS 1.2
Heartbeat Message
Type
01 – Request02 - Response
Payload Length
10 (0x0A)
00 1D03 03 01
00 0A
Record-Length(1 + 2 + 10 + 16)
lors de la réception du « HB Request », cette valeur est utilisée par le serveur
pour allouer un espace mémoire en RAM et y stocker le contenu
(« HELLOPROFF ») du HeartBeatPayload-Length
Lors de la construction de la réponse « HB Response »,
cette valeur est utilisée pour compter le nombre d’octets
mémoire à lire depuis la RAM et à envoyer
si Payload-Length > (Record-Length -1 – 2 -16 ) alors
car lecture d’informations dans la RAM au-delà de celles reçues…
Heartbeat Payload
« HELLOPROFF » ! * *
![Page 8: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/8.jpg)
Orange - diffusion libre - page #8
TLS heartbeat Request (non-Heartbleed)
RAM (heap)
<…>
RSA-PrivateKeyusername=prof
pass=secret
Request Length = 29Payload Length = 10(Actual Length = 10)
HELLOPROFFTLS heartbeat Request1
Emission d’un message TLS de contrôle « Heartbeat Request »
1
Le serveur réceptionne le message, alloue de la mémoire pour le stocker
2
TLS heartbeat Response
Response Length = 29
Payload Length = 10(Actual Length = 10)
HELLOPROFF
4
Le serveur créé la « Heartbeat Response » en recopiant le message présent en RAM
3
Emission du message TLS de contrôle « Heartbeat Response »4
3
length=10HELLOPROFF
2
![Page 9: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/9.jpg)
Orange - diffusion libre - page #9
TLS heartbeat Request (Heartbleed)
RAM (heap)
<…>
RSA-PrivateKeyusername=prof
pass=secret<garbage>
Emission d’un message TLS de contrôle « Heartbeat Request »
1
Le serveur réceptionne le message, alloue de la mémoire pour le stocker
2
Le serveur créé la « Heartbeat Response » mais va au-delà de la Payload et recopie dans la réponse le contenu d’une partie la mémoire du serveur
3
Emission d’un message TLS de contrôle « Heartbeat Response » contenant des données sensibles
4
HEARTBLEED
2Request Length = 29
Payload Length = 16384
(Actual Length = 10)
HEARTBLEEDTLS heartbeat Request1
TLS heartbeat Response
4 <garbage>pass=secret
username=profRSA-PrivateKey
Payload Length = 16384
HEARTBLEED
3
length=16384
![Page 10: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/10.jpg)
Orange - diffusion libre - page #10
Heartbleed - test
http://bit.ly/1iBexs1
![Page 11: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/11.jpg)
Orange - diffusion libre - page #11
Heartbleed – conséquences & impacts
Informations récupérables via Heartbleed– Clef RSA privée du serveur– Clefs de session TLS– Tickets de session TLS– Données confidentielles (mots de passe, cookies, …)– Données à caractère personnel– …
Conséquences– Attaques en MitM (Man in the Middle)– Déchiffrement des sessions en cours– Accès non-autorisés– Déchiffrement des échanges antérieurs
le tout sans laisser de traces dans les logs …
![Page 12: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/12.jpg)
Orange - diffusion libre - page #12
qui est concerné ?serveurs clientsHeartbleed
reverse Heartbleed
VoIPVisio
Conference (DTLS)
Wifi (EAP-TLS)
Services Cloud
logiciels/systèmes propriétaires
logiciels/systèmes
Opensource
HTTPSIMAP/POP3/SMTP
(STARTTLS)VPN-SSL
![Page 13: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/13.jpg)
Orange - diffusion libre - page #13
principes d’actions en réponse à HeartBleed
évaluation du contexte
identification des systèmes impactésdéfinition d’une stratégie de réponsedéploiement des contre-mesures (patchs)
renouvellement des clefs et certificats
changement des mots de passe
![Page 14: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/14.jpg)
Orange - diffusion libre - page #14
importance de la communication et
synchronisation des actions (en interne et en
externe)
la crypto est restée fiable c’est sa mise en
œuvre qui a été défaillante
accélérer la maitrise de la cryptographie et des conditions de mise en
œuvre
nécessité d’intégrer les services Cloud dans la
gestion des vulnérabilités et
incidents
inventaire des systèmes internes
et externes et contacts associés
conclusion
![Page 15: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/15.jpg)
Orange - diffusion libre - page #15
http://www.oran.ge/securite
![Page 16: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/16.jpg)
des questions ?
des réponses !
![Page 17: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/17.jpg)
Orange - diffusion libre - page #17
clef privée compromise : c’est grave professeur ?
temps
clef privéecompromise
… mais pas seulement !
attaques en MitM (Man in the Middle)
![Page 18: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/18.jpg)
Orange - diffusion libre - page #18
la confidentialité des communications passées est
conservée
la confidentialité des communications passées est
compromise
PFS (Perfect Forward Secrecy)
1
2
si les échanges SSL ont été enregistrés, la « pre-master key » peut être déchiffrée à postériori
la clef privée du serveur web ne permet aucunement de recouvrir la « pre-
master key »
1 2
PFS via DHE ou ECDHEpas de PFS avec échange RSA
![Page 19: faille OpenSSL Heartbleed](https://reader035.fdocuments.net/reader035/viewer/2022081505/5681643d550346895dd60902/html5/thumbnails/19.jpg)
merci !