Apple, Google, Microsoft et Mozilla annonçaient il y a un an, la fin du support de TLS 1.0 et TLS 1.1 dans leurs navigateurs. Si elle n'est pas récente, cette information risque cependant de passer sous les radars pour de nombreuses entreprises et administrations dont les infrastructures TLS en production sont directement concernées. Le risque de petit vent de panique chez de gros hébergeurs n'est pas à négliger lorsque ces organisations se rendront compte qu'elles ont encore en production des serveurs, proxys ou loadbalancers HTTP, IMAP, SMTP, etc. devenus obsolètes et que le navigateurs signaleront comme tel aux utilisateurs, par le biais d'un menaçant "votre connexion n'est pas sécurisée".
Lorsque l'on parle de confidentialité et plus généralement de confiance sur le web pour notre trafic chiffré (par exemple lorsque l'on envoie des données bancaires) on fait régulièrement référence au protocole SSL (Security Socket Layer). Mais c'est en fait son successeur, TLS (Transport Layer Security), qui est aujourd'hui le plus largement adopté. TLS est apparu en 1999, 3 ans après SSL3. TLS 1.0 est maintenant un protocole vieux de 20 ans et la bête bouge encore dans nos navigateurs malgré les spectaculaires vulnérabilités qu'on lui connait, comme BEAST . L' IETF devrait d'ailleurs prochainement déclarer TLS 1.0 et 1.1 comme dépréciés, car même si TLS 1.1 est plus robuste que TLS 1.0, il ne supporte pas les suites cryptographiques modernes devenues indispensables pour assurer un niveau de confidentialité satisfaisant (notamment SHA-256 et AES).
La bonne nouvelle, c'est que TLS a été remis au goût du jour l'an passé pour s'endurcir, c'est TLS 1.3, qui est une très nette amélioration par rapport à TLS 1.2. Cependant, pour se débarrasser de vieilles infrastructures à la sécurité douteuse et qui ne sont plus en mesure aujourd'hui d'assurer leur promesse de confidentialité, il fallait bien un petit coup de pouce des navigateurs majeurs pour que l'adoption de sa version la plus sécurisée devienne la norme. C'est ce qu'il va se produire le premier semestre 2020.
A partir de 2020 donc, les nouvelles versions de Safari, Chrome, Edge, IE et Firefox ne sauront plus négocier les sessions TLS qui assurent la sécurité de nos échanges en HTTPS, avec les certificats utilisant les versions 1.0 et 1.1 de ce protocole. Après 20 années, TLS 1.0 RFC2246 a bien cédé sa place à la RFC5246 aka TLS 1.2 qui concentre encore l'immense majorité du trafic web chiffré. Si TLS 1.2 ne sera pas déprécié tout de suite, il n'est pas exempt non plus de vulnérabilités. Vous trouverez par exemple ici un petit récapitulatif pour faire le point rapide sur ce qui s'utilise, ne s'utilise plus et pourquoi.
Avec TLS 1.3 qui a fait son apparition en mars 2018, c'est la promesse de jours meilleurs, que ce soit en terme de performances (avec un bel effort pour minimiser les latences sur les réseaux chaotiques, notamment mobiles) et en terme de sécurité.
Il s'agit bien ici d'imposer TLS 1.3 comme le nouveau standard, même si certains se demanderont si c'est bien aux navigateurs de décider de cette manière de la vie et de la mort d'un protocole. Toujours est-il que la promesse des navigateurs est la protection de leurs utilisateurs et le choix fait par leurs éditeurs demeure dans cette perspective parfaitement cohérent et on pourrait arguer qu'ils ne vont pas assez loin puisque certains prennent encore charge Flash®, mais il s'agit d'un autre troll... débat.
Vous voilà avertis une nouvelle fois, et si vous avez des serveurs/proxys/loadbalancers avec du TLS (et qui n'en n'a pas ?), il est temps de prendre les devants de faire un sérieux inventaire en s'assurant que tous supportent au minimum TLS 1.2 (et de préférence aussi TLS 1.3), avec des suites de chiffrages modernes et non vulnérables aux attaques connues (voyez par ex. downgrade attack . Planifiez avec votre prestataire une migration dès aujourd'hui, vous aborderez ainsi 2020 plus sereinement et vous n'aurez pas à vous soucier de difficultés d'accès à vos applications que vos utilisateurs pourraient rencontrer suite à ce qui est officiellement annoncé comme la mort de TLS 1.0 et TLS 1.1.
Fiche pratique : pour avoir un support TLS >= 1.2, il vous faut :
- OpenSSL >= 1.0.1 (03/2012) ; cependant vu le nombre de failles de sécurité de cette branche, préférez >= 1.0.2 (01/2015)
- GnuTLS >= 1.7.0 (11/2006) ; on espère cependant que vous ne servez pas du TLS avec du code d'il y a 13 ans...
- NSS >= 3.15.1 (07/2013)
Si vous utilisez Debian GNU/Linux, la version 7 "Wheezy" suffira, mais il serait exagéré de dire qu'elle convient puisqu'elle n'est plus maintenue depuis le 31/05/2018 (y compris via son support LTS).