Qu'est-ce qu'une clé cryptographique ? | Clés et chiffrement SSL

Une clé est un groupe de caractères aléatoires dans un ordre particulier. Les protocoles de chiffrement utilisent une clé pour modifier les données afin qu'elles soient brouillées et qu'en l'absence de clé, personne ne puisse décoder les informations.

Share facebook icon linkedin icon twitter icon email icon

Clé cryptographique

Objectifs d’apprentissage

Après avoir lu cet article, vous pourrez :

  • Découvrir ce qu'est une « clé » en cryptographie
  • Comprendre comment une clé est utilisée pour brouiller des données dans le chiffrement
  • Expliquer comment l'échange de clés publiques rend le HTTPS possible
Cryptographic Key

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

En cryptographie, une clé est une chaîne de caractères utilisée dans un algorithme de chiffrement pour modifier des données afin qu'elles apparaissent de manière aléatoire. Comme une clé physique, elle verrouille (chiffre) les données afin que seule une personne possédant la bonne clé puisse les déverrouiller (déchiffrer).

Cryptographic Key Hello

Les données d'origine sont connues sous le nom de texte en clair, et les données après le chiffrement de la clé sont appelées code-texte (ciphertext).

La formule :

texte en clair
+ touche
= code-texte

Les clés des premières formes de chiffrement

Avant l'avènement des ordinateurs, le code-texte était souvent créé en remplaçant simplement une lettre par une autre dans le texte en clair, une méthode connue sous le nom de « chiffre de substitution ». Par exemple, supposons que quelqu'un envoie le message « Hello » à une autre personne et que chaque lettre soit remplacée par la suivante dans l'alphabet : « Hello » devient « Ifmmp ».

H E L L O
+1 +1 +1 +1 +1
I F M M P

« Ifmmp » ressemble à une chaîne de lettres absurde, mais si quelqu'un connaît la clé, il peut remplacer les lettres appropriées et déchiffrer le message qui est « Hello ». Pour cet exemple, la clé est (lettre) - 1. Elle déplace chaque lettre d'une place dans l'alphabet pour arriver à la vraie lettre.

I F M M P
-1 -1 -1 -1 -1
H E L L O

De tels chiffres sont relativement faciles à casser avec une simple analyse statistique, car certaines lettres apparaissent plus souvent que d'autres dans un texte donné (par exemple, E est la lettre la plus courante en français). Pour pallier cet inconvénient, les cryptographes ont développé un système appelé le One Time Pad.

Un One Time Pad (appelé également masque jetable) est une clé à usage unique qui contient au moins autant de nombres que le texte en clair a de caractères. En d'autres termes, chaque lettre sera remplacée par une autre lettre en lui retirant (lors du déchiffrement) un nombre unique de places correspondant à un nombre de la clé.

Par exemple, supposons que quelqu'un doive chiffrer le message « Hello » et qu'il utilise une clé à usage unique avec les valeurs 7, 17, 24, 9, 11.

H E L L O
7 17 24 9 11

Alors que dans l'exemple précédent, nous n'avons fait que monter d'une place chaque lettre (lettre + 1), désormais nous déplaçons chaque lettre d'un nombre différent de places dans l'alphabet. On ajoute 7 à la première lettre, H , 17 à la deuxième lettre, etc. Pour tout calcul qui dépasse Z, on revient simplement au début de l'alphabet et on continue à ajouter.

H E L L O
7 17 24 9 11
O V J U Z

À partir du texte en clair « Hello », nous avons maintenant le texte chiffré « Ovjuz », en utilisant la clé « 7, 17, 24, 9, 11 ».

