Comprendre le chiffrement asymétrique

Durée: 7m50s

Date de sortie: 19/08/2025

Le chiffrement asymétrique se fait avec deux clés : une privée et une publique. Mais pourquoi ? Comment ? C'est ce qu'on va découvrir ensemble !


Notes de l'épisode :

Salut et bienvenue dans ce nouvel épisode du podcast de Code Garage,
je m'appelle Nicolas Bronda Bernard
et aujourd'hui je vais essayer de vous expliquer, de vous vulgariser le concept de chiffrement asymétrique.
Alors d'abord si le concept de chiffrement symétrique cette fois vous n'êtes pas super familier avec,
je vous invite à écouter l'épisode numéro 20 que j'ai publié il y a quelques années maintenant.
Le lien sera directement disponible dans les notes de cet épisode-là.
Je vous conseille d'aller écouter celui-là en premier,
comme ça vous aurez un petit peu plus de matière pour comprendre cet épisode.
Évidemment je vais quand même essayer de vous vulgariser au maximum,
mais on ne va pas revenir sur tout le concept de chiffrement symétrique.
Alors pourquoi est-ce qu'on a un chiffrement symétrique et un chiffrement asymétrique ?
Eh bien le chiffrement symétrique il est très pratique
parce qu'il permet en fait d'une, il permet une communication chiffrée dans les deux sens
avec une seule clé.
On a deux machines ou logiciels qui peuvent échanger des messages qui sont confidentiels
et même si les messages qui sont échangés sont interceptés,
tant que la clé reste secrète, la clé de chiffrement,
eh bien le contenu du message ne sera jamais dévoilé.
Sauf que cette méthode est là un point faible,
c'est le moment de l'échange de la clé de chiffrement.
Parce que si un attaquant parvient à intercepter cette clé pendant l'échange,
puisqu'il doit y avoir un échange pour que les deux se comprennent,
eh bien ça veut dire qu'il pourra lire tous les messages futurs,
peu importe la robustesse de l'algorithme ou de la longueur de la clé,
tant qu'il a la clé de chiffrement, eh bien il pourra avoir accès à tous ces messages.
C'est pour ça qu'on utilise parfois le chiffrement asymétrique.
La grande différence donc avec le chiffrement symétrique,
c'est qu'il repose sur deux clés distinctes.
On a d'abord la clé publique qu'on peut librement diffuser,
comme son nom l'indique, et on a une clé privée qui doit rester absolument secrète.
La clé publique, elle sert à chiffrer les données qu'on va envoyer,
et une fois qu'elles sont chiffrées,
eh bien seule la clé privée permet de les déchiffrer.
Ce qui veut dire qu'on peut publier sa clé publique sans risque,
tant que la clé privée reste bien protégée, ça ne craint rien.
Ça veut dire qu'un attaquant potentiellement,
même s'il a récupéré une clé publique,
il va pouvoir envoyer des données chiffrées au serveur,
mais il ne pourra jamais déchiffrer les données
qui sont envoyées par les autres clients au serveur.
Et évidemment dans la plupart des cas,
la clé publique, c'est celle qu'on va mettre sur le client,
un navigateur, l'application, etc.
Et la clé privée, elle va être conservée par le serveur.
Un logiciel côté client, il peut être analysé, décompilé, etc.
surtout si c'est juste du web,
alors que le code côté serveur,
à moins que vous ayez une vraie grosse faille,
il restera confidentiel,
donc la clé privée ne fuitera jamais.
Alors maintenant qu'on a dit ça,
on va désoumé un petit peu,
on va reprendre une analogie beaucoup plus simple
et qui fait référence à un truc que tout le monde connaît.
C'est quand vous étiez enfant,
il y a de fortes chances que vous ayez eu
ou vous rêviez d'avoir un stylo à encre invisible
pour envoyer des messages secrets à vos amis.
Ok ? Comment est-ce que fonctionnent ces stylo ?
C'est très simple, dans les stylo, il y a une encre un peu spéciale
et uniquement pour pouvoir lire les messages qui sont envoyés,
qui sont écrits et envoyés avec ce stylo,
eh bien il vous faut une lumière,
c'est une lumière ultraviolet en général.
Donc on va prendre l'exemple de vous et d'un de vos amis
ou une de vos amis.
Imaginons que vous ayez un crayon
qui puisse écrire des messages invisibles
et que votre ami a justement la lumière qui correspond pour lire le message.
Là en l'occurrence, notre stylo, c'est notre clé public.
C'est celle qui va permettre d'écrire et de chiffrer notre message.
Et la lumière ultraviolet,
eh bien ça va simplement être notre clé privé
qui va permettre de déchiffrer le message.
Donc d'abord, imaginons que ce soit votre ami,
qui soit le serveur,
il va avoir lui plein de stylo chez lui
et également il va avoir les petites lumières.
Vous allez lui demander l'accès à un stylo
et vous l'emmener chez vous.
Chez vous, vous allez simplement écrire une lettre avec ce stylo
et sur la lettre, eh bien il ne va rien n'apparaître
tant qu'elle n'a pas été déchiffrée.
Ensuite, vous donnez la lettre à votre ami
et seul votre ami, puisqu'il a l'unique lumière ultraviolet,
pourra déchiffrer ce message.
Alors évidemment, cette analogie là est là quelques limites
parce qu'en théorie plusieurs personnes
pourraient avoir une lampuvet pour révéler les messages.
Mais bon, on va imaginer que vous êtes la seule personne,
enfin que votre ami plutôt c'est la seule personne
à connaître la bonne longueur d'onde
pour faire apparaître l'encre invisible.
Et en fait dans ce cas, si on prend ça,
eh bien n'importe qui peut écrire avec ce stylo,
qui est la clé publique,
mais seul votre ami pourra lire les messages
grâce à sa lampe.
Alors pourquoi est-ce qu'on utilise du chiffrement symétrique
si on a justement ce chiffrement asymétrique
qui marche et qui est beaucoup plus robuste ?
Eh bien en fait, le chiffrement asymétrique,
il est très puissant,
mais il est d'abord plus lent et plus gourmand en ressources.
En fait, on va souvent l'utiliser
pour établir un canal sécurisé au début d'une communication.
Et d'ailleurs, une clé symétrique temporaire souvent est générée
et partagée de manière sécurisée
grâce à un chiffrement asymétrique.
Cette clé ensuite,
on va s'en servir pour chiffrer efficacement
tous les échanges qui vont suivre dans les deux sens.
Ça, c'est le cas par exemple de la communication HTTPS.
Quand vous visitez un site web donc avec un certificat SSL,
la première connexion
elle va utiliser le chiffrement asymétrique
pour établir la confiance et sécuriser les échanges.
Mais ensuite, eh bien il va y avoir
une clé de chiffrement symétrique qui va être échangée.
Et donc, les prochains échanges
sont chiffrés symétriquement pour plus de rapidité.
D'ailleurs, si on fait un petit pas en arrière
pour maintenant parler de la cryptographie asymétrique en général,
eh bien il y a plein d'autres usages
et notamment les signatures asymétriques de données.
On les retrouve par exemple dans les tokens JWT.
En fait, on ne va pas chiffrer le message pour le rendre confidentiel,
le message, il est public,
mais on va chiffrer une empreinte,
on va chiffrer un H du message avec une clé privée.
Et ensuite, cette signature,
elle pourra être vérifiée par n'importe qui
tant que cette personne a la clé publique.
Et donc ça, ça permet de garantir que l'information,
elle vient bien de l'émetteur
et qu'elle n'a pas été modifiée.
Voilà, donc ça c'est typiquement ce qu'est utilisé
pour justement sécuriser les tokens JWT.
Et si jamais ça vous intéresse,
je vous mettrai un lien dans les notes de l'épisode
pour expliquer un petit peu plus de choses autour du concept des tokens JWT.
J'espère que cet épisode vous aura plu,
que vous aurez appris quelque chose.
Moi je vous donne rendez-vous la semaine prochaine
pour un prochain épisode du podcast.
Évidemment, pensez à laisser cinq étoiles
sur toutes les applis de podcast
et venez faire un tour sur code-garage.com.
On vient tout juste de sortir un cours sur React.
Il n'y a pas besoin d'avoir de base ormi,
des bases de JavaScript,
mais voilà, on prend le React 2.0.
Et il y a notamment deux projets dans le cours directement,
un projet pour apprendre à créer un blog
et un projet pour apprendre à créer un mini jeu de gestion.
Donc venez faire un tour, ça vient tout juste de sortir.
Moi je vous donne rendez-vous la semaine prochaine
pour un prochain épisode du podcast.
Prenez soin de vous, salut !

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

Code-Garage

Découvrons ensemble des sujets passionnants autour du métier de dev et de la programmation en général !
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere