Comment activer TLS 1.1 et 1.2 avec OpenSSL et Apache

33

Face à un nombre croissant de problèmes de sécurité, tels que le navigateur récemment annoncé Exploiter contre SSL / TLS (BEAST), j'étais curieux de savoir comment nous pourrions activer TLS 1.1 et 1.2 avec OpenSSL et Apache afin de nous assurer que nous ne serions pas vulnérables. à de tels vecteurs de menace.

John
la source

Réponses:

25

TLS1.2 est maintenant disponible pour Apache. Pour ajouter TLSs1.2, il vous suffit d'ajouter la configuration de votre hôte virtuel https:

SSLProtocol -all +TLSv1.2

-all supprime les autres protocoles SSL (SSL 1,2,3 TLS1)

+TLSv1.2 ajoute TLS 1.2

pour plus de compatibilité de navigateur, vous pouvez utiliser

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

en passant, vous pouvez aussi augmenter la suite Cipher en utilisant:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$

Vous pouvez tester la sécurité de votre site Web https avec un scanner en ligne du type: https://www.ssllabs.com/ssltest/index.html.

Froggiz
la source
2
Je ne suis pas sûr de savoir pourquoi ce message est marqué comme "obsolète". J'ai utilisé la solution recommandée et le site de mon client est passé d'un «C» des Qualsys SSL Labs à un «A».
Michael Sobczak
Bonjour, j'ai supprimé les avertissements obsolètes pour éviter les malentendus, c'était un lien vers l'ancienne réponse correcte. Je suis heureux que votre sécurité ait augmenté;)
Froggiz
Dans sites-available / 000-default.conf, j'ai ajouté à l'hôte virtuel 'SSLProtocol -all + TLSv1.2' et obtenu: AH00526: Erreur de syntaxe sur la ligne 31 du fichier /etc/apache2/sites-enabled/000-default.conf : La commande 'SSLProtocol' 'invalide, peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur L'action' configtest 'a échoué.
Elia Weiss
Avez-vous activé mod_ssl? (commande: a2enmod ssl)
Froggiz
"SSLProtocol: Protocole illégal 'TLSv1.2'" (OS X 10.10.5)
Michael,
10

Selon le journal des modifications OpenSSL , la prise en charge de TLS 1.2 a été ajoutée à la branche de développement d'OpenSSL 1.0.1, mais cette version n'est pas encore publiée. Quelques modifications seront probablement nécessaires dans le code mod_ssl pour activer TLS 1.2 pour Apache.

Une autre bibliothèque SSL / TLS couramment utilisée est NSS ; il est utilisé par un module Apache moins connu mod_nss ; Malheureusement, les versions actuelles de NSS ne prennent pas non plus en charge TLS 1.2.

Une autre bibliothèque SSL / TLS, GnuTLS , prétend déjà prendre en charge TLS 1.2 dans sa version actuelle. Il existe un module Apache utilisant GnuTLS: mod_gnutls , qui prétend également prendre en charge TLS 1.2. Cependant, ce module semble être assez récent et pourrait ne pas être très stable; Je n'ai jamais essayé de l'utiliser.

Sergey Vlasov
la source
1
@ Sergey, merci pour les liens et les informations. Je suis toujours attristé de ne pouvoir utiliser ces normes compte tenu de leur âge. Il me semble étrange que nous devions être les défenseurs de nos systèmes et de nos réseaux, mais nous ne pouvons pas utiliser les outils qui permettraient d'améliorer nos postures de sécurité. En outre, il semble que les utilisateurs de navigateurs Web ont un moyen d’aider à permettre la prise en charge de ces normes en plus des utilisateurs de serveurs tels que Apache et éventuellement IIS.
Jean
2
Cette réponse est-elle toujours exacte, un an plus tard?
Ben Walther
2
@BenWalther OpenSSL 1.0.1 a été publié en mars 2012 avec la prise en charge de TLS 1.2. La dernière version à ce jour est la 1.0.1c. Je ne suis pas sûr de savoir combien du reste du message est toujours valide.
Burhan Ali
6

Vous ne pouvez pas, OpenSSL ne propose pas encore de version pour TLS 1.1.

Un commentaire pertinent sur /. pour ce numéro:

Voulez-vous bien expliquer aux masses non lavées comment implémenter la prise en charge de TLS 1.1 et 1.2 dans un monde où la bibliothèque dominante OpenSSL ne prend encore en charge aucun des protocoles de ses versions stables? Bien sûr, vous pouvez utiliser GnuTLS et mod_gnutls, et je l’ai essayé, mais cela ne servait à rien, aucun navigateur, à part Opera, ne le supportait et il y avait quelques problèmes étranges dans le module. IE 8/9 était censé les prendre en charge sous Vista et 7, mais n'a pas pu accéder au site géré par mod_gnutls lorsque les versions 1.1 et 1.2 ont été activées côté client. Je l'ai réessayé hier par curiosité, et maintenant même Opera 11.51 s'étouffe sous TLS 1.1 et 1.2. Donc là. Rien ne supporte vraiment les protocoles. Il faut attendre OpenSSL 1.0.1 pour TLS 1.1 et personne ne sait quand cela se produira.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890

Steve-o
la source
1
@ Steve-o, merci pour l'information. C’est un peu décevant que TLS 1.1 soit disponible depuis avril 2006 et depuis août 2008 avec des mises à jour publiées en mars 2011 et que nous n’ayons toujours pas la possibilité de les utiliser.
John
4

Adam Langley, un ingénieur de Google Chrome, souligne que TLS 1.1 n'aurait pas résolu ce problème en raison d'un problème d'implémentation de SSLv3 auquel tout le monde doit remédier: les navigateurs doivent rétrograder sur SSLv3 pour prendre en charge des serveurs buggy, et un attaquant peut l'initialiser. rétrograder.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html

cjc
la source
3

Gnu_tls fonctionne comme un charme et implémente également SNI (Server Name Identification), qui est très convivial dans l'hébergement virtuel ....

Aucun problème également pour trouver des paquets bin pour mod_gnutls dans les distributions linux, je l'utilise depuis 2 ans et aucun problème, il est également plus performant que openssl imho.

Mais le problème est aussi que la plupart des navigateurs ne supportent pas les versions 1.1 ou 1.2, alors commencez à diffuser l'idée de mettre à jour régulièrement les navigateurs.

Rastrano
la source
@ Rastrano - avez-vous des suggestions ou des liens sur la manière de mettre en œuvre cela? Merci pour l'info et il est dommage que les navigateurs "modernes" ne le supportent pas encore.
John