Cet article fait suite à l’article sur le chiffrement symétrique. Comme expliqué dans l’article précédent, le chiffrement symétrique complète le chiffrement asymétrique. S’il possède des défauts, il répond aussi à certains problèmes inhérents au chiffrement symétrique, notamment l’échange de clef. C’est le chiffrement le plus couramment utilisé: par exemple, c’est celui utilisé pour le protocole HTTPS.

Principe de base du chiffrement asymétrique

Le principe du chiffrement symétrique reposait sur la génération d’une clef, qui allait servir autant pour le chiffrement que pour le déchiffrement. La méthode utilisée était la même, en inversé. D’où la notion de « symétrique ».

Le chiffrement asymétrique, quant à lui, va reposer sur la génération non pas d’une mais de deux clefs. Ces clefs sont appelées clef privée et clef publique. La clef privée a, comme son nom l’indique, pour principe d’être à l’usage exclusif d’une personne ou service. On va ainsi chiffrer les communications vers cette personne / ce service.

Pour reprendre le cas d’un service web en HTTPS, un couple de clefs sera généré pour son usage. Le protocole HTTPS n’est rien de plus que le protocole HTTP utilisant un chiffrement asymétrique pour protéger la communication.

Fonctionnement du chiffrement asymétrique

Comme dit précédemment, le but est de chiffrer la communication vers le service ayant généré les clefs. Cette personne / service doit alors mettre à disposition sa clef publique. Cette clef va être utilisée pour chiffrer la communication, qui va ensuite être envoyée au service. Enfin, le service va déchiffrer la communication via sa clef privée.

Pour faire un parallèle simple, le chiffrement asymétrique fonctionne de la même façon qu’une encre invisible. La protection (l’encre) qui sera utilisée par l’émetteur ne lui sert à rien pour lire le message. Et seul le destinataire qui possède la bonne lampe peut lire le message. Pour parfaire la métaphore, la génération de clef reviendrait à avoir votre propre combinaison d’encre + lampe qui vous serait propre. Vous transmettriez alors l’encre à tout ceux qui veulent vous écrire un message, mais seuls vous avez la bonne lampe.

Implications du chiffrement asymétrique

Le chiffrement asymétrique a pour principal avantage d’éliminer le problème de l’échange de clef. Il reste néanmoins un point crucial: la clef privée doit absolument le rester. Tout comme pour la clef symétrique, toute la sécurité repose sur cette dernière. L’endroit où elle est stockée doit donc être parfaitement sécurisé.

Un certain nombre d’attaques existe aussi, utilisant le principe d’une clef publique notamment. Tout le monde peut générer ses clefs, mais alors les clefs sont appelées « auto-signée ».

Exemple d’erreur avec un certificat auto-signé

Les certificats auto-signés sont appelés ainsi car aucune autorité de certification (nommée couramment CA pour Certificate Authority) n’a délivré le certificat. Une autorité de certification est un organisme approuvé comme étant de confiance pour délivrer ces certificats.

Autorités racines approuvées par défaut sur Google Chrome pour la validation de certificats

Il est aussi possible créer dans son entreprise une PKI (Public Key Infrastructure), qui aura pour but de gérer cela. Cela peut être fait via des solutions telle que Microsoft AD CS. Pour être accompagné dans la mise en place d’une PKI, n’hésitez pas à prendre contact avec nous.

La signature digitale

Jusqu’à présent nous avons vu comment protéger une communication vers une personne / un service via le chiffrement asymétrique. L’un des problèmes est de bien protéger sa clef privée. L’autre est qu’en l’état, il est impossible de prouver de qui provient la communication, ni que la communication n’a pas été altérée.

La signature digitale répond à ces derniers problèmes. Ce principe est couramment utilisé afin de garantir l’intégrité et la non-répudiation des messages. Elle repose elle aussi sur le chiffrement asymétrique. Mais contrairement à l’explication précédente où on cherchait la confidentialité du message, on va ici utiliser le process inverse.

Une fois le message établi, on va utiliser un algorithme de hash afin de garantir l’intégrité du message. Puis on va utiliser une fonction de signature à partir de la clef privée de l’expéditeur sur ce hash. Le résultat sera alors envoyé avec le message. Le destinataire va alors vérifier la signature via la clef publique de l’expéditeur. Si c’est valide, alors on prouve ainsi que le message n’a pas été altéré, et que c’est bien l’expéditeur qui l’a envoyé.

La signature digitale peut être utilisée sans le chiffrement asymétrique, mais le message reste alors parfaitement visible. Pour garantir à la fois confidentialité, intégrité et non-répudiation, on peut cumuler les deux principes.

La combinaison de chiffrement symétrique / asymétrique

Déjà évoqué plus haut dans cet article, le principal défaut du chiffrement asymétrique est la gestion de la clef. C’est la même clef qui gère le chiffrement et le déchiffrement, ce qui ne rend l’algorithme utile que dans certains contextes. De plus, il faut s’assurer qu’on puisse s’échanger la fameuse clef en toute sécurité. Or, ce n’est pas une évidence. De plus, cela complique le changement de clefs régulier.

Afin de pallier à ce genre de problème, des algorithmes ont été mis en place afin de fusionner les avantages et éliminer la plupart des problèmes de ces méthodes. Ces algorithmes reposent souvent sur la même méthode: il s’agit de mettre en place un chiffrement asymétrique (ou un « challenge ») qui va servir à générer / s’échanger les clefs privées symétriques. Une fois l’échange effectué, le chiffrement symétrique, plus rapide, est mise en place. En mettant une durée de vie suffisamment courte, la rotation régulière des clefs permet de garder une sécurité optimale.

Le principal risque de sécurité de ce type d’algorithme se situe souvent sur l’implémentation de l’échange de clef.

L’authentification « passwordless » (sans mot de passe)

Les certificats sont aussi beaucoup utilisés pour éviter l’utilisation de mot de passe en entreprise.

Pour éviter les mots de passe sur les applications d’un téléphone, il est possible de déployer un certificat personnel. Si l’application le permet, c’est le certificat qui authentifie la personne, et non pas un mot de passe. Cela peut aussi servir pour la double authentification (certificat + mot de passe ou autre).

C’est aussi le principe qui est utilisé pour le protocole WebAuthn et les clefs de sécurité tels que les clefs de chez Yubico.

Cas d’utilisation du chiffrement asymétrique

Pour faire une rapide synthèse, voici quelques cas courants d’utilisation de chiffrement asymétrique:

  • Afin de chiffrer communication entre un service et des inconnus. Par exemple, le HTTPS d’un site web. On veut chiffrer toutes les communications vers notre site, mais on ne sait pas à l’avance qui s’y connecte
  • Pour chiffrer des informations à mettre en base de données, et lisibles que par certaines personnes / services. On utilisera alors la clef publique pour chiffrer, et seul la personne / service à qui c’est destiné possède la clef privée
  • La mise en place de service « passwordless ». La personne ou le service sera identifié via le principe de signature digitale.
  • La création de containers de sécurité que l’on évoquera dans un prochain article.
Author