Qu'est-ce que HTTPS ?

HTTP protégé par TLS. Il chiffre les échanges, détecte les altérations et authentifie le serveur au moyen d'un certificat de serveur. Les URL commencent par https:// et le numéro de port par défaut est 443. Les requêtes et les réponses ont la même forme qu'en HTTP, avec une couche TLS en dessous.

Nom japonais: HTTPS

« HTTPS » apparaît dans 12 questions d'entraînement réparties sur 6 thèmes, dont Bases des réseaux informatiques, Bases des technologies web, Bases de la sécurité de l'information.

Domaine: Bases des technologies web

Comment une connexion s'établit

Le navigateur ouvre d'abord une connexion TCP avec le serveur (QUIC en HTTP/3), puis effectue une négociation TLS. Le navigateur envoie les suites cryptographiques qu'il prend en charge, une valeur d'échange de clés et le nom du serveur qu'il veut joindre (SNI), et le serveur renvoie son certificat et sa propre valeur d'échange de clés. Par un échange de clés comme ECDHE, les deux dérivent une nouvelle clé partagée pour chaque connexion, et le navigateur vérifie le certificat du serveur. Les requêtes et les réponses HTTP qui suivent sont chiffrées et protégées contre les altérations par un algorithme de cryptographie symétrique comme AES-GCM. Avec TLS 1.3, la négociation se fait en un aller-retour.

Vérifier le serveur grâce à son certificat

Un certificat de serveur associe un nom de domaine à une clé publique, garantis par une autorité de certification (AC) au moyen d'une signature numérique. Le navigateur vérifie que le certificat remonte, par une chaîne de signatures, jusqu'à une autorité de certification racine digne de confiance, qu'il est dans sa période de validité, qu'il correspond au nom d'hôte de l'URL et qu'il n'a pas été révoqué. Cela empêche les attaques de l'homme du milieu, dans lesquelles quelqu'un intercepte la connexion et se fait passer pour le vrai serveur. Si les vérifications échouent, le navigateur affiche un avertissement et interrompt la connexion.

Ce qu'il protège et ce qu'il ne protège pas

HTTPS protège le contenu des pages, le chemin et la requête de l'URL, les en-têtes et les cookies contre l'écoute et l'altération en chemin. L'adresse IP du serveur ainsi que le volume et la chronologie du trafic restent visibles, et le nom de domaine peut souvent être déduit des requêtes DNS ou du SNI. En outre, HTTPS ne protège que le canal ; il ne prouve pas que l'exploitant du site est digne de confiance, car les faux sites peuvent eux aussi obtenir des certificats et utiliser HTTPS. On l'utilise avec HSTS, qui empêche le retour à HTTP, et avec l'attribut Secure des cookies, qui ne les envoie que sur HTTPS.

S'entraîner : questions sur HTTPS

Dans un cluster Kubernetes, les requêtes HTTPS qui arrivent pour un même nom d'hôte doivent être envoyées au Service api si le chemin commence par /api, et au Service web sinon. Quelle ressource convient pour définir cette règle d'aiguillage ?

  1. AIngress
  2. BReplicaSet
  3. CUn Service de type: ClusterIP
Afficher la réponse et l'explication

Réponse : A. Ingress

Un Ingress est une ressource qui définit des règles pour aiguiller vers des Services, selon le nom d'hôte et le chemin de l'URL, les requêtes HTTP et HTTPS venant de l'extérieur du cluster, et l'on peut aussi y configurer la terminaison TLS. Le composant qui reçoit et aiguille réellement les requêtes est un contrôleur Ingress installé dans le cluster (qui joue le rôle de proxy inverse). Un Service de type: ClusterIP est un point d'accès joignable seulement depuis l'intérieur du cluster et n'offre pas d'aiguillage selon le chemin. Un ReplicaSet maintient le nombre de Pods et n'a rien à voir avec l'aiguillage du trafic.

Un client établit une nouvelle connexion HTTPS (TLS 1.3 sur TCP) vers un serveur web dont le temps aller-retour (RTT) est de 100 ms. Quelle durée est la plus proche du temps nécessaire jusqu'au début de la réception de la réponse à la première requête ? La résolution DNS est déjà faite, et l'on néglige le temps de traitement du serveur et le temps de transfert des données.

  1. AEnviron 100 ms
  2. BEnviron 300 ms
  3. CEnviron 200 ms
Afficher la réponse et l'explication

Réponse : B. Environ 300 ms

