Comment fonctionne HTTPS? Les explications

Hyper Text Transfer Protocol Secured (HTTPS) est le protocole de communication sécurisé développé pour Internet entre un client et un serveur. Il utilise un chiffrement asymétrique via un certificat, dans ce article voyons comment fonctionne HTTPS et cet échange est protégé.

Tout d’abord quelques notions sur le chiffrement, il en existe plusieurs sortes. Nous allons étudier les deux cas les plus courants : Le chiffrement symétrique et Le chiffrement asymétrique.

Le chiffrement symétrique (appelé également à clé secrète)

La même clé est utilisée pour crypter et décrypter les données
Seules les personnes concernées par la communication la possèdent.

Pour la petite histoire, ce sont les égyptiens qui ont été les premiers à utiliser cette méthode avec des systèmes qui utilisaient l’alphabet. Ils combinaient substitutions et  transpositions. Bien évidemment grâce aux avancées technologiques, les paradigmes du chiffrement symétrique ont bien changé, et les algorithmes utilisent désormais des suites de bits pour rendre difficile le hack de la clé.
Exemples d’algorithmes symétriques : ROT13, AES, Blowfish, Twofish, Triple DES…
Un cas d’usage que vous connaissez tous? Le Wi-Fi, vous entrez la clé unique de votre box et la communication est cryptée par un algorithme, WPA2 par exemple.

Comment fonctionne HTTPS - Chiffrement symétrique
Le chiffrement symétrique

Par contre rien n’est moins sûr lorsqu’il s’agit d’une personne mal intentionnée, placée entre vous et votre interlocuteur, qui possède la clé et intercepte les échanges. C’est ce qu’on appelle une attaque man in the middle.
C’est pour cette raison que lorsque vous visitez un site Internet HTTPS, une autre méthode de chiffrement est utilisée…

Le chiffrement asymétrique ou cryptographie à clé publique : Voici comment fonctionne HTTPS!

HTTP + TLS / SSL = HTTPS

HTTPS est la version Sécurisée de HTTP (Hyper Text Transport Protocol) qui est le protocole utilisé par votre navigateur Internet.

Cette couche de transport de sécurité est appelée TLS (Transport Layer Security). Elle remplace le SSL (Secure Socket Layer).

On parle alors de certificat SSL/TSL, il assure le chiffrement des données grâce à une clé de cryptage asymétrique : Une clé privée et une clé publique.

Clé privée et clé publique

Dans ce cas de cryptage, il nécessite deux paires de clés :

  • L’une publique, contenue dans le certificat, qui sert à chiffrer les données
  • L’autre privée (uniquement détenue par le propriétaire du certificat) utilisée lors du le déchiffrement.

Vous l’aurez compris dans ce cas, même si les données sont interceptées, impossible de les décrypter les données sans les deux clés.

Mais comment transmettre la clé publique de manière sécurisée?

Un hacker peut distribuer de fausses clés publiques sur un site frauduleux puis intercepter toutes les communications, lui permettant d’usurper l’identité du vrai site. C’est ici qu’intervient le rôle du certificat : Il contient l’identité du site et la clé publique. Afin de vérifier son authenticité, il est soumis auprès des autorités de certification (tiers de confiance) qui le signe. Le certificat est désormais valide!

C’est pour cette raison que vous voyez apparaître ces différents pictogrammes :

Comment fonctionne HTTPS - Secure Not Secure
Les pictogrammes Secured or Not Secured dans Google Chrome
  • Sécurisé : Certificat valide
  • Non sécurisé (gris) : Site HTTP (non HTTPS)
  • Non sécurisé (rouge) : Certificat invalide (nom de domaine non concordant, certificat révoqué ou expiré…oui il a une date de validité de 1 an généralement)

Revenons sur notre certificat. Pour lire la clé publique (3), çà se passe dans la barre d’adresse du site:

Comment fonctionne HTTPS - Certificat Web
Certificat Web HTTPS

Où est la clé privée?

La clé privée quant à elle est conservée sur notre serveur Web :Il est le seul à la connaître. Ce qui lui permettra de décrypter les messages envoyés par les visiteurs.

Comment fonctionne HTTPS?

La théorie terminée, voici un petit schéma qui résume l’établissement d’une connexion sécurisée HTTPS :

Comment fonctionne HTTPS - Le chiffrement asymétrique ou cryptographie à clé publique
Le chiffrement asymétrique ou cryptographie à clé publique
  1. Un client se connecte sur un site web sécurisé (Exemple : https://sebastien.toursel.fr)
  2. Le serveur Web lui présente le certificat TLS/SSL qui contient la clé publique
  3. Le client effectue des vérifications auprès des autorités de certifications (Signature du certificat et liste de révocations des certificats appelée Certificates Revocation List)
  4. Grâce à son navigateur Internet, le client génère une clé de session. Cette clé est cryptée avec la clé publique du certificat et est envoyée au serveur Web.
  5. Le décryptage de la clé de session se fait par la clé privée du certificat. Seul le serveur Web la connaît.
  6. La communication est établie, le client et le serveur peuvent communiquer en HTTPS

Dans un prochain article, je vous expliquerai les raisons de passer de HTTP en HTTPS et comment l’implémenter

Voilà, en espérant que ces histoires de certificats et de protocole HTTPS sont plus clairs pour vous et que vous ne vous posez plus la question « Comment fonctionne HTTPS? »! Le cas contraire, n’hésitez pas à poser des questions dans les commentaires!

Lien Permanent pour cet article : https://sebastien.toursel.fr/comment-fonctionne-https/

Laisser un commentaire