TLS (Transport Layer Security) est un protocole de chif­fre­ment qui assure la sécurité des trans­mis­sions de données sur Internet. Il succède au protocole SSL, obsolète, et est aujourd’hui presque ex­clu­si­ve­ment utilisé dans sa version TLS 1.3.

Qu’est-ce que le TLS ?

Au début du Web, les aspects touchant à la sécurité des données n’étaient pas aussi im­por­tants qu’aujourd’hui. Toutes les com­mu­ni­ca­tions étaient sim­ple­ment trans­mises ou­ver­te­ment et sans chif­fre­ment d’un or­di­na­teur à l’autre. On peut alors comparer cela à une carte postale : n’importe quel facteur peut la lire.

Le protocole TLS (souvent désigné SSL/TLS), a introduit le chif­fre­ment des contenus envoyés. Pour s’en tenir à la com­pa­rai­son men­tion­née ci-dessus, ce chif­fre­ment cor­res­pond à une enveloppe scellée que seul le des­ti­na­taire légitime peut ouvrir.

L’abré­via­tion TLS signifie « Transport Layer Security », c’est-à-dire « sécurité de la couche de transport ». Ce terme fait référence à la couche de transport du modèle TCP/IP. Le protocole TLS permet de chiffrer les flux de données sur Internet afin que ces données ne puissent être lues que par les des­ti­na­taires autorisés.

Note

Ce protocole était autrefois connu sous le nom de SSL (Secure Socket Layer). Comme cette abré­via­tion est encore largement utilisée, on parle souvent de « SSL/TLS » pour désigner TLS.

Comment fonc­tionne le protocole TLS ?

TLS chiffre tout le trafic envoyé sur TCP en utilisant une méthode de chif­fre­ment sy­mé­trique.

Ce qui semble simple en théorie est plus compliqué dans la réalité. Le problème de base est que le serveur doit indiquer la clé au client, et cela avant que la com­mu­ni­ca­tion ne soit sécurisée avec TLS. Toute personne qui envoie des pièces jointes chiffrées connaît bien ce problème : vous chiffrez un fichier et devez alors com­mu­ni­quer au des­ti­na­taire le mot de passe secret, par exemple par téléphone.

Le protocole TLS, dont la version actuelle (1.3) est en vigueur depuis 2018, utilise la procédure suivante pour résoudre ce problème :

  1. Clien­tHello : le client (par exemple un na­vi­ga­teur) envoie un premier message au serveur contenant des in­for­ma­tions sur les méthodes de chif­fre­ment qu’il prend en charge. Cela inclut les suites cryp­to­gra­phiques (cipher suites), les versions du protocole, une valeur aléatoire, ainsi qu’une valeur propre à l’échange de clés Diffie-Hellman basé sur les courbes el­lip­tiques (valeur ECDHE). Un premier bloc de données chiffrées peut éven­tuel­le­ment déjà être transmis à ce stade.
  2. Ser­ve­rHello : le serveur sé­lec­tionne les pa­ra­mètres ap­pro­priés et envoie sa réponse, y compris sa propre valeur ECDHE et son cer­ti­fi­cat numérique. Ce cer­ti­fi­cat SSL prouve que le serveur est au­then­tique et ne cherche pas à usurper une identité. En parallèle, le serveur commence le calcul de la clé de session.
  3. Calcul de la clé : les deux parties calculent alors in­dé­pen­dam­ment la même clé de session (session key) à partir de celle préa­la­ble­ment échangée.
  4. Fin du handshake et début de la com­mu­ni­ca­tion sécurisée : le serveur termine l’échange (handshake) et entame la com­mu­ni­ca­tion chiffrée. Le client fait de même ; la connexion est désormais en­tiè­re­ment sécurisée.
Note

Par rapport aux versions pré­cé­dentes, le handshake TLS de la version 1.3 est nettement plus léger et plus sécurisé. L’ensemble du processus décrit ici ne nécessite plus qu’un seul aller-retour (1 RTT), ce qui accélère sen­si­ble­ment l’éta­blis­se­ment de la connexion.

La raison pour laquelle le chif­fre­ment asy­mé­trique avec Diffie-Hellman n’est utilisé que pour la trans­mis­sion de la clé de session (mais pas pour le chif­fre­ment des flux de données eux-mêmes) est une question de vitesse ; le chif­fre­ment asy­mé­trique est re­la­ti­ve­ment lent et re­tar­de­rait donc sig­ni­fi­ca­ti­ve­ment la com­mu­ni­ca­tion des données.

Les avantages et les in­con­vé­nients du protocole TLS

Le TLS est une solution efficace pour rendre le trafic Web plus sûr. En effet, cette solution n’exige pas des deux parties qu’elles chiffrent elles-mêmes le contenu (les données d’un for­mu­laire par exemple). Au lieu de cela, il suffit que le transfert soit réalisé via le protocole TLS, quels que soient les systèmes d’ex­ploi­ta­tion et les ap­pli­ca­tions lo­gi­cielles des deux parties. Tous les flux de données sont alors au­to­ma­ti­que­ment chiffrés pendant la trans­mis­sion.