D'abord, le three-way handshake de TCP prend un aller-retour (le client peut envoyer son premier message TLS avec l'ACK final). Ensuite, la poignée de main TLS 1.3 prend un aller-retour, puis la requête et la réponse HTTP un de plus, soit 3 allers-retours au total : 3 × 100 = 300 ms. Avec TLS 1.2, l'échange de clés prend 2 allers-retours, ce qui donne 4 allers-retours, soit 400 ms. Ce temps d'attente dépend du nombre de RTT, fixé par la distance ; augmenter la bande passante de la liaison ne le raccourcit donc pas. QUIC, utilisé par HTTP/3, regroupe les poignées de main de transport et cryptographique en un seul aller-retour, et offre aussi, lors d'une reconnexion, un moyen d'envoyer des données dès le premier aller (0-RTT).

Questions fréquentes

Quelle est la différence entre HTTP et HTTPS ?

HTTPS chiffre les échanges HTTP avec TLS et y ajoute la détection des altérations et l'authentification du serveur. Les requêtes et les réponses ont la même forme, et les ports par défaut sont 80 pour HTTP et 443 pour HTTPS. Avec HTTP seul, les équipements situés sur le chemin peuvent lire ou modifier le contenu.

Un site est-il sûr du seul fait qu'il utilise HTTPS ?

HTTPS garantit que le trafic n'est ni lu ni modifié en transit et que l'on est connecté à un serveur de ce nom de domaine. Il ne garantit pas que le site lui-même est authentique ou inoffensif. Les sites d'hameçonnage peuvent aussi utiliser HTTPS : il faut donc vérifier soigneusement le nom de domaine.

HTTPS utilise-t-il le chiffrement à clé publique ou le chiffrement symétrique ?

Les deux, pour des tâches différentes. La négociation utilise des techniques à clé publique pour l'échange de clés et l'authentification par certificat, et les données elles-mêmes sont chiffrées par un algorithme symétrique rapide avec les clés créées à cette occasion.

« HTTPS » dans les explications

Questions mentionnant « HTTPS » (12)

  1. Dans un cluster Kubernetes, les requêtes HTTPS qui arrivent pour un même nom d'hôte doivent être envoyées au Service api si le chemin commence par /api, et au Service web sinon. Quelle ressource convient pour définir cette règle d'aiguillage ?
  2. Un client établit une nouvelle connexion HTTPS (TLS 1.3 sur TCP) vers un serveur web dont le temps aller-retour (RTT) est de 100 ms. Quelle durée est la plus proche du temps nécessaire jusqu'au début de la réception de la réponse à la première requête ? La résolution DNS est déjà faite, et l'on néglige le temps de traitement du serveur et le temps de transfert des données.
  3. Parmi les propositions suivantes, laquelle est protégée par HTTPS (HTTP protégé par TLS) ?
  4. Le terminal A (192.168.1.10), situé derrière un routeur qui effectue du NAPT et dont l'adresse globale externe est 198.51.100.7, se connecte depuis le port source 50000 au port 443 du serveur web 203.0.113.5, et le routeur traduit la source en port 61000 de 198.51.100.7 : quelle est la destination des paquets de réponse renvoyés par le serveur web ?
  5. Quelle combinaison associe correctement des protocoles aux numéros de port standard utilisés par leurs serveurs ?
  6. Quelle description du cookie défini par l'en-tête ci-dessus est correcte ?
  7. Quelle description d'un Service Worker est correcte ?
  8. Quelle description d'un proxy inverse est correcte ?
  9. Une application web de forum présentait une vulnérabilité par laquelle des scripts contenus dans des textes publiés par des utilisateurs s'exécutaient dans le navigateur des autres visiteurs. Quelle combinaison indique correctement le nom de cette vulnérabilité et sa contre-mesure fondamentale ?
  10. Si une application web conserve le même identifiant de session avant et après la connexion, un attaquant peut amener l'utilisateur à utiliser un identifiant de session préparé à l'avance, puis, une fois l'utilisateur connecté, usurper son identité avec cet identifiant. Quelle est la contre-mesure la plus appropriée contre cette attaque ?
  11. On pose 1 GiB = 2³⁰ octets et 1 EiB = 2⁶⁰ octets. Un chiffrement par blocs à blocs de 64 bits (comme 3DES) est utilisé en mode CBC pour chiffrer une grande quantité de données sous une seule clé. En considérant les blocs de texte chiffré comme des valeurs aléatoires de 64 bits, quelle est la quantité de données à partir de laquelle, d'après le paradoxe des anniversaires, la probabilité qu'apparaisse une paire de blocs de texte chiffré identiques ne peut plus être négligée ?
  12. Quelle description d'un WAF (pare-feu applicatif web) est correcte ?

Termes associés

HTTP (Hypertext Transfer Protocol) URL (Uniform Resource Locator) TLS (Transport Layer Security) Cookie (cookie HTTP) Adresse IP Cross-site scripting (XSS) Proxy inverse (reverse proxy) DNS (Domain Name System) Numéro de port Kubernetes

Retour au glossaire