Une vulnérabilité récemment signalée dans la version 3 du protocole SSL (SSLv3) peut être exploitée dans le cadre d’une attaque de l’homme du milieu afin d’extraire des parties d’une transmission en texte clair chiffrée avec HTTPS. Des chercheurs de Google ont publié une explication détaillée décrivant comment une telle attaque pourrait être menée.
Il ne s’agit pas d’une vulnérabilité propre à une implémentation de SSL/TLS, mais d’une faille dans la conception du protocole SSLv3 lors de l’utilisation d’algorithmes de chiffrement par blocs. Comme tous les autres algorithmes de chiffrement par flot présentent également des faiblesses, la seule solution consiste à désactiver SSLv3 dans vos configurations NGINX et NGINX Plus.
Désactivation de SSLv3 dans NGINX
SSLv3 est activé par défaut dans NGINX et NGINX Plus, et peut être utilisé par les services HTTP et de messagerie.
[Note de la rédaction – La mise en proxy et la répartition de charge du trafic TCP n’étaient pas entièrement prises en charge lors de la publication initiale de cet article. Par souci d’exhaustivité, les étapes suivantes ont été mises à jour afin d’inclure la protection du trafic TCP.]
Effectuez les étapes suivantes sur toutes les instances NGINX et NGINX Plus :
- Supprimez SSLv3 de l’ensemble des protocoles utilisés pour le trafic HTTP. Ajoutez la directive suivante
ssl_protocolsau blochttp{}si elle n’existe pas, ou modifiez la directive existante afin de supprimerSSLv3de la liste des paramètres.
# in the http{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)- Créez ou modifiez la même directive dans le bloc de configuration
mail{}si vos instances NGINX ou NGINX Plus gèrent le trafic de messagerie.
# in the mail{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)- Créez ou modifiez la même directive dans le bloc de configuration
stream{}si vos instances NGINX ou NGINX Plus gèrent du trafic TCP.
# in the stream{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)- Repérez toutes les autres occurrences de la directive
ssl_protocolsdans votre configuration (elle peut être incluse dans un bloc de configurationserver{}au sein des blocshttp{},mail{}etstream{}). Nous vous recommandons de supprimer ces directivesssl_protocols, mais vous devez au minimum retirerSSLv3de la liste des paramètres :
# in every server{} block ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# omit SSLv3 because of POODLE (CVE‑2014‑3566)- Exécutez la commande suivante pour recharger la configuration :
# nginx –s reloadQuel est l’effet de cette modification ?
Tous les navigateurs modernes et clients d’API prennent en charge TLSv1 et les versions ultérieures. La désactivation de SSLv3 gênera les utilisateurs de WindowsXP qui naviguent avec Internet Explorer 6 ; CloudFlare estime que 1,12 % des utilisateurs de WindowsXP (qui représentent 3,12 % de son trafic) seront concernés, soit environ 1 utilisateur sur 3 000.
Cette modification pourrait également affecter les robots d’indexation et le trafic généré par d’autres robots automatisés.
L’avenir
Lors d’une attaque par rétrogradation SSL, l’attaquant peut perturber les négociations SSL/TLS et amener le client et le serveur à sélectionner une version antérieure de SSL/TLS. Lorsqu’elle est utilisée pour forcer la sélection de SSLv3, cette attaque peut rendre la connexion SSL/TLS vulnérable à l’attaque POODLE. La désactivation de SSLv3 sur le serveur rend cette attaque impossible.
Google a proposé une extension de SSL/TLS nommée « TLS_FALLBACK_SCSV », qui vise à empêcher les rétrogradations forcées de SSL/TLS. [Note de l’éditeur – L’extension a été adoptée sous la référence RFC 7507 en avril 2015.] Cette extension pourrait à terme être intégrée à OpenSSL, et la prise en charge correspondante côté client ajoutée aux principaux navigateurs. Les services web pourront ainsi prendre en charge SSLv3, mais les clients anciens resteront vulnérables.
Néanmoins, cette vulnérabilité pourrait sonner le glas de SSLv3, ce qui constituerait globalement une solution plus simple et plus fiable.
Que puis-je faire d’autre ?
Nous vous recommandons de mettre à jour votre logiciel client afin qu’il ne prenne plus en charge SSLv3. Vous serez ainsi protégé contre cette attaque lorsque vous accéderez à des services qui n’ont pas encore été mis à jour pour désactiver SSLv3.
Pour aller plus loin
- Le rapport initial sur la vulnérabilité
- Une explication plus concise d’ImperialViolet
- Plusieurs fournisseurs ont publié des recommandations ; celle d’Ubuntu est particulièrement complète
À propos de l’auteur

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.