TLS : comment le chiffrement d’Internet fonctionne

Au début du Web, les aspects touchant à la sécurité des données n’étaient pas aussi importants qu’aujourd’hui. Toutes les communications étaient simplement transmises ouvertement et sans chiffrement d’un ordinateur à l’autre. On peut alors comparer cela à une carte postale : n’importe quel facteur peut la lire.

Le protocole TLS, également nommé SSL/TLS, a introduit le chiffrement des contenus envoyés. Pour s’en tenir à la comparaison mentionnée ci-dessus, ce chiffrement correspond à une enveloppe scellée que seul le destinataire légitime peut ouvrir.

Qu’est-ce que le TLS ?

L’abréviation 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 destinataires autorisés. L’ancien nom était SSL (Secure Socket Layer) ; comme cette abréviation est encore plus connue que TLS, TLS est alors souvent désigné par le nom double « SSL/TLS ».

Comment fonctionne le protocole TLS ?

TLS chiffre tout le trafic qui est envoyé sur TCP en utilisant une méthode de chiffrement symé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 communication avec le TLS soit sécurisée. Toute personne qui envoie des pièces jointes chiffrées connaît bien ce problème : vous chiffrez un fichier et devez alors communiquer au destinataire le mot de passe secret, par exemple par téléphone.

Le protocole TLS utilise la procédure suivante pour résoudre ce problème :

  1. Lorsque le client, par exemple un navigateur Internet, contacte le serveur Web, celui-ci envoie d’abord son certificat au client. Ce certificat SSL prouve que le serveur est authentique et qu’il ne dissimule pas une fausse identité.
  2. Le client vérifie la validité du certificat et envoie un numéro aléatoire au serveur, chiffré avec la clé publique (Public Key) du serveur.
  3. Le serveur utilise ce numéro aléatoire pour générer la clé de session (Session Key), qui est utilisée pour chiffrer la communication. Comme le numéro aléatoire provient du client, celui-ci peut être sûr que la clé de session émane effectivement du serveur adressé.
  4. Le serveur envoie la clé de session au client sous forme chiffrée. Ce chiffrement est effectué au moyen de l’échange de clés Diffie-Hellmann.
  5. Les deux parties peuvent maintenant envoyer leurs données de manière sécurisée avec la clé de session.

La raison pour laquelle le chiffrement asymétrique n’est utilisé que pour la transmission de la clé de session (mais pas pour le chiffrement des flux de données eux-mêmes) est la question de la vitesse ; le chiffrement asymétrique est relativement lent et retarderait donc significativement la communication des données.

Les avantages et les inconvé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, par exemple les données des formulaires. Au lieu de cela, il suffit simplement que le transfert soit réalisé via le protocole TLS, quels que soient les systèmes d’exploitation et les applications logicielles des deux parties. Tous les flux de données sont alors automatiquement chiffrés pendant la transmission.

Le prix de la sécurité est une configuration de connexion un peu plus lente, car les étapes du processus décrites ci-dessus : certificat, nombre aléatoire et échange de clés sont gourmandes en ressources.

Les utilisations du TLS

Comme mentionné ci-dessus, le TLS est universellement applicable car il est indépendant des applications et des systèmes d'exploitation. En conséquence, il existe une version sécurisée TLS pour divers protocoles d’application. Le schéma de dénomination est assez simple : la lettre « S » est placée après le nom du protocole si celui-ci communique via TLS.

Le domaine d’application le plus important du TLS est le World Wide Web, plus précisément le protocole HTTP. Sa variante chiffrée est appelée HTTPS.

Les applications suivantes, fréquemment rencontrées, doivent également être mentionnées :

  • POP3S : récupérer les emails du serveur en utilisant le protocole POP3
  • IMAPS : synchroniser 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éphonie Voix sur IP (Voice-over-IP) utilisant le protocole SIP
  • IRCS : Discussions (Chats) chiffrées

OpenVPN, un logiciel gratuit permettant de construire un Virtual Private Networks (VPN), il utilise également le protocole TLS.

Les applications du TLS

Les principales applications du Transport Layer Security sont les suivantes :

  • OpenSSL – de loin l’application la plus courante utilisée pour la plupart des sites HTTPS
  • GnuTLS (Free Software Foundation)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Cryptlib (Peter Gutmann)
  • Botan (Licence BSD, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Cette liste n’est pas exhaustive. Des informations détaillées sur les différentes implémentations du TLS sont disponibles sur Wikipédia en anglais.

Les vulnérabilité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 programmation : le « Heartbleed Bug », un bug important dans les versions précédentes d’OpenSSL, est devenu célèbre. Il a été réparé en 2014.
  • Faiblesse du chiffrement : En raison des restrictions à l'exportation de la cryptographie américaine, des versions « exportables » plus faciles à pirater que les versions originales ont été développées.
  • Attaque via la compression : si la compression HTTP est utilisée au lieu de la compression TLS, il est possible pour les pirates de découvrir le contenu chiffré TLS par certaines méthodes.
  • L’attaque BEAST a affecté la version TLS 1.0 et a été décrite dès 2014. Les versions actuelles de TLS sont à l’abri de ce danger.
  • L’attaque Padding-Oracle a été découverte en 2002 et était en fait possible jusqu’à la version SSL 3.0. La version 1.3 actuelle de TLS n‘est pas concernée.

Des efforts ont également été déployés pour empêcher un chiffrement TLS entièrement sécurisé afin que les autorités puissent avoir un aperçu des communications chiffrées, par exemple en relation avec des transactions financières et des activités criminelles. L’ETSI (Institut européen des normes de télécommunications) est l’une des organisations qui a cherché à atteindre un tel « point de rupture » du TLS.