Le protocole de sécurité TLS assure la confidentialité et l'intégrité des données sur les communications Internet. Sa mise en œuvre constitue une pratique courante en matière de création d'applications web sécurisées.
Cet article s'articule autour des points suivants :
Contenu associé
Le SSL, qu’est-ce que c’est ?
Qu'est-ce qu'un certificat SSL ?
négociation SSL
Comment fonctionne le SSL ?
Chiffrement asymétrique
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Le terme TLS, pour Transport Layer Security, désigne un protocole de sécurité largement adopté et conçu pour faciliter la confidentialité et la sécurité des données sur les communications Internet. Il est principalement utilisé pour chiffrer la communication entre les applications web et les serveurs, comme les navigateurs web chargeant un site web, par exemple. Le TLS également être utilisé pour chiffrer d'autres communications, comme les e-mails, les services de messagerie et la voix sur IP (VoIP). Dans cet article, nous nous concentrerons sur le rôle du TLS dans la sécurité des applications web.
Le protocole TLS a été proposé par l'Internet Engineering Task Force (IETF, une organisation internationale de normalisation) et sa première version a été publiée en 1999. La version la plus récente (TLS 1.3) a, quant à elle, été publiée en 2018.
Le TLS a évolué à partir du protocole de chiffrement précédent, Secure Socket Layer (SSL), développé par Netscape. Le développement de la version 1.0 de TLS a en fait commencé sous le nom de SSL version 3.1, mais le nom du protocole a été modifié avant la publication, afin d'indiquer qu'il n'était plus associé à Netscape. Du fait de ce passé commun, les termes TLS et SSL sont parfois utilisés de manière interchangeable.
Le HTTPS désigne une implémentation du chiffrement TLS en surcouche du protocole HTTP utilisé par l'ensemble des sites web, ainsi que par certains autres services web. Tout site web qui utilise le HTTPS s'appuie donc sur le chiffrement TLS.
Le chiffrement TLS peut contribuer à protéger les applications web contre les violations de données et autres attaques. Aujourd'hui, le protocole HTTPS protégé par TLS est une pratique standard pour les sites web. Le navigateur Google Chrome s'est progressivement attaqué aux sites non HTPS (), et d'autres navigateurs lui ont emboîté le pas.Les internautes quotidiens se méfient davantage des sites web qui ne présentent pas l'icône du cadenas HTTPS.
Le protocole TLS s'articule autour de trois composants principaux : chiffrement, authentification et intégrité.
Pour qu'un site web ou une application puisse utiliser TLS, un certificat TLS doit être installé sur son serveur d'origine (ce certificat est également connu sous le nom de « certificat SSL », en raison de la confusion autour de la dénomination des protocoles décrite ci-dessous). Les certificats TLS sont délivrés par une autorité de certification à la personne ou à l'entreprise propriétaire d'un domaine. Le certificat contient des données importantes sur l'entité propriétaire du domaine, de même que la clé publique du serveur, deux informations cruciales à la validation de l'identité du serveur.
Une connexion TLS démarre par l'utilisation d'une séquence connue sous le nom de négociation TLS (TLS handshake). Lorsqu'un utilisateur navigue vers un site web utilisant le protocole TLS, la négociation TLS commence entre l'appareil de l'utilisateur (également appelé l'appareil client) et le serveur web.
Lors de cette négociation, l'appareil de l'utilisateur et le serveur web effectuent les actions suivantes :
La négociation TLS établit une suite de chiffrement pour chaque session de communication. La suite de chiffrement constitue un ensemble d'algorithmes spécifiant divers détails, comme les clés de chiffrement partagées (ou clés de session) qui seront utilisées pour cette session particulière. Le protocole TLS est capable de définir les clés de session correspondantes sur un canal non chiffré grâce à une technologie connue sous le nom de cryptographie à clé publique.
La négociation gère également l'authentification, qui consiste généralement à faire en sorte que le serveur prouve son identité au client. Cette opération s'effectue à l'aide de clés publiques. Les clés publiques sont des clés de chiffrement qui utilisent un chiffrement unidirectionnel. N'importe qui peut donc déchiffrer les données chiffrées à l'aide de la clé privée afin de garantir leur authenticité, mais seul l'expéditeur initial conserve la possibilité de chiffrer les données à l'aide de cette clé. La clé publique du serveur fait partie intégrante de son certificat TLS.
Une fois chiffrées et authentifiées, les données sont ensuite signées à l'aide d'un code d'authentification de message (Message Authentication Code, MAC). Le destinataire peut ensuite vérifier le MAC afin de garantir l'intégrité des données. Ce code peut-être comparé au film inviolable que l'on trouve sur un flacon d'aspirine : le consommateur sait que personne n'a touché à son médicament, car le film est intact au moment de l'achat.
Les dernières versions du protocole TLS n'ont pratiquement aucune incidence sur les performances d'une application web.
En raison de la complexité de la procédure impliquée dans l'établissement d'une connexion TLS, un certain temps de chargement et une certaine puissance de calcul s'avèrent nécessaires. Le client et le serveur doivent communiquer dans les deux sens à plusieurs reprises avant de pouvoir transmettre des données. Ce processus consomme de précieuses millisecondes de temps de chargement pour les applications web, ainsi qu'une certaine quantité de mémoire, à la fois du côté client et serveur.
Heureusement, certaines technologies existantes permettent d'atténuer la latence potentielle engendrée par la négociation TLS. L'une d'entre elles, le TLS False Start (ou faux démarrage TLS), permet au serveur et au client de commencer à transmettre des données avant la fin de la négociation. La TLS Session Resumption (ou reprise de session TLS) constitue une autre de ces technologies d'accélération de la connexion. Elle permet aux clients et serveurs qui ont déjà communiqué ensemble par le passé d'utiliser un processus de négociation abrégé.
Ces améliorations ont contribué à faire du TLS un protocole très rapide, qui ne devrait pas affecter les temps de chargement de manière significative. Quant aux coûts en puissance de calcul associés au TLS, ils se révèlent généralement négligeables en comparaison des normes actuelles.
Lancé en 2018, le TLS 1.3 a rendu le protocole encore plus rapide. Les négociations TLS sous TLS 1.3 se voient raccourcies de quelques millisecondes, car elles ne nécessitent qu'un seul aller-retour (ou communication aller-retour) au lieu de deux. Si l'utilisateur s'est déjà connecté à un site web auparavant, la négociation ne comprendra aucun aller-retour, pour un processus encore plus rapide.
Cloudflare propose des certificats TLS/SSL gratuits à tous les utilisateurs. Ceux qui n'utilisent pas Cloudflare devront acquérir un certificat SSL auprès d'une autorité de certification (souvent moyennant finances) et l'installer sur leurs serveurs d'origine.
Pour en savoir plus sur le fonctionnement des certificats TLS/SSL, consultez la page Qu'est-ce qu'un certificat SSL ?