Pour que la communication via un One Time Pad fonctionne, les deux côtés de la conversation doivent utiliser la même clé pour chaque message individuel (chiffrement symétrique), bien qu'une clé différente soit utilisée chaque fois qu'il y a un nouveau message. Même si « Ovjuz » ressemble à une suite aléatoire de lettres, la personne qui reçoit le texte chiffré « Ovjuz » saura utiliser la clé « 7, 17, 24, 9, 11 » pour le déchiffrer (soustraire au lieu d'ajouter) :

O V J U Z
7 17 24 9 11
H E L L O

Ainsi, un simple message peut être modifié par une chaîne de données aléatoires, une clé, afin d'être chiffré ou déchiffré.

Les clés du chiffrement moderne

Bien que les exemples ci-dessus empruntés à la cryptographie ancienne illustrent comment fonctionne l'utilisation d'une chaîne aléatoire d'informations pour transformer un texte en clair en un texte chiffré, les clés cryptographiques sont aujourd'hui beaucoup plus complexes.

Par exemple, laclé publique pour cloudflare.com est :

04 CE D7 61 49 49 FD 4B 35 8B 1B 86 BC A3 C5 BC D8 20 6E 31 17 2D 92 8A B7 34 F4 DB 11 70 4E 49 16 61 FC AE FA 7F BA 6F 0C 05 53 74 C6 79 7F 81 12 8A F7 E2 5E 6C F5 FA 10 69 6B 67 D9 D5 96 51 B0 (Copié à partir du certificat SSL cloudflare.com)

Cette clé est beaucoup plus complexe que la clé « 7 17 24 9 11 » que nous avons utilisée ci-dessus pour chiffrer « Hello ».

Au lieu de simplement ajouter ou soustraire, le chiffrement moderne utilise des formules mathématiques complexes appelées algorithmes. Par ailleurs, au lieu d'une simple chaîne de nombres aléatoires pour une clé, les clés modernes sont généralement encore plus aléatoires.

C'est le cas pour plusieurs raisons :

  1. Les ordinateurs sont capables de calculs beaucoup plus compliqués en moins de temps que les cryptographes humains, ce qui rend le chiffrement plus complexe non seulement possible, mais nécessaire.
  2. Les ordinateurs peuvent modifier les informations au niveau binaire, les 1 et les 0 qui composent les données, et non intervenir directement au niveau des lettres et des nombres individuels.
  3. Si les données chiffrées ne sont pas suffisamment aléatoires, un programme informatique pourra les déchiffrer. Le véritable caractère aléatoire est extrêmement important pour un chiffrement vraiment sécurisé. Bien qu'il ne soit pas possible d'écrire un programme qui produise des données vraiment aléatoires 100 % du temps, les ordinateurs sont bien meilleurs que les humains.

Combinée à un algorithme de chiffrement, une clé cryptographique brouillera un texte en le rendant incompréhensible pour la reconnaissance humaine.

À titre d'exemple, chiffrons le message « Hello » avec la clé publique cloudflare.com. En utilisant un algorithme de chiffrement avec cette clé, nous obtenons « KZ0KVey8l1c = » comme code-texte. (Pour les personnes ayant un penchant pour la technique : algorithme Blowfish, mode CBC, encodage base64.)

Comment les clés sont-elles utilisées dans le chiffrement SSL (HTTPS) ?

Il existe deux types de chiffrement : le chiffrement symétrique et le chiffrement asymétrique, également appelé chiffrement à clé publique. Dans le chiffrement symétrique, les deux côtés d'une conversation utilisent la même clé pour transformer le texte en clair en texte chiffré et vice versa.

Dans le chiffrement asymétrique ou à clé publique, les deux côtés de la conversation utilisent chacun une clé différente. Une clé est appelée clé publique, et l'autre clé est appelée clé privée (elle est ainsi nommée car l'une des parties la garde secrète et ne la partage jamais avec personne). Lorsque le texte en clair est chiffré avec la clé publique, seule la clé privée peut le déchiffrer, pas la clé publique. Cela fonctionne également dans l'autre sens : lorsque le texte en clair est chiffré avec la clé privée, seule la clé publique peut le déchiffrer.

SSL (ou TLS, comme on l'appelle aujourd'hui), est un protocole de chiffrement utilisé pour sécuriser les communications Internet. Un site web qui est diffusé en HTTPS au lieu de HTTP utilise ce type de chiffrement. En TLS/SSL, un site web ou une application web aura à la fois une clé publique et une clé privée. La clé publique est partagée publiquement dans le certificat SSL du site web pour que tout le monde puisse la voir. La clé privée est installée sur le serveur d'origine et n'est jamais partagée.

Les sessions de communication TLS/SSL commencent par un handshake TLS, au cours duquel le site web et le client utilisent la clé publique et la clé privée afin de générer de nouvelles clés, appelées clés de session. Ces clés de session sont ensuite utilisées par les deux parties pour chiffrer leurs messages échangés.

Ainsi, TLS commence par un chiffrement asymétrique (avec deux clés) et passe au chiffrement symétrique (avec une clé). Les deux côtés utilisent les mêmes clés pendant la session de communication, mais lorsqu'elles commencent une nouvelle session, elles génèrent de nouvelles clés ensemble.