faille openssl heartbleed

19
Jean-François (Jeff) AUDENARD – CyberSecurity Advisor – Orange Business Services faille OpenSSL Heartbleed 8es Rencontres de l’ARCSI Toulouse 13 Juin 2014 …. et un peu plus v1r0 – 12 Juin 2014

Upload: salene

Post on 23-Feb-2016

113 views

Category:

Documents


0 download

DESCRIPTION

faille OpenSSL Heartbleed. …. et un peu plus. 8es Rencontres de l’ARCSI Toulouse 13 Juin 2014. Jean-François (Jeff) AUDENARD – CyberSecurity Advisor – Orange Business Services. v1r0 – 12 Juin 2014. agenda. pour commencer, quelques révisions une connexion SSL comment ça marche ? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: faille  OpenSSL Heartbleed

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

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

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

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

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

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

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

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

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

Orange - diffusion libre - page #10

Heartbleed - test

http://bit.ly/1iBexs1

Page 11: faille  OpenSSL Heartbleed

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

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

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

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

Orange - diffusion libre - page #15

http://www.oran.ge/securite

Page 16: faille  OpenSSL Heartbleed

des questions ?

des réponses !

Page 17: faille  OpenSSL Heartbleed

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

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

merci !