Retour sur les notions de chiffrement asymétrique, PKI et certificats…

Note : cet article s’adresse en premier lieu à mes étudiants mais pourra très certainement servir à n’importe qui souhaitant se rafraîchir la mémoire concernant le sujet 🙂

Durant notre cours, nous avons cherché à sécuriser nos échanges via l’utilisation de chiffrement asymétrique. Je vous avais exposé les différences qu’a celui-ci avec le chiffrement symétrique :

  • En cryptographie symétrique, la clé est la même pour chiffrer et décrypter un message. On voit rapidement le problème posé si quelqu’un souhaite m’envoyer un message chiffré… N’importe qui disposant de la clé sera en mesure de décrypter le message. Pas très sûr… Heureusement pour palier à cela on trouve la cryptographie asymétrique
  • La cryptographie asymétrique fait intervenir deux clés : une clé publique, que je distribue à toutes les personnes souhaitant chiffrer un message avant de l’envoyer, et une clé privée, qui sera la seule capable de déchiffrer le message chiffré avec la clé publique. Je garde donc la clé privée en sécurité pour déchiffrer tous les messages m’étant destinés et ayant été chiffrés avec la clé publique associée.

1re étape : Alice génère deux clés. La clé publique (verte) qu'elle envoie à Bob et la clé privée (rouge) qu'elle conserve précieusement sans la divulguer à quiconque. (source : Wikimedia)

1re étape : Alice génère deux clés. La clé publique (verte) qu’elle envoie à Bob et la clé privée (rouge) qu’elle conserve précieusement sans la divulguer à quiconque. (source : Wikimedia)

2e et 3e étapes : Bob chiffre le message avec la clé publique d'Alice et envoie le texte chiffré. Alice déchiffre le message grâce à sa clé privée. (Source : Wikimedia)

2e et 3e étapes : Bob chiffre le message avec la clé publique d’Alice et envoie le texte chiffré. Alice déchiffre le message grâce à sa clé privée. (Source : Wikimedia)

C’est ce qu’il se passe lorsque vous vous connectez à un site en HTTPS. Le serveur hébergeant le site vous fournit sa clé publique et vous pouvez commencer à échanger avec lui en toute sécurité. Vraiment en toute sécurité ? En fait non, nous allons voir pourquoi.

Exemple avec Wikipédia. Voici la clé publique récupérée sur la page d’accueil de l’encyclopédie :

Module (2048 bits) :
d4 69 95 8b 85 f2 44 80 44 4d f9 dc e9 fc 02 af 
53 fe 3a 44 73 cc 3f 07 ec f3 3e a8 97 15 4f d4 
43 c3 06 9a 29 f5 59 2c 3e 5f aa f7 79 69 9a 2e 
ac dd f6 8e 58 1e 51 a6 5a a9 fa ef f5 ac a1 e1 
96 bf b6 6a 1f 6a 43 53 69 e9 76 fa 80 a3 55 a5 
90 3f 49 20 6e 49 ec 6e 05 7c 16 60 88 03 21 78 
af 92 e9 f7 bb b1 2e ce 8c 4c 13 f9 cc 98 de f0 
86 76 d0 d8 92 03 18 cf 0b 71 fb 03 3e 31 4a c9 
5c b0 b6 ed d1 cb c6 2a 1d 1c 3e 87 76 de b4 a6 
8a 74 6c c1 61 04 00 ee d0 e6 c9 d2 06 bb fc 89 
bb 19 e6 06 60 32 2f 3b 68 13 46 38 88 7d 38 fc 
dc a1 23 3c d1 7e 20 ce 90 8e e0 f7 d2 b2 b5 1a 
c3 61 d8 18 e3 13 ea 2c 54 e8 f2 a5 5a 4c 3d 42 
47 06 b4 b2 d3 dd cf bf 54 59 19 84 9f d9 39 3f 
4d 86 59 d7 f1 1e f4 6f 62 1d 96 93 c7 a8 e7 7a 
c9 23 2a 57 7c 0f ba e5 6e ef 6d 6b ea d7 a3 05 
 
Exposant (24 bits) :
65537

Comment m’assurer que la clé reçue ici est bien celle de Wikipédia, et non une fausse clé fournie par un tiers situé entre moi et Wikipédia ? Grâce au certificat.

Ce certificat est lié à la clé publique puisqu’il contient, entre autres, l’empreinte numérique de celle-ci. Et pour s’assurer de l’authenticité de ce certificat, il est signé par un tiers de confiance : l’autorité de certification. De nombreuses autorités de certification sont connues par nos navigateurs, qui leur font confiance sans nous afficher d’avertissement. C’est le cas par exemple de VeriSign, Thawte, DigiCert…

Par contre, on appelle certificat auto-signé un certificat qui a été signé par la même entité qu’il l’a émise. C’est le cas de ce site, si vous y accédez en HTTPS. J’ai signé mon propre certificat, et comme l’autorité de certification que je suis n’est pas connue par votre navigateur, il vous affichera un avertissement :

Certificat auto-signé Guillaume

Voilà, c’était vraiment histoire de (re)voir les bases. Si la cryptographie vous intéresse, je vous conseille de commencer par l’excellent article sur 0x0ff.info intitulé la cryptographie pour les néophytes. Sans oublier Wikipédia qui apportera une définition plus précise à tous les termes vus ici.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email