TLS 1.3 : Tout savoir sur la nouvelle version du protocole

Publié le , par Jacky Thierry, dans la catégorie #Sécurité & adminsys

TLS 1.3

A propos de l'auteur

Jacky THIERRY

CTO, Project Manager, Startup owner

Travaillant depuis plus de 15 ans dans le digital, j'ai dirigé de nombreux projets pour des grosses companies mondiales, des agences web, et des associations locales. Je suis spécialisé dans le développement agile avec des équipes outsourcées.

  • Jacky Thierry linkedin
  • Jacky Thierry twitter
  • Jacky Thierry instagram
  • Jacky Thierry RSS feed
Jacky Thierry

Présentation de TLS 1.3

Qu’est ce que TLS

TLS (Transport Layer Security, ou sécurité de la couche de transport) est un protocole de sécurisation des échanges web.

Ce protocole est le successeur du protocole SSL (abandonné depuis la version 3) et est massivement adopté sur internet, notamment au travers du protocole HTTPS, qui est l’ajout de TLS au protocole HTTP.

Celui ci utilise des certificats TLS (également appelés certificats SSL) et a pour but de sécuriser les échanges entre un client et un serveur en proposant les fonctionnalités suivantes :

  1. Chiffrement et intégrité des données échangées
  2. Authentification et légitimité du serveur

Pour en savoir plus, lisez mon dossier sur les certificats SSL

Originalement développé par la société Netscape (alors qu’il n’était encore que le protocole SSL), TLS est depuis maintenu par l’IETF.

IETF

L’IETF (ou Internet Engineering Task Force) est une organisation a but non lucrative, existant depuis 1986, qui développe et promeut des standards pour internet.

Sa principale mission est de rendre internet meilleur au travers d’études et de création de documents techniques inspirant la façon dont les gens et les sociétés conçoivent et utilisent internet.

C’est une organisation libre et ouverte à tous, sans prérequis d’admission, basé sur le volontariat des participants.

Comment ça marche

Ce protocole établit la procédure à suivre lors d’une connexion entre un client et un serveur.

Il va instaurer un dialogue avec le client pour partager ses spécificités techniques et choisir un algorithme commun à utiliser.

Lors d’une connexion, chaque dialogue est appelé RTT : Round Trip Time

Jusqu’à la version 1.2, une connexion à travers TLS nécessitait 2 dialogues (ou RTT) pour partager le certificat, les clefs, et l’algorithme à utiliser.

Nouveautés de TLS 1.3

Performances

Alors que la version 1.2 nécessitait 2 RTT pour établir la connexion, TLS 1.3 n’en nécessitera plus qu’un.

De plus, l’implémentation d’une nouvelle fonctionnalité nommée 0-RTT permettra pour toutes les connexions déjà initialisées de ne plus avoir besoin de redemander les infos du certificat au serveur. Les informations de la première connexion seront gardées en cache.

L’impact de ces 2 évolutions peuvent paraître faible (1 RTT prend généralement quelques centaines de millisecondes), mais pour les connexions internet avec une latence importante, ou pour les connexions depuis un forfait mobile, l’impact peut être significatif.

Sécurité

Pour fonctionner et chiffrer les données, TLS a besoin d’un algorithme de chiffrement.

Il en existe de nombreux, plus ou moins récents et plus ou moins sécurisés.

TLS 1.3 supprime une dizaine d’algorithmes obsolètes pour renforcer la sécurité des chiffrements :

  • RC4 Steam Cipher
  • RSA Key Transport
  • SHA-1 Hash Function
  • CBC Mode Ciphers
  • MD5 Algorithm
  • Various Diffie-Hellman groups
  • EXPORT-strength ciphers
  • DES
  • 3DES

Comment utiliser TLS 1.3

Librairies

OpenSSL est un outil permettant de manipuler ses certificats. TLS 1.3 est supporté à partir de la version 1.1.1 qui est encore en version beta.

La version finale compatible est prévue pour être distribuée courant le 2e semestre 2018.

Serveurs web

Aujourd’hui, seul Nginx accepte la version 1.3 de TLS. Apache se basant sur OpenSSL, celui ci sera compatible une fois la version 1.1.1 d’OpenSSL sortie.

Voici comment activer TLS 1.3 sur Nginx en modifiant le vhost de son site :

vi /etc/nginx/sites-availables/website.conf

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

Navigateurs internet

Certains navigateurs internet acceptent déjà TLS 1.3 :

  • Chrome (depuis la version 66)
  • Firefox (depuis la version 60)

Plus d’info sur la compatibilité des navigateurs sur Caniuse