À la lumière d'un nombre croissant de problèmes de sécurité, tels que le nouvel exploit de navigateur contre SSL/TLS (BEAST), j'étais curieux de savoir comment nous pouvions procéder pour activer TLS 1.1 et 1.2 avec OpenSSL et Apache pour nous assurer que nous ne serions pas vulnérables. à de tels vecteurs de menace.
TLS1.2 est maintenant disponible pour Apache, pour ajouter TLSs1.2 il vous suffit d'ajouter dans votre configuration d'hôte virtuel https:
SSLProtocol -all +TLSv1.2
-all
supprime un autre protocole ssl (SSL 1,2,3 TLS1)
+TLSv1.2
ajoute TLS 1.2
pour plus de compatibilité avec les navigateurs, vous pouvez utiliser
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
au fait, vous pouvez également augmenter la suite de chiffrement 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 comme: https://www.ssllabs.com/ssltest/index.html
Compiler Apache avec la dernière version d'OpenSSL pour activer TLSv1.1 et TLSv1.2
http://httpd.Apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol
SSLProtocol +TLSv1.1 +TLSv1.2
Selon le OpenSSL changelog , 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. Probablement, certaines modifications seront également nécessaires dans le code mod_ssl pour activer réellement 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 en charge TLS 1.2.
Pourtant, une autre bibliothèque SSL/TLS est GnuTLS , et elle prétend prendre en charge TLS 1.2 déjà 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 relativement nouveau et peut ne pas être très stable; Je n'ai jamais essayé de l'utiliser.
Vous ne pouvez pas, OpenSSL ne propose pas encore de version pour TLS 1.1.
Un commentaire pertinent sur /. pour ce problème:
Pourriez-vous expliquer aux masses non lavées comment vous implémenteriez la prise en charge de TLS 1.1 et 1.2 dans un monde où la bibliothèque dominante OpenSSL ne prend pas encore en charge l'un des protocoles dans ses versions stables? Bien sûr, vous pouvez utiliser GnuTLS et mod_gnutls, et je l'ai essayé, mais cela ne servait à rien, car aucun navigateur en dehors de Opera ne le supportait et il y avait des problèmes étranges dans le module. IE 8/9 étaient censés les prendre en charge sous Vista et 7, mais n'ont pas pu accéder au site desservi par mod_gnutls lorsque 1.1 et 1.2 étaient activés côté client. Je l'ai essayé à nouveau hier juste par curiosité, et maintenant même Opera 11.51 s'étouffe sur TLS 1.1 et 1.2. Donc là. Rien ne prend vraiment en charge les protocoles. Doit attendre OpenSSL 1.0.1 pour TLS 1.1 et personne ne sait quand cela atteindra les dépôts.
Adam Langley, un ingénieur Google Chrome, souligne que TLS 1.1 n'aurait pas résolu ce problème en raison d'un problème d'implémentation avec SSLv3 que tout le monde doit contourner: les navigateurs doivent rétrograder vers SSLv3 pour prendre en charge serveurs bogués, et un attaquant peut provoquer ce déclassement.
http://www.imperialviolet.org/2011/09/23/chromeandbeast.html
Gnu_tls fonctionne comme un charme et il implémente également SNI (Server Name Identification), qui est très utile dans l'hébergement virtuel ....
Pas de problème aussi pour trouver des paquets bin pour mod_gnutls dans les distributions linux, je l'utilise depuis 2 ans et pas de problème, c'est aussi plus performant que openssl à mon humble avis.
Mais le problème est également que la plupart des navigateurs ne prennent pas en charge tls 1.1 ou 1.2, veuillez donc commencer à diffuser l'idée de mettre à niveau régulièrement les navigateurs vers les utilisateurs.