GlobalSign Blog

  • par

Note de l’éditeur : Ce billet a été initialement publié en juillet 2016 et a été mis à jour par Patrick Nohe, responsable senior du marketing produit chez GlobalSign, afin de refléter les derniers changements dans l’évolution du SSL.

À moins que vous ne travailliez régulièrement avec, il y a de fortes chances que vous ne connaissiez pas la différence entre SSL (Secure Sockets Layers) et TLS (Transport Layer Security). Et ce secteur ne vous rend pas service en désignant familièrement TLS par SSL. Il y a eu quatre itérations du protocole TLS. SSL a été (ou est censé être) entièrement déprécié. Alors, quelle est la différence entre SSL et TLS ?

Vous êtes sur le point de le découvrir.

Un bref historique de SSL et TLS

SSL et TLS sont tous deux des protocoles cryptographiques qui assurent l’authentification et le chiffrement des données entre les serveurs, les machines et les applications fonctionnant sur un réseau (par exemple, un client se connectant à un serveur web). En réalité, SSL n’a que 25 ans environ. Mais en années Internet, c’est très ancien. La première itération de SSL, la version 1.0, a été développée en 1995 par Netscape mais n’a jamais été publiée car elle comportait de graves failles de sécurité. SSL 2.0 n’était pas beaucoup mieux, si bien qu’un an plus tard, SSL 3.0 était publié. Là encore, il présentait de graves failles de sécurité.

À ce moment-là, les gars de Consensus Development se sont attaqués à la question et ont développé TLS 1.0. TLS 1.0 était incroyablement similaire à SSL 3.0 – en fait, il était basé sur lui – mais encore suffisamment différent pour nécessiter une mise à niveau avant que SSL 3.0 puisse être utilisé. Comme l’ont écrit les créateurs du protocole TLS :

« Les différences entre ce protocole et SSL 3.0 ne sont pas spectaculaires, mais elles sont suffisamment importantes pour que TLS 1.0 et SSL 3.0 n’interagissent pas. »

Le déclassement vers SSL 3.0 restait cependant dangereux, étant donné ses vulnérabilités connues et exploitables. Tout ce qu’un attaquant devait faire pour cibler un site web était de rétrograder le protocole vers SSL 3.0. D’où la naissance des attaques par rétrogradation. Cela a fini par être le clou du cercueil pour TLS 1.0.

TLS 1.1 est sorti sept ans plus tard, en 2006, remplacé par TLS 1.2 en 2008. Cela a nui à l’adoption de TLS 1.1, car de nombreux sites Web ont simplement mis à niveau de 1.0 à TLS 1.2. Nous en sommes maintenant à TLS 1.3, qui a été finalisé en 2018 après 11 ans et près de 30 brouillons de l’IETF.

TLS 1.3 apporte des améliorations significatives par rapport à ses prédécesseurs et, à l’heure actuelle, les principaux acteurs de l’Internet font pression pour sa prolifération. Microsoft, Apple, Google, Mozilla et Cloudflare ont tous annoncé des plans pour déprécier à la fois TLS 1.0 et TLS 1.1 en janvier 2020, faisant de TLS 1.2 et TLS 1.3 le seul jeu en ville.

De toute façon, nous utilisons TLS depuis les deux dernières décennies. À ce stade, si vous utilisez encore SSL, vous avez des années de retard, vivant métaphoriquement dans une ère délaissée où les gens utilisent encore des lignes téléphoniques pour se connecter à Internet.

Évolution de SSL et TLS

Devriez-vous utiliser SSL ou TLS ?

Les versions 2.0 et 3.0 de SSL ont toutes deux été dépréciées par l’Internet Engineering Task Force, également connu sous le nom d’IETF, en 2011 et 2015, respectivement. Au fil des ans, des vulnérabilités ont été et continuent d’être découvertes dans les protocoles SSL dépréciés (par exemple, POODLE, DROWN). La plupart des navigateurs modernes affichent une expérience utilisateur dégradée (par exemple, une ligne à travers le cadenas ou https dans la barre d’URL, ou d’autres avertissements de sécurité) lorsqu’ils rencontrent un serveur web utilisant les anciens protocoles. Pour ces raisons, vous devriez désactiver SSL 2.0 et 3.0 dans votre configuration de serveur, et pendant que vous y êtes – allez-y et dépréciez TLS 1.0 et TLS 1.1, aussi.
Selon une récente enquête de WatchGuard, près de 7 % du Top 100 000 d’Alexa prennent encore en charge SSL 2.0 et/ou SSL 3.0. Ces sites existent donc encore en abondance.

Les certificats ne sont pas les mêmes que les protocoles

Avant que quelqu’un ne commence à s’inquiéter de devoir remplacer ses certificats SSL existants par des certificats TLS, il est important de noter que les certificats ne dépendent pas des protocoles. Autrement dit, vous n’avez pas besoin d’utiliser un certificat TLS par rapport à un certificat SSL. Bien que de nombreux fournisseurs aient tendance à utiliser l’expression  » certificat SSL/TLS « , il peut être plus précis de les appeler  » certificats à utiliser avec SSL et TLS « , car les protocoles sont déterminés par la configuration de votre serveur, et non par les certificats eux-mêmes.

Cela vaut aussi pour la puissance de cryptage. De nombreux certificats annoncent la puissance de cryptage, mais en réalité, ce sont les capacités du serveur et du client qui la déterminent. Au début de chaque connexion, un processus appelé poignée de main se produit. Au cours de ce processus, le client authentifie le certificat TLS du serveur et les deux parties décident d’une suite de chiffrement mutuellement acceptée. Les suites de chiffrement sont un ensemble d’algorithmes qui fonctionnent tous ensemble pour chiffrer de manière sécurisée votre connexion avec ce site web. Lorsque la suite de chiffrement est négociée au cours de la poignée de main, c’est à ce moment-là que la version du protocole et les algorithmes de support sont déterminés. Votre certificat ne fait que faciliter le processus.