Le prix de la sécurité est une con­fi­gu­ra­tion de connexion un peu plus lente, car les étapes du processus décrites ci-dessus (cer­ti­fi­cat, nombre aléatoire et échange de clés) sont gour­mandes en res­sources.

Les uti­li­sa­tions du TLS

Comme mentionné ci-dessus, le TLS est uni­ver­sel­le­ment ap­pli­cable, car il est in­dé­pen­dant des ap­pli­ca­tions et des systèmes d’ex­ploi­ta­tion. En con­sé­quence, il existe une version sécurisée TLS pour divers pro­to­coles d’ap­pli­ca­tion. Le schéma de dé­no­mi­na­tion est dans la plupart des cas assez simple : la lettre « S » est placée après le nom du protocole si celui-ci com­mu­nique via TLS.

Le domaine d’ap­pli­ca­tion le plus important du TLS est Internet, et plus pré­ci­sé­ment le protocole HTTP. Sa variante chiffrée est appelée HTTPS.

Les ap­pli­ca­tions suivantes, fré­quem­ment ren­con­trées, doivent également être men­tion­nées :

  • POP3S : récupérer les emails du serveur en utilisant le protocole POP3
  • IMAPS : syn­chro­ni­ser votre boîte de réception avec le serveur en utilisant le protocole IMAP
  • SMTPS : envoyer des emails
  • FTPS : transfert de fichiers via le protocole FTP
  • SIPS : Té­lé­pho­nie VoIP (Voice-over-IP) utilisant le protocole SIP
  • IRCS : Dis­cus­sions (chats) chiffrées
  • QUIC : protocole de transport de Google intégrant TLS 1.3 ; al­ter­na­tive au TCP pour des con­nexions Web plus rapides et plus sé­cu­ri­sées (par exemple avec HTTP/3)

OpenVPN est un logiciel gratuit per­met­tant de cons­truire un Virtual Private Network (VPN) qui utilise également le protocole TLS.

Les im­plé­men­ta­tions du TLS

Les prin­ci­pales im­plé­men­ta­tions du Transport Layer Security sont les suivantes :

  • OpenSSL : de loin l’ap­pli­ca­tion la plus courante utilisée pour la plupart des sites HTTPS
  • GnuTLS (Free Software Foun­da­tion)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas et la com­mu­nauté open source)
  • Botan (Licence BSD, Jack Lloyd)
  • SSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Cette liste n’est pas ex­haus­tive. Des in­for­ma­tions dé­tail­lées sur les dif­fé­rentes im­plé­men­ta­tions du TLS sont dis­po­nibles sur Wikipédia en anglais.

Les vul­né­ra­bi­li­tés connues du TLS

Même le TLS n’est pas à l’abri des attaques et n’est pas exempt de certains dangers. Les points d’attaque connus sont les suivants :

  • Erreurs de pro­gram­ma­tion : Heart­bleed Bug, un bug majeur dans les anciennes versions d’OpenSSL, est devenu célèbre. Il a été corrigé en 2014.
  • Chif­fre­ment affaibli : en raison des res­tric­tions à l’ex­por­ta­tion du chif­fre­ment américain, des versions « ex­por­tables », moins sé­cu­ri­sées, ont été mises en cir­cu­la­tion.
  • Vul­né­ra­bi­lité liée à la com­pres­sion : l’uti­li­sa­tion de la com­pres­sion HTTP au lieu de la com­pres­sion TLS permet à des pirates de déduire des contenus chiffrés.
  • Exemple d’ex­ploi­ta­tion : l’attaque BEAST, décrite dès 2014, ciblait TLS 1.0. Les versions récentes ne sont plus vul­né­rables.
  • Ancienne faille bien connue : Padding Oracle, dé­cou­verte en 2002, affectait les versions jusqu’à SSL 3.0. TLS 1.3 est épargnée.
  • Technique de con­tour­ne­ment : ALPACA, iden­ti­fiée en 2021, a montré que des cer­ti­fi­cats TLS pouvaient être exploités sur des serveurs mal con­fi­gu­rés pour in­ter­cep­ter ou détourner des com­mu­ni­ca­tions.

Des efforts ont également été déployés pour empêcher un chif­fre­ment TLS en­tiè­re­ment sécurisé afin que les autorités puissent avoir un aperçu des com­mu­ni­ca­tions chiffrées, par exemple en relation avec des tran­sac­tions fi­nan­cières et des activités cri­mi­nelles. L’ETSI (Institut européen des normes de té­lé­com­mu­ni­ca­tions) a, à un moment donné, étudié la pos­si­bi­lité d’instaurer un « point d’accès contrôlé » au chif­fre­ment TLS, afin de permettre aux autorités l’accès à certaines com­mu­ni­ca­tions, notamment dans le cadre de la lutte contre la cri­mi­na­lité.

Aller au menu principal