Comment fonctionne le HTTPS ?

By | July 14, 2016

Comment fonctionne le HTTPS?

L’Internet, un ensemble de protocoles

L’Internet est un ensemble de protocoles. Le protocole lié à la technologie Web est le HTTP, celui lié à la l’envoi des emails est le SMTP, etc.
Basiquement, comme d’autres protocoles (FTP, Telnet, etc.) le HTTP est un protocole non-sécurisé. Par conséquent toute personne avec un logiciel de capture (comme Wireshark, Kismet, Caïn & Abel) peut capturer des paquets et voir des informations d’une communication HTTP qui circulent dans un réseau donné (voir video ci-dessous). En effet, lorsque ces protocoles non sécurisés furent créés, la confidentialité et la sécurité de l’utilisateur n’étaient pas d’actualité.

Vient alors le HTTPS, “HTTP Secure” ou “HTTP over SSL” qui est une autre version du http.  Celui ci est sécurisé et utilise soit le SSL ou le TLS qui sont des protocoles cryptographiques pour sécuriser des communications. Si l’on captait des paquets d’une communication via HTTPS avec Wireshark, l’on ne verrait que des données cryptées. Plusieurs sites Web utilisent l’un ou l’autre pour s’assurer que les conversations avec leurs utilisateurs ne seront pas captées par une tierce personne.

Qu’est ce que l’Autorité de Certification?

Il existe des entités nommées Autorités de Certification (Certificate Authority – CA) à qui les sites Web prouvent leur identité réelle. Les plus connues sont: Symantec, Thwart, VeriSign, DigiCert.
Lorsque l’Autorité de Certification (CA) a suffisamment d’informations sur l’identité d’un site, elle lui délivre en forme digitale un certificat qui contient une validation de l’identité du site.

Lorsqu’un client (votre navigateur par exemple) effectue une connection sécurisée (HTTPS) avec un site, ce dernier délivre au client le certificat afin que le client puisse vérifier  son authencitité.
Tous les navigateurs sont pré-configurés avec des listes de toutes les Autorités de Certifications existantes. Lors d’une connection HTTPS, le navigateur vérifie si un certificat reçu d’un site Web est signé par une Autorité de Certification valide ou non.
Si le certificat est valide (c’est à dire signé par une Autorité de Certification valide), vous verrez cette image (notez le cadenas vert):

https-certificat-valide

S’il le certificat ne l’est pas, vous verrez ce type d’avertissement sur votre page Web:

https-certificat-non-valide

Ces opérations se passent à une rapidité fulgurante à l’insu de l’utilisateur.

Concrètement, comment le HTTPS peut-t-il nous rassurer?

Le HTTPS utilise un schéma de cryptographie de clé publique. Dans ce type de cryptographie, il existe deux clés. Ces clés sont en réalité intangibles. Dans le cadre d’une communication via HTTPS, une “clé publique” est incluse dans les certificats que reçoit chaque client Web (votre navigateur) et cette clé sert à crypter les communications entre un utilisateur et un serveur. La deuxième clé, qui est la “clé privée” que seul le serveur possède lui permettra  de décrypter les communications de chaque utilisateur. Avant l’établissement d’une session SSL (ou TLS), le client génère une clé de session (clé symétrique) qui servira à crypter tous les messages vers le serveur. Chaque paquet envoyé vers le serveur sera donc crypté par la clé de session qui sera à son tour crypté par la clé publique du serveur (image ci-dessous). De cette manière, seul le serveur à qui la clé publique appartient déchiffrera le message.

1- Le client fait une requête d’une connection SSL au serveur (SSL Hello),

2- Le serveur repond avec un certificat SSL (qui inclut sa clé publique),

3- Le client valide à la fois la clé publique et le certificat,

4- Le client génère une clé symmétrique (clé de session) et la chiffre avec la clé publique du serveur et la lui transmet.

5- Le serveur en déduit alors la clé de session du client qu’il utilisera à partir de ce moment pour chiffrer et envoyer les données au client. La connection SSL est établie.

En somme, ce qu’il faut retenir dans ce système de communication sécurisé, c’est que les certificats numériques permettent l’authentification des sites Web (par les Autorités de Certification) et la cryptographie de la clé publique, la confidentialité des données transmises à travers Internet.

Salute!

mdestroy

Source:
Capture de paquets de réseau à l’aide de Wireshark

Leave a Reply

Your email address will not be published. Required fields are marked *