DROWN  : quand des failles SSLv2 permettent de décrypter des connexions TLS

DROWN : quand des failles SSLv2 permettent de décrypter des connexions TLS

Ne pas supporter SSLv2 n'est pas suffisant...

Avatar de l'auteur
Sébastien Gavois

Publié dans

Internet

02/03/2016 12 minutes
23

DROWN  : quand des failles SSLv2 permettent de décrypter des connexions TLS

Des chercheurs viennent de publier les détails d'une importante faille de sécurité baptisée DROWN. En utilisant des faiblesses de SSLv2, elle permet de décrypter des connexions chiffrées utilisant TLS. De plus, une brèche d'OpenSSL peut accélérer grandement les calculs. Dans certains cas, l'opération prend moins d'une minute.

Au cours des derniers mois, la découverte et la publication de failles critiques se font à un rythme relativement soutenu, et ce n'est pas fini. En effet, après Heartbleed, Ghost, POODLE, FREAK et Logjam (entre autres), c'est au tour de DROWN de faire parler d'elle (c'est la mode de donner un petit nom et un logo aux failles de sécurité). Les conséquences peuvent être fâcheuses puisqu'il est question de décrypter rien de moins que « toutes les communications entre les utilisateurs et un serveur », ce qui comprend notamment les mots de passe et les coordonnées bancaires. Selon l'équipe de chercheurs à l'origine de cette découverte, 33 % des serveurs HTTPS dans le monde seraient vulnérables, une paille.

Encore une histoire qui remonte aux années 90

Pour commencer, DROWN est l'acronyme de Decrypting RSA with Obsolete and Weakened eNcryption, ou bien décrypter RSA avec un chiffrement faible et obsolète, dans la langue de Molière. Comme dans le cas de FREAK et de Logjam, le cœur du problème remonte aux années 90, une époque où les États-Unis limitaient volontairement la taille des clés de chiffrement pour l'exportation afin de se laisser la possibilité de décrypter un message si besoin. Le fautif est en effet le protocole SSLv2 qui date de 1995 et n'offre pas une sécurité suffisante. Même si on le savait depuis longtemps, l'ensemble prend une autre tournure aujourd'hui.

Ce protocole a d'ailleurs été officiellement abandonné en mars 2011 par l'IETF (une décision qui arrivait déjà très tard). Même son de cloche chez Olivier Levillain de l'ANSSI qui, en 2012, indique sans détour que « la version SSLv2 est dangereuse et ne doit pas être employée ». Aujourd'hui, SSLv3 doit également être abandonné au profit de TLS, qui est d'ailleurs généralement utilisé. 

Quand SSLv2 permet de casser une connexion TLS

Toutefois, « en raison d'erreurs de configurations, de nombreux serveurs prennent toujours en charge SSLv2 » expliquent les chercheurs. Ils ajoutent que « cela n'a pas d'importance dans la pratique, car aucun navigateur à jour n'utilise SSLv2. Par conséquent, même si SSLv2 est connu pour être mal sécurisé, continuer à le supporter n'était pas considéré comme un problème de sécurité jusqu'à maintenant ». Mais conserver une technologie obsolète n'est jamais une bonne idée, l'histoire va nous le prouver une fois de plus.

En effet, c'est justement sur l'omniprésence de ce maillon faible (SSLv2) que repose la faille DROWN : « Elle permet à un attaquant de décrypter les connexions TLS modernes entre des navigateurs à jour et des serveurs par l'envoi de "sondes" à un serveur qui prend en charge SSLv2 et qui utilise la même clé privée ».

Pour simplifier, un pirate n'a besoin que de « casser » du SSLv2 pour ensuite accéder aux données échangées via le protocole TLS. Tous les détails techniques se trouvent par ici.

Une variante de l'attaque de Bleichenbacher

L'équipe de chercheurs explique que DROWN est une nouvelle version de l'attaque cryptographique du suisse Daniel Bleichenbacher. Dans son état des lieux et recommandations sur le SSL/TLS (page 8), Olivier Levillain de l'ANSSI la décrit assez simplement.

Sans entrer dans tous les détails, un attaquant établit de très nombreux échanges SSL avec un serveur et analyse les codes d'erreurs retournés par le serveur afin de décrypter le ClientKeyExchange du serveur et ainsi trouver le Pre-master secret. « Il pourra alors obtenir les clés de session et déchiffrer la totalité du trafic capturé » explique le chercheur de l'ANSSI.

