Comment fonctionne le chiffrement à clé publique ? | Cryptographie à clé publique et SSL

Le chiffrement à clé publique, également appelé chiffrement asymétrique, utilise deux clés distinctes au lieu d'une seule clé partagée : une clé publique et une clé privée. Le chiffrement à clé publique est une technologie importante pour la sécurité d'Internet.

Share facebook icon linkedin icon twitter icon email icon

Chiffrement à clé publique

Objectifs d’apprentissage

Après avoir lu cet article, vous pourrez :

  • Définir le chiffrement à clé publique
  • Comprendre le fonctionnement du chiffrement à clé publique
  • Découvrez pourquoi le chiffrement à clé publique est essentiel pour le protocole TLS / SSL

Qu'est-ce que le chiffrement à clé publique ?

Le chiffrement à clé publique, ou cryptographie à clé publique, est une méthode de chiffrement des données avec deux clés différentes en vue de rendre l'une des clés, la clé publique, accessible à tous. L'autre clé est connue sous le nom de clé privée. Les données chiffrées avec la clé publique ne peuvent être déchiffrées qu'avec la clé privée, et les données chiffrées avec la clé privée ne peuvent être déchiffrées qu'avec la clé publique. Le chiffrement à clé publique est également appelé chiffrement asymétrique. Il est largement utilisé, en particulier pour TLS / SSL, ce qui rend possible le HTTPS.

Qu'est-ce qu'une clé cryptographique ?

En cryptographie, une clé est une information utilisée pour brouiller des données afin qu'elles apparaissent aléatoires ; c'est souvent un grand nombre, ou une chaîne de chiffres et de lettres. Lorsque des données non chiffrées, également appelées texte en clair, sont placées dans un algorithme de chiffrement à l'aide d'une clé, le texte en clair apparait de l'autre côté comme des données aléatoires. Cependant, toute personne disposant de la bonne clé pour déchiffrer les données peut les remettre sous forme de texte en clair.

Par exemple, supposons que nous prenions un message en clair, « bonjour », et le chiffrons à l'aide d'une clé* ; disons que la clé est « 2jd8932kd8 ». Chiffré avec cette clé, notre simple « bonjour » lit maintenant « X5xJCSycg14 = », ce qui ressemble à des données aléatoires inutiles. Cependant, en le déchiffrant avec cette même clé, nous obtenons à nouveau « bonjour ».

Texte en clair + clé = texte chiffré :

bonjour + 2jd8932kd8 = X5xJCSycg14 =

Code-texte + clé = texte en clair :

X5xJCSycg14 = + 2jd8932kd8 = bonjour

(Ceci est un exemple de chiffrement symétrique, dans lequel une seule clé est utilisée.)

*Utilisation de l'algorithme Blowfish, mode CBC, encodage Base64.

Comment fonctionne le chiffrement à clé publique ?

La cryptographie à clé publique peut sembler complexe pour les amateurs ; heureusement, un écrivain du nom de Panayotis Vryonis a proposé une analogie qui se présente à peu près comme suit.

Imaginez un coffre avec une serrure que deux personnes, Bob et Alice, utilisent pour se renvoyer des documents. Un verrou ordinaire n'a que deux états : verrouillé et déverrouillé. Toute personne possédant une copie de la clé peut déverrouiller le coffre s'il est verrouillé, et vice versa. Lorsque Bob verrouille le coffre et l'envoie à Alice, il sait qu'Alice peut utiliser sa copie de la clé pour déverrouiller le coffre. C'est essentiellement ainsi que fonctionne ce que l'on appelle la cryptographie symétrique : une clé secrète est utilisée à la fois pour le cryptage et le décryptage, et les deux côtés d'une conversation utilisent la même clé.

Imaginez maintenant, à la place, que Bob fabrique un coffre avec un type spécial de serrure. Ce verrou a trois états au lieu de deux :

  • A. Verrouillé, clé tournée complètement à gauche
  • B. Déverrouillé, au milieu.
  • C. Verrouillé, clé tournée complètement à droite.
SSL Lock Analogy

Au lieu d'une clé, deux clés sont utilisées pour ce verrou :

  • La clé n° 1 ne peut tourner que vers la gauche
  • La clé n° 2 ne peut tourner qu'à droite

Cela signifie que si le coffre est verrouillé et que la clé est tournée en position A, seule la clé n° 2 peut le déverrouiller en tournant à droite, en position B (déverrouillée). Si le coffre est verrouillé en position C, seule la clé n° 1 peut le déverrouiller en tournant le verrou vers la gauche, en position B.

En d'autres termes, l'une ou l'autre des clés peut verrouiller le coffre, mais une fois verrouillée, seule l'autre clé peut le déverrouiller.

Supposons maintenant que Bob fasse quelques dizaines de copies de la clé n° 2, la clé qui ne tourne qu'à droite, et les partage avec tous ceux qu'il connaît et tous ceux qui veulent une copie, ce qui en fait sa clé publique. Il garde la clé n° 1 pour lui ; c'est sa clé privée. Qu'est-ce que cela signifie ?

  1. Alice peut envoyer des données confidentielles à Bob via le coffre et être sûre que seul Bob peut les déverrouiller. Une fois qu'Alice a verrouillé le coffre avec la clé publique, qui tourne de gauche à droite, seule une clé qui peut tourner de droite à gauche peut la déverrouiller. Cela signifie que seule la clé privée de Bob peut le déverrouiller.
  2. Alice peut être sûre que le coffre provient bien de Bob, et non d'un imposteur, s'il est verrouillé avec sa clé privée. Il n'y a qu'une seule clé qui peut verrouiller le coffre afin que le verrou soit en position A, ou complètement tourné vers la gauche : la clé privée de Bob. Certes, tout le monde peut le déverrouiller avec la clé publique en tournant la clé vers la droite, mais il est certain que le coffre vient de Bob.

Remplacez les données de texte en clair par le tronc et les clés cryptographiques par les clés physiques de cette analogie, et c'est ainsi que fonctionne la cryptographie à clé publique. Seul le propriétaire de la clé privée peut chiffrer les données afin que la clé publique les déchiffre ; cependant, n'importe qui peut chiffrer les données avec la clé publique, mais seul le propriétaire de la clé privée peut les déchiffrer.

Par conséquent, n'importe qui peut envoyer des données en toute sécurité au propriétaire de la clé privée. De plus, n'importe qui peut vérifier que les données qu'il reçoit du propriétaire de la clé privée proviennent bien de cette source et non d'un imposteur (voir Qu'est-ce qu'une attaque de type intermédiaire ?).

Comment le TLS / SSL utilise-t-il le chiffrement à clé publique ?

Le chiffrement à clé publique est extrêmement utile pour établir des communications sécurisées sur Internet (via HTTPS). Le certificat SSL / TLS d'un site Web, qui est partagé publiquement, contient la clé publique et la clé privée est installée sur le serveur d'origine. Elle est « détenue » par le site Web.

Les mise en liaison

TLS utilisent la cryptographie à clé publique pour authentifier l'identité du serveur d'origine et pour échanger les données utilisées pour générer les clés de session. Un algorithme d'échange de clés, tel que RSA ou Diffie-Hellman, utilise la paire de clés publique-privée pour convenir de clés de session qui sont utilisées pour le chiffrement symétrique une fois la mise en liaison terminée. Les clients et les serveurs peuvent convenir de nouvelles clés de session pour chaque session de communication, de sorte que les acteurs malveillants ne peuvent pas décrypter les communications même s'ils identifient ou volent l'une des clés de session.