Protocole TLS : fonctionnement et différences entre les versions

Bloqueur de pub détectée - Vous bloquez l'affichage des publicités.
Pour soutenir le site, merci de bien vouloir laisser les publicités s'afficher.

Plus d'informations : Comment désactiver les bloqueurs de publicité sur un site internet.

TLS (Transport Layer Security) est un protocole important de communication sur les réseaux et internet.
Il permet une communication chiffrée entre un client et un serveur. Les données applicatives sont encapsulées de manière à assurer la confidentialité et l’intégrité des échanges.
Le serveur est nécessairement authentifié, et des fonctions additionnelles permettent l’authentification du client lorsqu’un tel besoin a été identifié.
C'est un protocole en poignée de main (Handshake) car le client et le serveur négocie la connexion TLS.

TLS est utilisé pour la connexion des sites HTTPS.
Mais depuis, on trouve des déclinaisons par exemple avec les protocoles POP ou SMTP pour les serveurs mails (MTA).
Les VPN peuvent utiliser TLS.
Dernièrement c'est aussi les services DNS avec DNS over TLS qui bénéficie de ce protocole de sécurité.

Enfin on trouve différentes versions du protocole TLS 1.1, TLS 1.2 et enfin TLS 1.3.
Cet article regroupe quelques informations concernant le protocole TLS (Transport Layer Security).

Protocole TLS 1.2, 1.3 : fonctionnement et différences

Introduction à TLS

Le protocole TLS (transport layer security) que l'on peut traduire par Couche de sockets sécurisée est un protocole pour sécuriser la connexion et l'échange de données.
Cette sécurisé se fait avec des protocoles cryptographiques.

TLS se base sur le protocole SSL (Secure Sockets Layer).
Si SSL est configuré correctement, un observateur tiers ne peut connaître que les paramètres de connexion (par exemple, le type de chiffrement utilisé). Ainsi que la fréquence de transmission et la quantité approximative de données, mais ne peut pas les lire et les modifier.

Après la normalisation de SSL par l'IETF (Internet Engineering Task Force), il a été renommé TLS.
Par conséquent, bien que les noms SSL et TLS soient interchangeables, ils sont toujours différents, car chacun décrit une version différente du protocole.

ProtocoleDate de publication
SSL 2.01995
SSL 3.0Novembre 1996
TLS 1.0 et TLS 1.1April 2006
TLS 1.2Aout 2008
TLS 1.3Aout 2018
Les différentes versions du protocole TLS et SSL

Très souvent la nouvelle version propose de nouveaux algorithmes de chiffrement. En effet avec le temps, des attaques permettent de casser certains algorithme.

On peut désactiver la version TLS du navigateur WEB.
Ne vous inquiétez pas pour la sécurité. Les mises à jour des navigateurs internet se chargent de désactiver les anciennes versions de TLS qui posent des problèmes de sécurité.

Lorsqu'un site propose une version de TLS trop ancienne et vulnérables. Les navigateur à base de Google Chrome comme Edge renvoie l'erreur NET::ERR_SSL_OBSOLETE_VERSION

NET::ERR_SSL_OBSOLETE_VERSION sur Google Chrome ou Microsoft Edge

A ce jour donc, il n'existe pas d'attaque qui permettent de vraiment voler les données avec une connexion TLS / SSL.
Il existe une attaque nommée Raccon mais difficile à mettre en place : Raccoon Attack: Finding and Exploiting Most-Significant-Bit-Oracles inTLS-DH(E)

Le fonctionnement du protocole TLS

Le protocole repose sur plusieurs éléments dont voici l'utilisation la plus commune:

  • Un certificat SSL ou certificat numérique X.509 qui fonctionne avec un chiffrement asymétrique (ECDHE ou RSA) qui est utilisé durant la phase de négociation en poignée de main.
  • Puis le client génère avec ces clés asymétriques une clé symétrique de session pour l'échange des données client et serveur.
  • La clé symétrique utilise souvent AES ou CHACHA20.

L'établissement de la connexion TLS

Voici les différentes étapes d'une connexion TLS dites en poignée de main (handbrake).
Cela consiste en partie à se mettre d'accord sur les méthodes à utiliser pour l'échange de données.