Dans le cas de DROWN, un pirate devra commencer par observer « plusieurs centaines d'échanges » (voir des dizaines de milliers) entre un utilisateur et un serveur, ce qui peut prendre beaucoup de temps. Afin d'accélérer cette opération, il est possible de créer un site web spécialement conçu pour établir de nombreuses connexions en arrière-plan.

« Les connexions peuvent utiliser n'importe quelle version du protocole SSL/TLS, y compris TLS 1.2, tant qu'ils utilisent la méthode d'échange de clés RSA » expliquent les chercheurs à l'origine de la découverte de DROWN. Le pirate se connecte ensuite au serveur SSLv2 (soit sur la même machine, soit sur un autre serveur qui utilise le même certificat) et envoie des demandes de prises de contacts basées sur les messages qui viennent d'être interceptés (ils sont modifiés d'une certaine manière, mais le détail n'est pas précisé pour le moment afin de limiter les risques). Le serveur SSLv2 renverra alors un message différent selon qu'il arrive ou non à déchiffrer ce message. À ce moment-là, le pirate ne peut pas encore connaitre le contenu exact du message, mais il engrange des détails sur la clé utilisée. En répétant l'opération de nombreuses fois, le contenu d'une connexion peut être décrypté. 

DROWNDROWN

Moins d'une minute pour déchiffrer une connexion à cause d'une faille OpenSSL

Cette fuite de données peut prendre deux formes suivant la configuration du serveur. « Dans la variante la plus générale de DROWN, l'attaque exploite une faiblesse fondamentale du protocole SSLv2 sur l'exportation cryptographie introduite dans les années 90 afin de se conformer aux restrictions du gouvernement des États-Unis ». Le chiffrement des clés de sessions RSA n'est alors plus que de... 40 bits, ce qui laisse un nombre considérable de possibilités, sans rien d'insurmontable.

« Environ 40 000 connexions de la sonde et 2^50 opérations sont nécessaires pour déchiffrer 1 connexion TLS de la victime sur 900 ». D'après les estimations des chercheurs, cela prendrait moins de 8h et coûterait environ 440 dollars pour mener à bien ce genre de calcul sur des instances EC2 d'Amazon. Bien évidemment, une organisation disposant d'une grosse capacité de calcul peut également se servir de ses propres infrastructures.

Mais il est possible de grandement accélérer les opérations dans certains cas. En effet, si le serveur utilise une version d'OpenSSL plus ancienne que les 1.0.2a, 1.0.1m, 1.0.0r ou 0.9.8zf, alors l'attaque prendra « moins d'une minute à l'aide d'un seul PC » (il n'est plus question que de 17 000 connexions pour obtenir la clé de 1 connexion TLS sur 260). En cause, une faille d'OpenSSL identifiée pour la référence CVE-2016-0703 et qui vient d'être corrigée. Notez que ce ne sont pas les seuls changements dans OpenSSL puisque pas moins de huit correctifs sont référencés dans la fournée du 1er mars.

Dans ce second cas, la rapidité d'exécution permet de mettre en place une attaque de type homme du milieu, ce qui autorise le pirate à se faire passer pour le serveur auprès du client. Il accède alors à toutes les informations envoyées par ce dernier et peut lui même renvoyer ce qu'il veut en se faisant passer pour le serveur. Là encore, les chercheurs annoncent qu'ils ont « été en mesure d'exécuter une attaque de ce type en moins d'une minute sur un seul PC ».

On notera tout de même un point qui pourrait presque faire office de bonne nouvelle : « DROWN ne permet à un attaquant de décrypter qu'une connexion à la fois. Le pirate ne récupère pas la clé privée du serveur ». Il n'est donc pas nécessaire de changer de certificat.

DROWN

Comment savoir si un serveur est vulnérable ?

Pour qu'un serveur puisse être attaqué via la faille DROWN, il suffit que l'une des deux possibilités suivantes soit vérifiée :

  • Il autorise les connexions SSLv2 (ce qui représenterait 17 % des serveurs HTTPS selon les chercheurs)
  • Il partage le même certificat qu'un autre serveur qui supporte SSLv2 (16 % des serveurs HTTPS selon les chercheurs)

Problème, il n'est pas toujours facile de savoir si SSLv2 est pris en charge ou non par un serveur. Un outil comme SSLLabs permet d'obtenir un premier retour, mais uniquement sur le HTTPS. Or, si un autre serveur (type SMTP, IMAP, POP, etc.) utilise le même certificat et supporte SSLv2, le serveur principal est lui aussi vulnérable, même si ce dernier n'accepte que tu TLS 1.2 par exemple.

