• Actinuance

Le HTTPS pour les nuls

Depuis des années on entend parler de SSL, TLS, HSTS, certificat, BEAST, etc. sans prendre le temps de les comprendre. Cet article présentera de manière « simplifiée » le protocole HTTPS et ses composantes.

Qu’est-ce que le HTTPS ?

Le HTTPS est la version sécurisée du protocole HTTP. Il permet de se connecter à des sites Internet sans que le contenu des données échangées, ni même les URL complètes des sites visités, ne soit récupérables par un pirate informatique (ou une entreprise …).

Les différentes versions de SSL/TLS

Le protocole SSL (Secure Socket Layer) est apparu dans les années 90 avec deux versions disponibles : le SSLv2 et le SSLv3, puis il a été remplacé dans les années 2000 par le protocole TLS (Transport Layer Security). Trois versions du protocole TLS existent actuellement : TLS v1.0, TLS v1.1 et TLSv1.2 ; nous reviendrons sur le TLSv1.3 plus loin dans cet article.

Les protocoles SSL et le TLSv1.0 sont aujourd’hui considérés comme non conformes suite à de nombreuses attaques : DROWN (SSLv2), POODLE (SSLv3) et BEAST(TLSv1.0). Il est recommandé de n’utiliser que les versions les plus récentes du protocole TLS : TLSv1.1, TLSv1.2 ou TLSv1.3.

De quoi est « composé » le protocole HTTPS

  1. Les certificats

Le certificat permet de valider l’identité du visiteur. Il permet de s’assurer que l’on communique avec le bon serveur.

Depuis 2015 la solution Let’s Encrypt permet simplement et gratuitement d’obtenir des certificats.

  1. Les suites cryptographiques

Une suite cryptographique est un groupement d’algorithmes dont chacun va assurer la sécurité d’une partie de la communication entre un client et le serveur. La sécurité de ces suites cryptographiques dépend fortement de l’algorithme de chiffrement utilisé.

  1. La clé de chiffrement

Dans un échange HTTPS et pour chiffrer les communications, le serveur va envoyer son certificat au navigateur de l’utilisateur au moyen d’une clé publique. Cette clé publique se définit par sa taille en bits. Plus la taille de la clé sera petite, plus elle sera facile à déchiffrer (et non pas DECRYPTER, je vous renvoie sur ce très bon site au passage : https://chiffrer.info/). Il est aujourd’hui recommandé d’utiliser des clés d’une taille minimale de 2048 bits.

  1. La renégociation

Dans un échange HTTPS le client et le serveur vont négocier la « meilleure » version du protocole disponible. « Je vois que tu acceptes le protocole TLSv1.2, moi aussi. Echangeons ensemble via ce protocole ». Le souci avec la renégociation TLS est qu’en rendant possible cette négociation, un client pourrait demander au serveur d’utiliser le protocole TLSv1.0 sujet à la vulnérabilité BEAST.

  1. HSTS (HTTP Strict Transport Security)

Le HSTS est une fonctionnalité implémentée sur un serveur Web à destination du navigateur des utilisateurs. Cette fonctionnalité va forcer les connexions HTTPS avec chiffrement. Par exemple si mon site example.com peut être consulté via l’url http://example.com ET https://example.com. Le protocole HSTS va forcer le navigateur à se connecter au site https://example.com.

Nouveautés avec le TLSv1.3

10 ans après le TLSv1.2, le TLSv1.3 montre le bout de son nez. Il est disponible en version finale depuis août 2018. Globalement, le protocole est plus rapide et plus fiable en termes de sécurité.

Plus rapide dans le sens où il y aura moins d’interactions client/serveur comme le montre ce petit schéma explicatif :

Source : https://kinsta.com/blog/tls-1-3/

En termes de sécurité, le TLSv1.3 n’autorise pas les suites de chiffrements obsolètes, telles que DES, 3DES, RC4, SHA1, etc.

Conclusion

Voilà, vous savez maintenant tout sur le protocole HTTPS. Il est performant, sécurisé, met en confiance les utilisateurs et il permet d’être conforme à tout un tas de réglementations.

Faites-nous des retours si vous avez commencé l’implémentation du TLSv1.3 !

© 2020 par Actinuance Consulting.

  • LinkedIn - Grey Circle