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.
Cet article s'articule autour des points suivants :
Contenu associé
SSL sans clé
Comment fonctionne le SSL ?
négociation SSL
Qu'est-ce qu'un certificat SSL ?
Le SSL, qu’est-ce que c’est ?
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Une clé cryptographique est une chaîne de caractères utilisée dans un algorithme de chiffrement pour modifier des données afin qu'elles ressemblent à des données aléatoires. 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).
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
+ clé
= texte chiffré
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é.
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, la clé publique d'un site web pourrait être quelque chose comme ça :
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 :
Combinée à un algorithme de chiffrement, une clé cryptographique brouillera un texte en le rendant incompréhensible pour la reconnaissance humaine.
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 cas du chiffrement asymétrique ou à clé publique, les deux parties de la conversation utilisent chacune une clé différente. Une clé est appelée clé publique, et une autre clé est appelée clé privée - ainsi nommée parce que 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, et non la clé publique.
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 servi sur HTTPS au lieu de HTTP utilise ce type de chiffrement. Dans TLS/SSL, un site Web ou une application Web possède 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.