Une petite application a été mise en ligne sur Github (elle ne peut détecter qu'un seul port à la fois), ainsi qu'un outil en ligne (pensez à vérifier tous vos serveurs sans exception) :

Comme le résume le spécialiste des réseaux Stéphane Bortzmeyer sur son blog, « bien des gens croient que, puisque leur serveur HTTPS n'accepte pas SSLv2, ils sont en sécurité. Rien n'est plus faux [...] pour effectuer cette attaque, il suffit que le certificat du site visé (et donc la clé privée) soit disponible sur un autre site, qui, lui, accepte SSLv2 ».

Il ajoute avoir été surpris car ce genre de situation est finalement assez fréquent, notamment parce que « le modèle de financement des autorités de certification encourage à acheter le moins de certificats possible, et donc à les utiliser sur plusieurs serveurs, ou bien sur le serveur de production et sur celui de développement ».

Comment se protéger ? Faut-il mettre à jour son navigateur ? 

DROWN est une faille côté serveur et mettre à jour son navigateur ne servira à rien pour se protéger. Côté client, il n'y a donc rien de particulier à faire.

Pour les serveurs, il faut éradiquer la prise en charge de SSLv2 et vérifier qu'aucun serveur partageant le même certificat n'autorise ce protocole complètement dépassé des années 90. Il faut également penser à vérifier sa version d'OpenSSL à cause d'une autre faille (CVE-2015-3197) qui a été corrigée dans les versions 1.0.1r et 1.0.2f. Elle permettait quand même de forcer l'utilisation de SSLv2 dans certains cas.

C'est également le bon moment pour changer sa politique de sécurité et arrêter de partager des certificats sur plusieurs serveurs. De plus amples détails sont donnés sur le site de DROWN.

Faut-il paniquer tout de suite ? 

Comme à chaque fois qu'une faille de ce genre remonte à la surface, la question de sa dangerosité et de sa gravité se pose. Est-on face à une brèche du type Heartbleed qui laisse n'importe qui récupérer des données sensibles simplement en entrant l'adresse d'un serveur, ou plutôt dans une situation proche de FREAK qui nécessitait un gros effort pour accéder aux données ?

La dangerosité de Drown n'est pas facile à évaluer reconnait Stéphane Bortzmeyer sur son blog : « On est dans le cas classique en sécurité du verre que l'optimiste voit à moitié plein alors que le pessimiste le voit à moitié vide. L'optimiste va faire remarquer que l'exploitation effective de Drown est très difficile, dans les conditions du monde réel (en laboratoire, ça marche toujours mieux). Le pessimiste rétorquera que les attaques ne vont toujours qu'en s'améliorant ». La réalité se trouve probablement entre les deux.

De leur côté, les chercheurs expliquent qu'ils ne pensent pas que la faille soit activement exploitée pour le moment et ils n'ont pas publié de prototype permettant d'en tirer parti, car « il y a encore trop de serveurs vulnérables ». Nul doute que maintenant qu'elle est connue, des pirates vont s'engouffrer dans la brèche.

La charge des chercheurs contre le gouvernement américain

En guise de conclusion, les chercheurs s'en prennent directement au gouvernement américain et à sa gestion du chiffrement dans les années 90, qui a des répercussions importantes 20 ans plus tard :

Pour la troisième fois en un an, une faille de sécurité majeure d'Internet résulte de la façon dont la cryptographie a été affaiblie par les politiques gouvernementales américaines qui limitaient l'exportation cryptographique jusqu'à la fin des années 90.

Bien que ces restrictions, évidemment conçues pour faciliter le décryptage par la NSA de communications de personnes à l'étranger, aient été assouplies il y a près de 20 ans, la cryptographie affaiblie reste dans les spécifications des protocoles et continue aujourd'hui d'être prise en charge par de nombreux serveurs, ajoutant de la complexité - et une potentielle grave défaillance - à certaines des fonctionnalités de sécurité les plus importantes d'Internet.

Bien évidemment, en trame de fond il est question du débat actuel sur le chiffrement et sur l'instauration de portes dérobées pour permettre aux autorités d'accéder aux données. Pour les chercheurs, « l'affaiblissement de la cryptographie représente un risque énorme pour l'ensemble de notre sécurité » et DROWN en est l'un des exemples, avec FREAK et Logjam. En effet, avec une porte dérobée installée sur un logiciel, la question n'est pas de savoir si elle sera découverte et exploitée, mais quand.

Écrit par Sébastien Gavois

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Encore une histoire qui remonte aux années 90

Quand SSLv2 permet de casser une connexion TLS

Une variante de l'attaque de Bleichenbacher

Moins d'une minute pour déchiffrer une connexion à cause d'une faille OpenSSL

Comment savoir si un serveur est vulnérable ?

Comment se protéger ? Faut-il mettre à jour son navigateur ? 

La charge des chercheurs contre le gouvernement américain

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (23)


Pour avoir suivi le truc sur les réseaux sociaux, y’a pas mal de grosses enseignes touchées (yahoo, mcafee).


“Problème, il n’est pas toujours facile de savoir si SSLv2 est pris en charge ou non par un serveur. Un outil comme SSLLabs permet d’obtenir un premier retour, mais uniquement sur le HTTPS. Or, si un autre serveur (type SMTP, IMAP, POP, etc.) utilise le même certificat et supporte SSLv2, le serveur principal est lui aussi vulnérable, même si ce dernier n’accepte que tu TLS 1.2 par exemple.”



Ça c’est la merde…


Avec Heartbleed mon smartphone sonnait constamment de demandes de validation d’authentification, une fois la faille rebouchée j’ai dû changer tous mes mots de passe. Si je n’utilisais pas Keepass j’aurais fondu tout une boîte à fusibles.

Visiblement, je vais devoir bientôt recommencer… <img data-src=" />




Pour la troisième fois en un an, une faille de sécurité majeure d’Internet résulte de la façon dont la cryptographie a été affaiblie par les politiques gouvernementales américaines qui limitaient l’exportation cryptographique jusqu’à la fin des années 90.



Bien que ces restrictions, évidemment conçues pour faciliter le décryptage par la NSA de communications de personnes à l’étranger, aient été assouplies il y a près de 20 ans, la cryptographie affaiblie reste dans les spécifications des protocoles et continue aujourd’hui d’être prise en charge par de nombreux serveurs, ajoutant de la complexité - et une potentielle grave défaillance - à certaines des fonctionnalités de sécurité les plus importantes d’Internet.





D’un autre coté ca fait donc 20 ans qu’on aurait du mettre un terme (entamer le retrait) à SSL et SSLv2. Enfin ca montre quand même que les compromis sur la sécurité ne sont jamais une bonne idée… et les gouvernements nous parlent d’implémenter des backdoors, master key etc. <img data-src=" />


En effet, avec une porte dérobée installée&nbsp;sur un logiciel, la question n’est pas de savoir si elle sera découverte et exploitée, mais quand.&nbsp;<img data-src=" />A&nbsp;répéter&nbsp;en boucle.Ce que je me tue à expliquer à mes clients : “la sécurité n’est pas un produit (logiciel ou matériel) c’est un process”




En effet, avec une porte dérobée installée&nbsp;sur un logiciel, la question

n’est pas de savoir si elle sera découverte et exploitée, mais quand.





Vu les discussion actuelles en France, certains politiques devraient se renseigner un peu plus sérieusement sur ce sujet.


Lorsque l’on réalise le test sur www.microsoft.com, y’a pas mal de retours xD

Idem pour Apple.com …

Rien sur www.linux.com

&nbsp;

<img data-src=" />


rha en pleine semaine de repos&nbsp;<img data-src=" />

&nbsp;j’ai déjà 2 épisodes de The Walking Dead de retard, la sécu attendra&nbsp;<img data-src=" />


mon serveur sans TLS est safe! <img data-src=" />


Comme à chaque fois qu’une faille sur la crypto est trouvée, j’ai l’impression d’être un abruti fini en lisant le PDF détaillé … rassurez moi j’suis pas tout seul ?&nbsp;

<img data-src=" />


ah ben c’est des math, c’est certain qu’il faut pas avoir arrêté au Bac. <img data-src=" />

et comme les papiers sont en anglais, ça limite le nombre de gens capables de comprendre.

lis plutôt la note de blog de Bortzmeyer, c’est plus facile à lire, et c’est moins long et moins technique.








Aytine a écrit :



Comme à chaque fois qu’une faille sur la crypto est trouvée, j’ai l’impression d’être un abruti fini en lisant le PDF détaillé … rassurez moi j’suis pas tout seul ? 

<img data-src=" />







Avec les nouveaux programmes de l’éducation nationale concernant l’introduction à l’informatique et la programmation, ca sera bientôt du niveau CM2 ton pdf de sécu <img data-src=" />









nekogami a écrit :



Lol ? …





https://test.drownattack.com/?site=impots.gouv.fr





L’Etat est un irresponsable, la preuve avec ce service de consultation de points de permis https://tele7.interieur.gouv.fr/



Impossible d’y accéder car suites de chiffrement en RC4. J’ai mailé 2x le ministère de l’intérieur, 0 réponse.









nekogami a écrit :



Lol ? …





https://test.drownattack.com/?site=impots.gouv.fr





On va dire qu’Il vont / ont deja &nbsp;patch pour la vulnerabilite OpenSSLCVE-2016-0703&nbsp;&nbsp;vu que les donnees datent de fevrier …

Non?! J’ai trop confiance en mon gouvernement?&nbsp;<img data-src=" />



énorme celle là ! O_O&nbsp;comment c’est possible de laisser trainer un truc pareil.



remarque… je dev un site pour une grande banque nationale, préférée des agriculteurs. On doit mettre en place le certif pour le&nbsp;https://www.xxxx.com



C’est eux qui gère le nom de domaine, et moi le dédié et toute la zone SOA, donc je founi le .crt pour le www.xxx.com et le xxx.com (en précisant en plus que je redirigerai le sans www sur les www) Donc il me réponde ou est le deuxième certif pour le sans www et “quelle entrée DNS à mettre pour valider le serveur”? c’est quoi”?



Donc bon… dès qu’il y’a beaucoup de gens à gérer des petits bouts de truc à droite à gauche, c’est le binz et plus rien n’avance. En attendant on accède au site en validant l’exception de sécurité ‘attention site potentiellement dangereux’&nbsp;<img data-src=" />


Ils sont peut être obligés de garder la version d’activée car il y en a qui paye leurs impôts avec un XP et IE6, va savoir !<img data-src=" />



Quand il y a trop de fragmentations d’OS, de navigateurs etc.. ça finit par être le merdier <img data-src=" />


Oui c’est souvent le bazar pour trouver la bonne personne.

&nbsp;J’ai eu une bonne surprise il y a peu chez Meteofrance, ils ont comme prestataire Atos qui gère leurs serveurs et un des certifs était en RC4 ce qui a cassé le fonctionnement de leurs widgets météo sous Firefox 44 (et d’autres navigateurs), en 1 matinée ça été corrigé et même un gars de MF m’a mailé pour me demander si c’était rentré dans l’ordre.

Idem pour un site de candidature à la Banque de France, 2 relances via Twitter en 1 mois pour obtenir un certificat SSL récent… et qui permette d’accéder au site. <img data-src=" />


Nan mais ce qui est drôle c’est que

mon.service-public.fr par contre, c’est tranquille.

Je me demande sérieusement comment c’est “organisé” ce beau bordel.


L’erreur ne peux venir d’Atos, ça devait être un prestataire du prestataire !&nbsp;<img data-src=" />








Crysalide a écrit :



Oui c’est souvent le bazar pour trouver la bonne personne.

&nbsp;J’ai eu une bonne surprise il y a peu chez Meteofrance, ils ont comme prestataire Atos qui gère leurs serveurs et un des certifs était en RC4 ce qui a cassé le fonctionnement de leurs widgets météo sous Firefox 44 (et d’autres navigateurs), en 1 matinée ça été corrigé et même un gars de MF m’a mailé pour me demander si c’était rentré dans l’ordre.

Idem pour un site de candidature à la Banque de France, 2 relances via Twitter en 1 mois pour obtenir un certificat SSL récent… et qui permette d’accéder au site. <img data-src=" />





Mouarf <img data-src=" />. Ça me rassure finalement, c’est le binz un peu partout dans les grands compte. Et nous pauvres petits prestataires on doit tout faire : le cahier des charges, la gestions des autres prestataires des trucs pas prévus mais on le fait quand même…



&nbsp;&nbsp;Par contre, les avocats, pour me triturer mes CGV pour e*culer les mouches et pas payer, ça ça marche nickel&nbsp;<img data-src=" />





nekogami a écrit :



Nan mais ce qui est drôle c’est que

mon.service-public.fr par contre, c’est tranquille.

Je me demande sérieusement comment c’est “organisé” ce beau bordel.





Difficile à dire, c’est un système chaotique de Mendelbrot il s’auto-organise de manière complexe, en gros il y’a une logique organisationnelle du truc, mais ce n’est compréhensible que par quelques mathématiciens au monde&nbsp;&nbsp;<img data-src=" />









Aytine a écrit :



Comme à chaque fois qu’une faille sur la crypto est trouvée, j’ai l’impression d’être un abruti fini en lisant le PDF détaillé … rassurez moi j’suis pas tout seul ?&nbsp;

<img data-src=" />





Nan, nan, je suis là aussi&nbsp;&nbsp; …<img data-src=" />



Très bonne article, merci.