Historiquement, il y a eu quatre algorithmes dans une suite de chiffrement :

  • Échange de clés
  • Signature numérique
  • Authentification du message
  • Algorithme de hachage

(Si cela vous semble un peu dans les méandres, cela ne le sera plus dans une seconde lorsque nous aborderons les différences entre SSL et TLS.)

Pour l’instant, il est probable que vous continuiez à voir des certificats désignés sous le nom de certificats SSL, car à ce stade, c’est le terme que plus de gens connaissent. Nous commençons à voir une utilisation accrue du terme TLS dans l’ensemble de l’industrie, et SSL/TLS est un compromis commun jusqu’à ce que TLS soit plus largement accepté.

Est-ce que SSL et TLS sont différents sur le plan cryptographique ?

Oui. La différence entre chaque version du protocole n’est peut-être pas énorme, mais si vous compariez SSL 2.0 à TLS 1.3, il y aurait un canyon entre eux. Au fond, le concept est le même dans toutes les versions. C’est juste la façon dont les différents protocoles s’y prennent pour accomplir la tâche de chiffrer les connexions qui diverge.

Chaque version nouvellement publiée du protocole est venue et viendra avec ses propres améliorations et/ou ses fonctionnalités nouvelles/dépréciées. La version 1 de SSL n’a jamais été publiée, la version 2 l’a été mais présentait des défauts majeurs, la version 3 de SSL était une réécriture de la version 2 (pour corriger ces défauts – avec un succès limité) et la version 1 de TLS une amélioration de la version 3 de SSL. Entre TLS 1.0 et 1.1, les changements ont été mineurs. TLS 1.2 a apporté quelques changements significatifs et TLS 1.3 a affiné et rationalisé l’ensemble du processus.

Il convient de noter ici que SSL et TLS font simplement référence à la poignée de main qui a lieu entre un client et un serveur. La poignée de main ne fait pas réellement de cryptage en soi, elle convient simplement d’un secret partagé et du type de cryptage qui va être utilisé. Une poignée de main SSL utilise un port pour établir ses connexions. C’est ce qu’on appelle une connexion explicite. Le port 443 est le port standard pour HTTPS, mais il y a 65 535 ports en tout – avec seulement quelques-uns dédiés à une fonction spécifique.

TLS, à l’inverse, commence ses connexions via le protocole. C’est ce qu’on appelle une connexion implicite. La toute première étape de la poignée de main – l’acte qui l’entame – s’appelle un hello client. Avec TLS, celui-ci est envoyé via un canal non sécurisé et la connexion bascule sur le port 443 (ou le port que vous avez désigné) une fois que la poignée de main a commencé.

Traditionnellement, la poignée de main implique plusieurs allers-retours au fur et à mesure que l’authentification et l’échange de clés ont lieu. Avec SSL, cela ajoutait de la latence aux connexions. C’est de là qu’est né le mythe selon lequel SSL/HTTPS ralentit votre site web. Chaque nouvelle itération du protocole s’est efforcée de réduire la latence ajoutée par la poignée de main. Avec TLS 1.2, il a été prouvé que HTTPS était en fait plus RAPIDE que HTTP grâce à sa compatibilité avec HTTP/2.

TLS 1.3 a encore affiné la poignée de main. Elle peut désormais être accomplie avec un seul aller-retour et permet la reprise zéro aller-retour (0-RTT). Cela s’est fait en partie en réduisant le nombre de suites de chiffrement qu’il prend en charge, de quatre algorithmes à deux.

Maintenant, il s’agit simplement d’un algorithme de chiffrement global (symétrique/session) et d’un algorithme de hachage. Les négociations sur l’échange de clés et la signature numérique ont été supprimées. L’échange de clés est maintenant effectué à l’aide d’une famille Diffie-Hellman, ce qui permet à la fois d’activer le secret avant parfait par défaut et de permettre au client et au serveur de fournir leur partie du secret partagé lors de leur première interaction. Cette première interaction est désormais chiffrée, elle aussi, ce qui ferme la porte à un éventuel vecteur d’attaque.

Pour plus d’informations sur les nouvelles fonctionnalités publiées dans TLS 1.3, visitez le blog de Cloudflare.

Désactivation de SSL 2.0 et 3.0 et de TLS 1.0

Si vous n’êtes pas sûr que vos serveurs prennent toujours en charge les protocoles SSL, vous pouvez facilement vérifier en utilisant notre test de serveur SSL. Pour savoir comment désactiver SSL 2.0 et 3.0 sur les types de serveurs les plus courants, notamment Apache, NGINX et Tomcat, consultez notre article d’assistance correspondant. Si vous devez encore désactiver TLS 1.0, nous pouvons également vous aider à le faire.

Alors, quelle est la différence entre SSL et TLS ? Dans une conversation polie, pas grand-chose – et beaucoup de gens continuent à utiliser les termes SSL et TLS de manière interchangeable. En termes de configuration de votre serveur cependant, il existe des différences architecturales et fonctionnelles majeures. Et ces différences constituent l’espace entre les vulnérabilités, les suites de chiffrement obsolètes, les avertissements de sécurité des navigateurs – et un serveur sécurisé. Lorsqu’il s’agit de vos serveurs, vous ne devriez avoir que des protocoles TLS activés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *