Qu'est-ce que TLS ?
Dans les communications HTTPS, les données HTTP ne sont pas envoyées telles quelles ; elles sont protégées par un mécanisme appelé TLS.
La différence entre HTTP et HTTPS est parfois expliquée comme « chiffré ou non ». Mais le rôle de TLS ne se limite pas au chiffrement. Rendre le contenu de la communication difficile à lire pour des tiers, rendre les modifications pendant la communication difficiles à accepter, et vérifier le serveur de destination sont aussi des rôles importants.
Cet article organise ce que TLS protège et ce qu'il ne protège pas.
Qu'est-ce que TLS ?
TLS est l'abréviation de Transport Layer Security. C'est un protocole destiné à protéger les communications sur un réseau.
Sur le Web, il est utilisé pour protéger la communication entre le navigateur et le serveur web. Lorsque vous ouvrez un site web HTTPS dans un navigateur, le contenu de la communication HTTP est envoyé et reçu dans un état protégé par TLS.
Les protections principalement fournies par TLS sont les trois suivantes.
| Rôle | Signification | Explication |
|---|---|---|
| Confidentialité | Rendre le contenu de la communication difficile à lire | Rendre difficile pour un tiers situé sur le trajet de comprendre le contenu des données |
| Intégrité | Rendre les modifications du contenu de la communication faciles à détecter | Permettre de détecter si les données ont été modifiées en cours de route |
| Authentification | Vérifier la destination de connexion | Vérifier, au moyen du certificat serveur, que la destination possède un certificat légitime pour ce domaine |
Autrement dit, il est plus exact de comprendre TLS non seulement comme un « mécanisme qui chiffre la communication », mais comme un mécanisme qui protège le contenu de la communication et vérifie la destination.
HTTPS est HTTP protégé par TLS
HTTPS est une communication où HTTP est protégé par TLS.
HTTP est le mécanisme qui permet au navigateur et au serveur web d'échanger du contenu de page, des données de formulaire, etc. Mais HTTP seul ne chiffre pas le contenu de la communication. Il existe donc un risque que des tiers situés sur le trajet lisent ou modifient le contenu.
Avec HTTPS, les échanges HTTP se font à l'intérieur de TLS. Ainsi, le contenu des requêtes et réponses envoyées et reçues par HTTP devient difficile à lire pendant le trajet.
| Élément | HTTP | HTTPS |
|---|---|---|
| Contenu de communication | Envoyé en clair | Protégé par TLS |
| Résistance à l'écoute | Faible | Élevée |
| Détection de modification | Faible | Plus facile à détecter grâce à TLS |
| Vérification de la destination | Fondamentalement faible | Vérification par certificat serveur |
| Structure principale | HTTP | HTTP over TLS |
HTTPS n'est pas un mécanisme qui traite un contenu différent de HTTP. C'est une méthode qui envoie la communication HTTP en la protégeant par TLS.
Ce que TLS protège
Le centre de ce que TLS protège est le contenu de la communication qui circule entre le navigateur et le serveur.
Sur le trajet de communication peuvent se trouver un routeur Wi-Fi, un fournisseur d'accès, des équipements réseau d'organisation, des équipements de relais sur Internet, etc. Si TLS n'est pas utilisé, le contenu peut être lu ou modifié sur ce trajet.
Lorsque TLS est actif, le contenu de la communication est chiffré. Ainsi, même si un tiers situé sur le trajet obtient les données, il lui est difficile de lire directement le contenu HTTP.
| Information | Protection par TLS | Explication |
|---|---|---|
| Corps de page | Protégé | Le HTML et le contenu textuel renvoyés par le serveur sont difficiles à lire pendant la communication |
| Contenu de formulaire | Protégé | Les informations de connexion, contenus de demande, etc. sont chiffrés |
| En-têtes HTTP | Protégés | Les en-têtes HTTP comme ou User-Agent sont envoyés à l'intérieur de TLS |
| Valeurs de cookie | Protégées | Le contenu des cookies devient difficile à lire pendant la communication |
| Chemin et requête de l'URL | Protégés | La partie correspondant à /search?q=... dans example.com/search?q=... est protégée comme requête HTTP |
Toutefois, cette protection concerne les tiers situés sur le trajet de communication. Le serveur de destination doit traiter la requête ; il déchiffre donc le contenu de la communication et le lit.
Les certificats serveur vérifient la destination
TLS ne chiffre pas seulement le contenu ; il vérifie aussi le serveur de destination.
Lorsque vous accédez à un site web HTTPS, le serveur présente un certificat serveur. Le navigateur vérifie notamment si ce certificat a été émis par une autorité de certification de confiance, s'il n'a pas expiré et s'il correspond au nom de domaine consulté.
Cela permet de vérifier que l'interlocuteur possède un certificat légitime pour le domaine prévu.
Toutefois, le fait qu'un certificat serveur existe ne garantit pas que l'exploitant du site est sûr ni que les informations du site sont correctes. Ce que le certificat vérifie principalement est « possède-t-il un certificat valide pour ce domaine ? ».
Autrement dit, le cadenas HTTPS indique que « le trajet de communication est protégé par TLS », mais il ne garantit pas jusqu'à « ce site fournit un contenu digne de confiance ».
Portée du chiffrement TLS
Ce que TLS chiffre est principalement le contenu de HTTP.
Par exemple, le corps d'une page web, le contenu envoyé par formulaire, les valeurs de cookies, les en-têtes HTTP, le chemin et la chaîne de requête de l'URL sont envoyés à l'intérieur de TLS.
En revanche, même avec TLS, certaines informations nécessaires à la communication et certaines informations situées à l'extérieur de la communication restent présentes.
| Information | TLS la cache-t-il ? | Explication |
|---|---|---|
| Corps de page | Facilement caché | Protégé par TLS comme contenu de la réponse HTTP |
| Contenu de formulaire | Facilement caché | Protégé par TLS comme corps de la requête HTTP |
| Valeur de cookie | Facilement cachée | Protégée par TLS comme en-tête HTTP |
| Chemin et requête de l'URL | Facilement cachés | Protégés par TLS comme contenu de la requête HTTP |
| Adresse IP de destination | Non cachée | Nécessaire pour livrer les paquets à la destination |
| Adresse IP source | Non cachée | Visible depuis le serveur ou les relais |
| Certaines informations lors de la connexion TLS, comme SNI | Peuvent être visibles selon l'environnement | Dans les environnements sans ECH, elles peuvent servir d'indice sur le domaine de destination |
| Requêtes DNS | Restent un autre problème | Avec DNS ordinaire, le domaine demandé peut être visible |
| Volume de communication | Non caché | La quantité de données envoyées et reçues peut être observée |
| Moment de communication | Non caché | Le moment où la communication a lieu peut être observé |
Cette différence est importante. TLS protège le contenu de HTTP, mais il ne fait pas disparaître l'existence même de la communication, son volume, son timing ni les adresses IP.
Attention à la terminaison TLS
Il faut garder à l'esprit de quel point à quel point TLS protège la communication.
Dans les explications générales, on dit que « la communication entre le navigateur et le serveur web est chiffrée ». Toutefois, dans les services web réels, un CDN, un répartiteur de charge, un reverse proxy, etc. peuvent être le point de terminaison TLS.
La terminaison TLS est le point où la communication chiffrée est déchiffrée.
Par exemple, il existe des configurations où la communication entre le navigateur et le CDN est protégée par TLS, puis le CDN transmet vers le serveur d'origine par une autre connexion. Dans ce cas, la destination TLS vue par le navigateur est côté CDN, et la protection au-delà dépend de la configuration du service.
Cela ne signifie pas que TLS est faible. TLS est un mécanisme qui protège la communication entre des endpoints ; l'endroit qui devient endpoint change selon la configuration du système.
TLS n'est pas une technologie d'anonymisation
TLS n'est pas une technologie d'anonymisation.
TLS est une technologie destinée à protéger le contenu de la communication contre les tiers situés sur le trajet. En revanche, le contenu arrive au serveur de destination. Le serveur doit traiter la requête, et peut donc connaître les données envoyées, les cookies, les informations de connexion, l'heure d'accès, l'adresse IP source, etc.
Lorsque vous accédez à un site web HTTPS, les tiers situés sur le trajet ont plus de mal à lire le contenu de la page. Mais le site web de destination lui-même peut traiter la page consultée, le contenu de formulaire envoyé, l'état de connexion, les cookies, etc.
| Élément | TLS peut-il le résoudre ? | Raison |
|---|---|---|
| Écoute pendant la communication | Facilement résolu | Le contenu de la communication est chiffré |
| Modification pendant la communication | Facilement résolue | Il existe un mécanisme de détection de modification |
| Lecture par le serveur de destination | Non résolu | Le serveur doit traiter le contenu de la communication |
| Dissimulation de l'adresse IP source | Non résolu | L'adresse IP source peut être visible côté serveur |
| Identification par cookie | Non résolue | Les cookies servent à identifier l'utilisateur côté serveur |
| Lien avec la personne par connexion | Non résolu | Les actions sont liées au compte |
Le chiffrement et l'anonymisation ont des objectifs différents.
Le chiffrement est une technologie destinée à rendre le contenu de la communication difficile à lire par des tiers. L'anonymisation est une manière de rendre difficile de savoir qui communique, où il se connecte et quelles actions appartiennent au même utilisateur.
TLS est une technologie forte pour le premier objectif, mais il ne réalise pas le second à lui seul.
Pourquoi comprendre TLS
Comprendre TLS permet d'évaluer correctement la sécurité de HTTPS sans la surestimer.
HTTPS est très important comme mesure contre l'écoute et la modification sur le trajet de communication. Pour les connexions, les paiements, l'envoi de données personnelles, l'accès aux écrans d'administration, etc., l'utilisation de HTTPS est un prérequis.
En revanche, même avec HTTPS, les informations arrivent au serveur de destination. Les journaux serveur, l'adresse IP source, les cookies, les informations de compte, les informations de navigateur, etc. restent des problèmes distincts de TLS.
Pour comprendre TLS, il faut donc distinguer les points suivants.
| Point de vue | Objectif principal | Lien avec TLS |
|---|---|---|
| Chiffrement | Rendre le contenu de la communication difficile à lire par des tiers | Rôle central de TLS |
| Intégrité | Détecter les modifications pendant la communication | Rôle important de TLS |
| Authentification de la destination | Vérifier que le serveur possède un certificat légitime | Rôle important de TLS |
| Anonymisation | Rendre moins évidents l'utilisateur et la relation de connexion | TLS seul ne peut pas la réaliser |
| Prévention du suivi | Réduire l'identification par cookies ou comptes | Nécessite des mesures distinctes de TLS |
TLS est une technologie fondamentale qui soutient la sécurité des communications. Mais ce n'est pas un mécanisme universel qui résout tous les problèmes de vie privée et d'anonymat.
Résumé
TLS est le mécanisme central de protection de communication utilisé par HTTPS.
TLS chiffre le contenu de la communication entre le navigateur et le serveur, ce qui rend ce contenu difficile à lire par des tiers situés sur le trajet. Il facilite aussi la détection de modifications pendant la communication et vérifie la destination au moyen du certificat serveur.
En revanche, TLS n'est pas une technologie d'anonymisation. Le contenu de la communication arrive au serveur de destination, et les problèmes d'adresse IP source, de journaux serveur, de cookies, d'informations de compte, etc. restent distincts.
Pour comprendre correctement TLS, il faut distinguer « le contenu de la communication est chiffré » et « qui accède où est caché ».
HTTPS est important pour rendre la communication sûre, mais il ne réalise pas automatiquement l'anonymat ni la prévention du suivi.