Différence entre HTTP et HTTPS
Lorsque vous ouvrez un site web, le navigateur et le serveur échangent des données.
Le mécanisme de base utilisé pour ces échanges web est HTTP. Et le mécanisme qui permet d'effectuer les communications HTTP de façon sûre est HTTPS.
HTTPS n'est pas simplement un « mécanisme qui chiffre le contenu de la communication ». Ce qui est important, c'est qu'il aide à empêcher l'écoute, la modification et l'usurpation par des tiers situés au milieu de la communication.
Dans HTTPS, les trois points suivants sont donc particulièrement importants.
- Rendre le contenu de la communication difficile à lire en cours de route
- Rendre le contenu de la communication difficile à modifier en cours de route
- Aider à vérifier que l'interlocuteur est bien celui qui était prévu
Autrement dit, HTTPS est un mécanisme très important contre les attaques de l'homme du milieu.
Toutefois, HTTPS n'est pas une technologie d'anonymisation. Même avec HTTPS, l'accès arrive au site web de destination. L'adresse IP source, les cookies, l'état de connexion, les journaux d'accès et d'autres questions restent des problèmes distincts.
Cet article explique la différence entre HTTP et HTTPS, ce que HTTPS protège, et ce qui peut rester visible même avec HTTPS.
Qu'est-ce que HTTP ?
HTTP est une règle de communication permettant d'échanger des données sur le Web.
Lorsque vous ouvrez un site web dans un navigateur, le navigateur envoie une requête au serveur. Par exemple, il demande : « envoyez le HTML de cette page » ou « je veux obtenir cette image ».
Le serveur répond à cette requête en renvoyant du HTML, des images, du CSS, du JavaScript et d'autres données.
Le mécanisme utilisé pour cet échange de requêtes et de réponses entre navigateur et serveur est HTTP.
HTTP lui-même est la base des communications web. Mais HTTP seul ne fournit pas de mécanisme de protection du contenu de la communication.
Avec HTTP, le contenu de la communication n'est pas chiffré. Un tiers situé sur le trajet de communication peut donc lire le contenu, le modifier ou se faire passer pour le bon interlocuteur.
| Faiblesse de HTTP | Explication |
|---|---|
| Faible face à l'écoute | Comme le contenu n'est pas chiffré, il risque d'être lu en cours de route |
| Faible face à la modification | Le contenu de la page ou les données envoyées risquent d'être modifiés pendant la communication |
| Faible face à l'usurpation | Il est difficile de vérifier que l'interlocuteur est vraiment le serveur prévu |
Par exemple, si vous envoyez un mot de passe dans un formulaire de connexion HTTP, ce mot de passe peut être vu pendant la communication. Le contenu d'une page chargée en HTTP peut aussi être modifié en cours de route, avec le risque d'y insérer un faux formulaire ou un script malveillant.
HTTP est la base des communications web, mais utilisé tel quel, il pose de grands problèmes de sécurité.
Qu'est-ce que HTTPS ?
HTTPS est un mécanisme qui effectue la communication HTTP à l'intérieur d'un canal de communication sûr.
Plus précisément, HTTPS utilise HTTP au-dessus d'une couche de communication sûre appelée TLS. Nous n'entrons pas ici dans le détail de TLS, mais pour comprendre HTTPS, il est utile de le voir comme « le contenu de la communication HTTP protégé par TLS ».
Les trois points importants de HTTPS sont les suivants.
| Élément | Rôle | Explication |
|---|---|---|
| Chiffrement | Rendre le contenu difficile à lire | Empêcher qu'un tiers situé sur le trajet lise directement les mots de passe ou les contenus de formulaire |
| Détection de modification | Permettre de remarquer les modifications du contenu | Rendre difficile l'acceptation d'une communication correcte si les données ont été modifiées en chemin |
| Vérification de l'interlocuteur | Vérifier que l'on communique avec l'interlocuteur prévu | Utiliser des certificats pour vérifier que le serveur de destination est légitime |
La force de HTTPS vient de la combinaison de ces trois éléments.
Le chiffrement seul ne suffit pas. Par exemple, même si le contenu est chiffré, si un attaquant peut se faire passer pour un faux serveur et y faire connecter l'utilisateur, on ne peut pas dire que la communication soit sûre.
C'est pourquoi HTTPS utilise aussi un mécanisme permettant de vérifier que l'interlocuteur est bien le site web prévu, en plus de protéger le contenu de la communication.
Différence entre HTTP et HTTPS
La différence entre HTTP et HTTPS ne se limite pas à l'apparence de l'URL, http[:]// ou https[:]//.
Avec HTTP, la communication entre navigateur et serveur n'est pas protégée. Avec HTTPS, un canal de communication sûr est créé entre le navigateur et le serveur, puis les échanges HTTP se font à l'intérieur.
| Élément | HTTP | HTTPS |
|---|---|---|
| Début de l'URL | http[:]// | https[:]// |
| Chiffrement du contenu | Non | Oui |
| Protection contre l'écoute | Faible | Forte |
| Protection contre la modification | Faible | Modification plus facile à détecter |
| Vérification de l'interlocuteur | Fondamentalement faible | Vérification au moyen de certificats, etc. |
| Résistance aux attaques de l'homme du milieu | Faible | Élevée |
| Anonymisation | Non | Non |
Comprendre HTTPS comme « HTTP auquel on a simplement ajouté du chiffrement » est un peu insuffisant. Plus précisément, c'est un mécanisme qui enveloppe la communication HTTP dans un canal sûr et aide à empêcher l'écoute, la modification et l'usurpation.
Qu'est-ce qu'une attaque de l'homme du milieu ?
Une attaque de l'homme du milieu consiste pour un tiers à se placer entre le navigateur et le serveur afin d'écouter la communication, de la modifier ou de se faire passer pour l'interlocuteur.
Même si l'utilisateur pense accéder au vrai site web, un attaquant situé au milieu peut être en train de voir le contenu. Il peut aussi modifier la communication et insérer un faux formulaire de connexion ou du code malveillant.
HTTP est faible face à ce type d'attaque.
Avec HTTPS, le contenu est chiffré, les modifications sont détectées, et l'interlocuteur est vérifié. Il devient donc plus difficile de faire réussir une attaque de l'homme du milieu.
| Ce que veut faire l'attaquant | Avec HTTP | Avec HTTPS |
|---|---|---|
| Lire le contenu de la communication | Risque de lecture | Difficile à lire en clair |
| Observer un mot de passe | Risque élevé | Difficile à observer pendant la communication |
| Modifier le contenu d'une page | Risque de modification | La modification est plus facile à détecter |
| Faire connecter à un faux serveur | L'utilisateur le remarque difficilement | La vérification du certificat aide à l'empêcher |
| Se faire passer pour l'interlocuteur | Relativement facile | Difficile sans certificat légitime |
C'est là que se trouve l'essence de HTTPS.
Il ne s'agit pas seulement de « chiffrer le contenu de la communication ».
Il est important de pouvoir vérifier « si le contenu n'a pas été modifié en cours de route » et « si l'interlocuteur est bien celui qui était prévu ».
Ce que HTTPS protège
HTTPS protège principalement le contenu HTTP qui circule entre le navigateur et le serveur.
Par exemple, les informations suivantes deviennent difficiles à lire pendant la communication grâce à HTTPS.
| Élément protégé | Explication |
|---|---|
| Mot de passe | Le mot de passe saisi dans un formulaire de connexion devient difficile à lire en cours de route |
| Contenu de formulaire | Nom, adresse e-mail, contenu de demande, etc. deviennent difficiles à lire en cours de route |
| Contenu de page | Le contenu affiché par la page devient difficile à lire ou à modifier en cours de route |
| Contenu de requête | Ce que le navigateur envoie au serveur est plus facilement protégé |
| Contenu de réponse | Ce que le serveur renvoie au navigateur est plus facilement protégé |
| Les cookies envoyés et reçus pendant la communication deviennent difficiles à observer en cours de route |
Les mots de passe et les cookies sont particulièrement importants.
Les cookies peuvent servir à maintenir l'état de connexion ou à identifier un utilisateur. Si un cookie est volé pendant la communication, il peut, selon le cas, permettre un accès en se faisant passer pour la personne.
Avec HTTPS, les cookies sont eux aussi envoyés dans le canal chiffré, ce qui les rend difficiles à observer pendant la communication.
Cependant, l'utilisation de HTTPS ne résout pas tous les problèmes liés aux cookies. La manière dont les cookies sont conservés, les réglages côté site, l'environnement du navigateur et la sécurité de l'appareil restent des problèmes distincts.
Même avec HTTPS, le contenu arrive au serveur de destination
HTTPS protège le contenu contre les tiers situés sur le trajet de communication. Ce n'est pas un mécanisme qui cache le contenu au site web de destination.
Par exemple, si vous saisissez un mot de passe dans un formulaire de connexion HTTPS, ce mot de passe devient difficile à lire pendant le trajet. Mais l'information arrive au serveur du site web qui effectue le traitement de connexion.
C'est normal. Pour effectuer le traitement de connexion, le serveur doit recevoir les informations envoyées.
La portée protégée par HTTPS est principalement le trajet de communication.
| Cible | Rôle de HTTPS | Explication |
|---|---|---|
| Tiers sur le trajet | Cible contre laquelle HTTPS protège fortement | Aide à empêcher l'écoute, la modification et l'usurpation |
| Serveur de destination | Interlocuteur de la communication | Le contenu de la requête arrive au serveur |
| Adresse IP de l'utilisateur | Ne la cache pas directement | HTTPS seul ne cache pas l'adresse IP source |
| Compte connecté | Ne le cache pas directement | Les actions effectuées en étant connecté sont liées au compte |
Autrement dit, HTTPS est un mécanisme destiné à empêcher l'écoute et la modification en cours de route. Ce n'est pas un mécanisme qui cache vos informations au site de destination.
Ce qui peut rester visible même avec HTTPS
Même avec HTTPS, toutes les informations ne sont pas cachées.
Le contenu de la communication est protégé. Mais les informations liées à la source de l'accès, à la destination de connexion et aux informations reçues par le site web relèvent de problèmes distincts.
| Information | Acteur qui peut la voir | Explication |
|---|---|---|
| Adresse IP source | Serveur de destination, etc. | Le site web peut savoir depuis quelle adresse IP l'accès a eu lieu |
| Heure d'accès | Serveur de destination, etc. | Le moment de l'accès peut être enregistré dans des journaux |
| Contenu de requête | Serveur de destination | Même avec HTTPS, le contenu arrive au serveur auquel il est envoyé |
| Cookie | Site web de destination | Peut servir à identifier le même utilisateur ou le même navigateur |
| État de connexion | Site web de destination | Si l'utilisateur est connecté, ses actions sont liées au compte |
| Journaux d'accès | Site web de destination | Les pages vues ou les opérations effectuées peuvent être enregistrées |
| Informations du navigateur | Site web de destination | Des informations comme le User-Agent peuvent être envoyées |
| Informations sur la destination | Varie selon l'environnement de communication | Même si le contenu est chiffré, le site contacté peut parfois être déduit |
Le point important ici est de distinguer le « contenu de la communication » et le « fait de communiquer ».
HTTPS protège le contenu de la communication. Mais il ne cache pas automatiquement des informations comme l'adresse IP d'où vient l'accès, le moment de l'accès ou le compte avec lequel l'utilisateur est connecté.
De plus, avec HTTPS, l'URL entière n'est pas toujours entièrement visible par les tiers. Le chemin de la page et le contenu des formulaires sont protégés comme contenu de communication. En revanche, les informations liées au nom de domaine de destination peuvent être visibles selon l'environnement de communication.
Ainsi, le fait d'utiliser HTTPS ne fait pas disparaître les traces d'accès ni les informations d'identification.
HTTPS n'est pas une technologie d'anonymisation
HTTPS n'est pas une technologie d'anonymisation.
Les objectifs de HTTPS sont principalement les trois suivants.
- Rendre le contenu de la communication difficile à lire en cours de route
- Rendre le contenu de la communication difficile à modifier en cours de route
- Aider à vérifier que l'interlocuteur est bien celui qui était prévu
C'est une question différente de l'anonymisation.
Lorsque l'on réfléchit à l'anonymat, il faut distinguer « le contenu de la communication est-il protégé ? » et « l'identité ou l'origine de la personne qui accède est-elle cachée ? ».
HTTPS est fortement lié au premier point. Mais il ne résout pas directement le second.
| Point de vue | HTTPS le résout-il ? | Explication |
|---|---|---|
| Protection contre l'écoute du contenu | Forte sur le trajet de communication | Rend le contenu difficile à lire en cours de route |
| Protection contre la modification du contenu | Forte sur le trajet de communication | Rend le contenu difficile à modifier en cours de route |
| Vérification de l'interlocuteur | Oui | Vérifie la destination au moyen de certificats, etc. |
| Dissimulation de l'adresse IP | Non | HTTPS seul ne cache pas l'adresse IP source |
| Identification par cookie | Non | L'identification côté site web reste un autre problème |
| Dissimulation de l'état de connexion | Non | Les actions en étant connecté sont liées au compte |
| Suppression des journaux d'accès | Non | La conservation des journaux côté site est un autre problème que HTTPS |
Comprendre « HTTPS signifie anonyme » est une erreur.
HTTPS est une technologie qui rend la communication plus sûre. Ce n'est pas une technologie qui crée l'anonymat.
Point de vue pour comprendre correctement HTTPS
Pour comprendre correctement HTTPS, il faut distinguer « qui est protégé contre quoi ».
HTTPS protège principalement contre les tiers situés sur le trajet de communication.
Par exemple, il aide à empêcher les autres utilisateurs du même Wi-Fi, les équipements situés sur le trajet ou un relais malveillant d'écouter le contenu, de le modifier ou de se faire passer pour le bon interlocuteur.
En revanche, le site web de destination est l'interlocuteur final de la communication. Les données envoyées arrivent donc du côté du site web.
| Acteur | Ce que HTTPS aide à empêcher | Ce que HTTPS n'empêche pas |
|---|---|---|
| Tiers sur le trajet | Écoute, modification, usurpation | Compromission de l'appareil lui-même |
| Site web de destination | Fuite pendant le trajet | Journalisation côté site et identification par compte |
| Utilisateur du même Wi-Fi | Écoute du contenu de communication | La déduction de la destination d'accès ne disparaît pas complètement |
| Faux serveur | Plus facile à détecter sans certificat légitime | Danger si l'utilisateur ignore les avertissements |
HTTPS est un mécanisme très puissant, mais il n'est pas universel.
Par exemple, si le navigateur affiche un avertissement de certificat et que l'utilisateur l'ignore pour continuer, la sécurité fournie par HTTPS diminue fortement. De même, si l'appareil lui-même est infecté par un malware, les données saisies peuvent être volées côté appareil même si la communication utilise HTTPS.
HTTPS constitue une défense forte contre l'écoute, la modification et l'usurpation sur le réseau. Mais la sécurité de l'appareil, la gestion côté site web, le traitement des comptes, les cookies et les journaux doivent être considérés séparément.
Résumé
HTTP est le mécanisme de base pour échanger des données sur le Web. Mais HTTP seul ne chiffre pas le contenu de la communication, ce qui crée un risque d'écoute ou de modification en cours de route.
HTTPS est un mécanisme qui effectue la communication HTTP à l'intérieur d'un canal sûr.
Les rôles importants de HTTPS sont les trois suivants.
- Rendre le contenu de la communication difficile à lire en cours de route
- Rendre le contenu de la communication difficile à modifier en cours de route
- Aider à vérifier que l'interlocuteur est bien celui qui était prévu
Pour cette raison, HTTPS est très important comme mesure contre les attaques de l'homme du milieu.
Toutefois, HTTPS n'est pas une technologie d'anonymisation. Même avec HTTPS, la requête arrive au site web de destination. L'adresse IP source, les cookies, l'état de connexion, les journaux d'accès et d'autres questions restent des problèmes distincts.
HTTPS est une technologie qui rend la communication plus sûre. Elle est particulièrement importante pour empêcher l'écoute, la modification et l'usurpation sur le trajet de communication.
Mais ce n'est pas une technologie qui cache qui a accédé.
Lorsque l'on réfléchit à l'anonymat, il faut distinguer ce que HTTPS protège et ce qu'il ne protège pas. HTTPS est une condition importante, mais HTTPS seul ne suffit pas à établir l'anonymat.