/ ssl

DIE SSLv3, DIE!

Vous avez sans doute vu passer la faille concernant le protocole SSLv3 trouvée par une équipe de Google et annoncée dans la nuit du 14 octobre 2014 (POODLE, pour Padding Oracle On Downgraded Legacy Encryption). Cette faille concerne directement le protocole et ne peut pas être corrigée simplement. La solution la plus saine est de désactiver SSLv3 en vérifiant bien que TLSv1.0, TLSv1.1 et TLSv1.2 fonctionnent.

Il faut par contre noter que Internet Explorer 6 sous Windows XP ne pourra plus se connecter de manière "sécurisée". Pour rappel, IE6 n'est plus maintenu par Microsoft depuis 2010, le bleu sur la carte ci-dessous signifie que IE6 est à moins de 1% de parts de marché des navigateurs dans cette zone et moins de 0.8% des navigateurs en France :

IE6

**IE6 représente largement moins de 1% des navigateurs en Europe et en Amérique du nord**.

Dans les navigateurs

Pour Mozilla Firefox

Après avoir ouvert votre navigateur, tapez about:config dans votre barre d'adresse, après avoir cliqué sur "je ferai attention, promis", vous arrivez dans la configuration de votre navigateur. Vous pouvez alors rechercher security.tls.version.min dans la barre de recherche. Le but ici est de modifier la valeur minimum pour la version de TLS, il suffit donc de mettre security.tls.version.min à 1 pour dire à Firefox d'utiliser TLSv1.0 au minimum (et non SSLv3). Il faut redémarrer son navigateur pour prendre en compte cette modification.

À noter que SSLv3 sera désactivé par défaut à partir de Mozilla Firefox 34.

Pour Google Chrome/Chromium

Selon Adam Langley (Senior Staff Software Engineer, Google), Google Chrome implémente depuis Février TLS_FALLBACK_SCSV qui empêche les protocoles de descendre en SSLv3. Si vous voulez vous passer définitivement de SSLv3, il faut lancer Chrome (et Chromium) avec l'option --ssl-version-min=tls1 (cf. "How to specify command line flags" sur chromium.org)

Pour Internet Explorer

Pour IE6, la méthode est très simple : arrêtez de l'utiliser, passez à Mozilla Firefox ! Pour les autres versions, vous pouvez activer/désactiver les protocoles dans outils > options Internet > avancé. Vous pouvez désactiver tout en bas SSLv3 et activer TLSv1.1 et TLSv1.2 si ce n'est pas le cas (et vérifiez bien que SSLv2 est AUSSI désactivé, on ne sait jamais).

Capture d'écran d'un IE8 sous Microsoft Windows (oui, c'est vieux).

Sur les serveurs

N'oubliez pas de recharger la configuration de vos logiciels en cas de modification (apache2ctl -t pour tester votre configuration puis service apache2 reload pour prendre en compte la nouvelle conf pour Apache2).

Configuration Apache avec OpenSSL

SSLProtocol All -SSLv2 -SSLv3

Nous vous conseillons grandement d'éditer le fichier /etc/apache2/mods-enabled/ssl.conf pour améliorer la configuration par défaut du serveur en modifiant au minimum la ligne SSLProtocol pour la suivante : SSLProtocol -SSLv2 -SSLv3.

Configuration Nginx avec OpenSSL

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Configuration Dovecot

ssl_cipher_list = ALL:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:!RC4:!3DES

Configuration Courier pop & imap

Mieux vaut utiliser Dovecot, vous ne voulez pas jouer avec imapd-ssl et pop3d-ssl.
Sinon, dans imapd-ssl et pop3d-ssl, remplacez (ou ajoutez-là si besoin) la ligne TLS_PROTOCOL comme ceci :

TLS_PROTOCOL="TLS1_2:TLS1_1:TLS1"

Attention, les anciennes versions de Courier ne prennent pas en compte TLS1_2.

Configuration Postfix smtp

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high

Configuration Prosody

options = { "no_sslv2", "no_sslv3", "no_ticket", "no_compression","cipher_server_preference", "single_dh_use","single_ecdh_use" };

Configuration eJabberd

Ce n'est apparemment pas possible pour le moment.

Configuration OpenVPN

Pour améliorer la sécurité d'OpenVPN, se référer à l'article Hardening OpenVPN

Comment je peux tester ma configuration ?

Sur le plan général, je vous conseille aussi le très bon "Applied crypto hardening" qui ne demande qu'à être améliorer. Tout comme JeveuxHTTPS.fr. Vous pouvez tester votre configuration avec le très, très bon SSLLabs.com, ou encore avec les commandes suivantes dans un terminal :

Avec OpenSSL

Avec la commande OpenSSL s_client:

openssl s_client -connect HOST:PORT OPTION

Par exemple avec la commande suivante pour voir si j'ai du SSLv3 sur www.libwalk.so (les options qui peuvent vous intéresser ici sont les suivantes : -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1).

openssl s_client -connect www.libwalk.so:443 -ssl3

Avec nmap

nmap --script ssl-enum-ciphers -p 443 exemple.org
DIE SSLv3, DIE!
Share this