L'établissement de la connexion TLS
  1. Le client et le serveur se mettent d'accord sur différents paramètres comme la version du protocole, le type de chiffrement
  2. Puisque TLS fonctionne sur TCP, une connexion TCP est d'abord établie entre le client et le serveur.
  3. ClientHello. Après l'installation de TCP, le client envoie la spécification en texte brut au serveur : la version du protocole qu'il souhaite utiliser, les méthodes de chiffrement prises en charge, etc.
  4. ServerHeloDone. Le serveur approuve la version du protocole utilisé, sélectionne la méthode de chiffrement dans la liste fournie. Puis il attache son certificat et envoie une réponse au client. S'il le souhaite, le serveur peut également demander un certificat client.
  5. ClientKeyExchange et ChangeCipherSpec. La version du protocole et la méthode de chiffrement sont considérées comme approuvées à ce moment. Le client vérifie le certificat envoyé. S'il est correcte, il génère une clé symétrique qu'il chiffre avec la clé publique du certificat du serveur. Enfin il l'envoie au serveur.
  6. ChangeCipherSpec. Le serveur traite le message envoyé par le client, vérifie le MAC et envoie au client un message final («Terminé») sous forme chiffrée avec la clé symétrique.
  7. Le client déchiffre le message reçu, vérifie le MAC et si tout va bien, la connexion est considérée comme établie et l'échange des données d'application commence. La session TLS s'effectue.

Cet établissement de connexion TLS, j'en parle aussi dans cet article :

Certificats et échange de clés

La partie importante est donc le certificat soumis par le serveur.
Il permet d’authentifier ce dernier.
Il est émis par une entité tiers : Autorité de Certification de confiance.

Au cours de la partie d'authentification de l'établissement de liaison TLS, le client effectue plusieurs vérifications cryptographiques pour s'assurer que le certificat fourni par le serveur est authentique.
Cela inclut la vérification de la signature numérique et l'assurance que le certificat provient d'une autorité de certification de confiance.

Le certificat stocke la clé publique utilisée par le client pour chiffrer les données. Le serveur possède la clé privée pour les déchiffrer.
Le client n'a pu qu'à générer une clé symétrique et la chiffrer avec la clé publique.
Seul le serveur pourra déchiffrer celle-ci.
LEs deux parties sont alors en possession de la clé pour chiffrer la session TLS.

Les différents algorithmes de chiffrements et hash

Comme vous pouvez le protocole TLS peut utiliser différents algorithmes de chiffrement et hachage.
On note celui utilisé de cette manière :

Les différents algorithmes de chiffrements et hash
  • TLS est le protocole
  • ECDHE est l'algorithme d'échange de clés
  • ECDSA est l'algorithme d'authentification
  • AES 128 GCM est l'algorithme de cryptage symétrique
  • SHA256 est l'algorithme de hachage.

TLS 1.2 supporte les chiffrements suivants :

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

Par exemple ci-dessous, on voit que le site supporte toutes les versions de TLS avec différents algorithmes de chiffrement.
Certains sont considérés comme n'étant pas sûr.

Les différents algorithmes de chiffrements et hash

Pour les curieux, vous pouvez jeter un coup d'oeil à SSL Pulse pour trouver des statistiques sur le type de chiffrement utilisé par les serveurs HTTPs sur internet.

Protocole TLS 1.2, 1.3 : les différences

Le protocole TLS évolue dans le temps avec de nouvelles spécifications.
MAis surtout, certains algorithme de chiffrement sont obsolètes et peu sûr.
Ainsi au fur et à mesures du temps on recommande d'abandonner certaines versions.
Actuellement, il faut utiliser TLS 1.2 et 1.3.

Quelles sont les différences entre TLS 1.2 et 1.3 ?
Qu'apporte la version 1.3 de TLS ?

  • Un établissement de connexion plsu rapide. Des étapes ont été condensées
  • Suites de chiffrement plus simples et plus solides
  • Temps aller-retour nul (0-RTT)
Protocole TLS 1.2, 1.3 : les différences

Liens

Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article Protocole TLS : fonctionnement et différences entre les versions mais vous n'avez pas trouvé la solution à votre problème...
Suivez ces articles du forum pour trouver une réponse ou demandez à votre tour de l'aide sur le forum