Le handshake

Quand tu as commencé à lire cette BD, ton navigateur web a affiché un cadenas vert sur la barre d’adresse.

Qu’est ce qui s’est passé ?

Ton navigateur a communiqué avec notre serveur où cette BD est hébergée et ils ont tous les deux établi une connexion sécurisée pour transmettre des messages.

En pratique ils doivent se mettre d’accord sur la méthode à utiliser pour communiquer de manière sécurisée.

Si la négociation n’aboutit pas, ton navigateur te le fera savoir en affichant une erreur ou un avertissement.
Lorsqu'un accord est trouvé, votre navigateur affiche un cadenas vert dans la barre d’adresse.

Cette phase de négociation entre un navigateur et un serveur est appelée le “handshake” (poignée de main).

C'est très rapide. On va te montrer comment ça marche.

Browserbird va être ton navigateur.
Compugter sera notre serveur.

C’est parti les gars !

Prêt ? Ici nous allons voir à quoi ressemble un handshake au ralenti.

check gauche
check droit
Shaka vertical
Rotation shaka horizontal
Chatouilles

C’est bon !

Recommençons, mais plus rapidement.

Check gauche - check droit - shaka - rotation du shaka - chatouilles.

E-N-C-O-R-E !

Stop !

Décomposons pas à pas.

Première étape : check gauche. C'est–à-dire dire bonjour au client.

J’envoie à Compugter la liste des versions SSL/TLS et des algorithmes de chiffrement que je peux utiliser. De nos jours, je privilégie TLS 1.3, donc j’envoie aussi un key_share.

Un terme plus savant pour désigner cette liste d’algorithmes de chiffrement est “suite cryptographique” (cipher suite en anglais).

Ainsi, tu peux avoir l'air d'un pro à table.

Les protocoles SSL et TLS ont évolué au fil du temps, nous en reparlerons bientôt.

Et ensuite, j'attends une réponse de Compugter.

Seconde étape : check droit, qui veut dire bonjour au serveur.

Je choisis TLS 1.3 et une suite de chiffrement. J’envoie également mon key_share. À partir d’ici, TLS 1.3 chiffre le reste de la poignée de main.

Juste après, j’envoie mon certificat, qui contient ma clé publique, afin qu’ils puissent vérifier mon identité.

Étape trois : shaka vertical. Alias Key Share.

Je vérifie les certificats de Compugter pour être sûr qu’il est légitime.

Comme nous avons tous les deux envoyé un key share auparavant, nous pouvons dériver le même secret, ce qui assure la confidentialité.

Quatrième étape : rotation horizontale du shaka. Alias Finished Messages.

À partir de ServerHello (étape deux), la poignée de main est chiffrée.

Ils échangent des messages Finished pour prouver qu’ils ont dérivé le même secret — et paf, les clés de session sont prêtes en un aller-retour.

Cinquième étape : chatouilles, qui veut dire que maintenant tout est sécurisé.
Maintenant toutes les informations qui vont et viennent entre Browserbird et Compugter sont sécurisées pour le reste de la session.

Mots de passe, informations de carte de crédit, tout.

Simple, non ?

La prochaine fois que tu te connecteras à un site web en toute sécurité via HTTPS, faites un shaka avec ton navigateur parce que tu connais le handshake secret.

À suivre dans HowHTTS.works…

HTTPS, SSL, TLS, oh mon dieu il y a trop d’acronymes. Qu’est ce qu’ils veulent dire ? La même chose ?

Continuer à lire