Les requêtes et réponses HTTP sont envoyées en texte clair, ce qui signifie que tout le monde peut les lire. HTTPS corrige ce problème en utilisant le chiffrement TLS SSL.
HTTPS est HTTP avec chiffrement. La seule différence entre les deux protocoles est que HTTPS utilise TLS (SSL) pour chiffrer les requêtes et réponses HTTP normales. Par conséquent, HTTPS est beaucoup plus sécurisé que HTTP. Un site web qui utilise HTTP a http:// dans son URL, tandis qu'un site web qui utilise HTTPS a https:/.
HTTP signifie Hypertext Transfer Protocol. C'est un protocole (c'est-à-dire un ordre et une syntaxe prescrits pour présenter des informations) utilisé pour transférer des données sur un réseau. La plupart des informations envoyées sur Internet, y compris le contenu du site web et les appels d'API, utilisent le protocole HTTP. Il existe deux principaux types de messages HTTP : les demandes et les réponses.
Dans le modèle OSI (voir Qu'est-ce que le modèle OSI ?), HTTP est un protocole de la couches 7.
Les requêtes HTTP sont générées par le navigateur d'un utilisateur lorsque l'utilisateur interagit avec les propriétés web. Par exemple, si un utilisateur clique sur un lien hypertexte, le navigateur enverra une série de requêtes HTTP GET pour le contenu qui apparaît sur cette page. Si un internaute recherche dans Google « Qu'est-ce que HTTP ? » et que cet article apparaît dans les résultats de la recherche, lorsqu'il clique sur le lien, son navigateur crée et envoie une série de requêtes HTTP afin d'obtenir les informations nécessaires au rendu de la page.
Ces requêtes HTTP vont toutes à un serveur d'origine ou à un serveur de mise en cache proxy qui va générer une réponse HTTP. Les réponses HTTP sont des réponses aux requêtes HTTP.
Une requête HTTP n'est qu'une série de lignes de texte qui suivent le protocole HTTP. Une demande GET pourrait ressembler à ceci :
GET /hello.txt HTTP / 1.1 User-Agent: curl / 7.63.0 libcurl / 7.63.0 OpenSSL / 1.1.l zlib / 1.2.11 Hébergeur: www.example.com Accept-Language: en
Cette section de texte, générée par le navigateur de l'utilisateur, est envoyée via Internet. Le problème est qu'il est envoyé sous cette forme, avec un texte en clair que toute personne surveillant la connexion peut lire (ceux qui ne connaissent pas le protocole HTTP peuvent trouver ce texte difficile à comprendre, mais quiconque ayant des connaissances basiques sur les commandes et la syntaxe du protocole peut le lire facilement).
Cela est particulièrement problématique lorsque les utilisateurs soumettent des données sensibles via un site web ou une application web. Il peut s'agir d'un mot de passe, d'un numéro de carte de crédit ou de toute autre donnée entrée dans un formulaire. En HTTP toutes ces données sont envoyées en clair et n'importe qui peut les lire (lorsqu'un utilisateur soumet un formulaire, le navigateur le traduit en une requête HTTP POST au lieu d'une requête HTTP GET).
Lorsqu'un serveur d'origine reçoit une requête HTTP, il envoie une réponse HTTP, qui est similaire :
HTTP/1.1 200 OK Date: Wed, 30 Jan 2019 12:14:39 GMT Serveur: Apache Last-Modified: Mon, 28 Jan 2019 11:17:01 GMT Accept-Ranges: bytes Content-Length: 12 Vary: Accept-Encoding Content-Type: text/plain Bonjour le monde !
Si un site web utilise HTTP au lieu de HTTPS, toutes les requêtes et réponses peuvent être lues par une personne quelconque qui surveillerait la session. En fait, un acteur malveillant peut simplement lire le texte de la requête ou de la réponse et savoir exactement quelles informations une personne demande, envoie ou reçoit.
Le S de HTTPS signifie « sécurisé ». HTTPS utilise TLS (ou SSL) pour chiffrer les requêtes et réponses HTTP, donc dans l'exemple ci-dessus, au lieu du texte, un attaquant verrait une série de caractères apparemment aléatoires.
Au lieu de :
L'attaquant voit quelque chose comme :
t8Fw6T8UV81pQfyhDkhebbz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbbcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHQ==
TLS utilise une technologie appelée chiffrement à clé publique : il existe deux clés, une clé publique et une clé privée. La clé publique est partagée avec les appareils clients via le certificat SSL du serveur. Lorsqu'un client ouvre une connexion avec un serveur, les deux appareils utilisent la clé publique et privée pour convenir de nouvelles clés, appelées clés de session, pour chiffrer la suite de leurs échanges.
Toutes les requêtes et réponses HTTP sont ensuite chiffrées avec ces clés de session (cette opération a lieu au niveau de la couche 6 du modèle OSI ), de sorte que toute personne qui intercepte des communications ne peut voir qu'une série de caractères aléatoires, pas de texte en clair.
Pour en savoir plus sur le fonctionnement du chiffrement et des clés, voir Qu'est-ce que le chiffrement ?
L'authentification signifie la vérification qu'une personne ou une machine est bien celle qu'elle prétend être. En HTTP, il n'y a pas de vérification d'identité : le protocole est basé sur un principe de confiance. Les architectes de HTTP n'ont pas nécessairement décidé de faire implicitement confiance à tous les serveurs web. Simplement des priorités autres que la sécurité existaient à l'époque. Mais sur l'Internet moderne, l'authentification est essentielle.
Tout comme une carte d'identité confirme l'identité de son détenteur, une clé privée confirme l'identité du serveur. Lorsqu'un client ouvre un canal avec un serveur d'origine (par exemple, lorsqu'un utilisateur accède à un site web), la possession de la clé privée qui correspond à la clé publique dans le certificat SSL d'un site web prouve que le serveur est en fait l'hôte légitime du site web. Cela empêche ou aide à bloquer un certain nombre d'attaques possibles en l'absence d'authentification, telles que :
Cloudflare a publié Universal SSL en 2014 et a été la première société à proposer la gratuité des certificats SSL. Tout site Web inscrit aux services de Cloudflare peut activer HTTPS et abandonner HTTP en un seul clic. Cela rend le chiffrement TLS largement disponible, pour protéger les utilisateurs et les données des utilisateurs partout sur Internet.
Pour en savoir plus sur HTTP et HTTPS, voir Qu'est-ce qu'un contenu mixte ? Pour vérifier qu'un site web propose HTTPS, visitez le Cloudflare Diagnostic Center.
Après avoir lu cet article, vous pourrez :
Qu'est-ce que HTTPS ?
Pourquoi utiliser HTTPS ?
négociation SSL
Comment fonctionne le SSL ?
Le SSL, qu’est-ce que c’est ?
Pour vous garantir une expérience optimale sur notre site Web, il se peut que nous utilisions des cookies, comme décrit ici.En cliquant sur J’accepte, en fermant cette bannière ou en continuant à naviguer sur notre site Web, vous acceptez l’utilisation de ces cookies.