Le chiffrement : notions et vocabulaire

Toolkit pour évoluer dans un écosystème où la cybersécurité prend de plus en plus d’importance.

Pramana
Pramana
Feb 4 · 7 min read

L’importance croissante de la cybersécurité a mis de nombreuses techniques de protection de l’information sous le feu des projecteurs. Parmi celles-ci, le chiffrement fait partie des plus connues aujourd’hui. Pourtant, les prémices de ce mécanisme remontent à fort longtemps. Déjà présent sous l’antiquité, le chiffrement était employé pour permettre de transmettre des messages sensibles, généralement à caractère politique ou militaire. Aujourd’hui, le chiffrement est entré dans le domaine civil et est largement utilisé en informatique et des milliers d’années se sont écoulées depuis l’origine de cette science. Cependant, le besoin initial autour du chiffrement n’a pas bougé d’un cheveu : éviter que des données ne soient lisibles par des personnes n’ayant pas vocation à les avoir à disposition. Comment ? En mettant en place un moyen de transcrire ces données en un format indéchiffrable si l’on ne connaît pas la technique de chiffrement ou si l’on ne possède pas un élément tiers prévu à cet effet. Avec l’explosion du cloud, de l’IoT, des appareils nomades ou encore du télétravail, il est intéressant de comprendre dans les grandes lignes le fonctionnement des mécanismes de chiffrement que l’on croise régulièrement, ce dans l’optique d’avoir les notions et le vocabulaire pour évoluer dans un écosystème où la mobilité et la cybersécurité prennent de plus en plus d’importance. Cet article se veut volontairement vulgarisateur afin d’introduire la notion de chiffrement et de la rendre compréhensible par tous. C’est pour cette raison que les différents principes mathématiques que l’on retrouve en cryptographie ne seront pas présentés dans les lignes qui suivent.

Principe général

Les algorithmes de chiffrement fonctionnent avec ce qu’on appelle des « clés ». Une clé est une suite de caractères alphanumériques, générée aléatoirement et transmise à un algorithme pour effectuer une action de chiffrement ou de déchiffrement. Pour schématiser, prenons le mot « Pramana ». Afin de le rendre incompréhensible, nous allons remplacer les lettres « a » par une lettre quelconque. Cette lettre que l’on choisirait serait notre clé de chiffrement, et l’action de remplacer la lettre « a » serait l’exécution de notre algorithme. On peut dès lors distinguer deux grands types d’algorithmes de chiffrement à clé : les algorithmes de chiffrement à clé symétrique et les algorithmes de chiffrement à clé asymétrique.

Le chiffrement à clé symétrique

Les algorithmes de chiffrement à clé symétrique fonctionnent à l’aide d’une clé unique, servant à la fois à chiffrer et à déchiffrer (d’où le terme « symétrique »). L’avantage principal de ce mode de chiffrement est qu’il est performant. Cependant, si une personne parvient à se procurer la clé ayant servi à chiffrer les données, celle-ci pourra s’en servir pour les déchiffrer. Dès lors, il devient difficile de communiquer en toute sécurité une clé de chiffrement. Heureusement pour nous, les algorithmes à clé asymétrique (que nous verrons dans les lignes qui suivent) permettent de résoudre ce problème. L’ANSSI (l’Agence Nationale de la Sécurité des Systèmes d’Information) recommande l’usage de clé d’au moins 128 bits (moins de 100 bits étant risqué) pour les algorithmes à clé symétrique (AES et DES étant les algorithmes plus répandus).

Le chiffrement à clé asymétrique

Là où les algorithmes de chiffrement à clé symétrique n’utilisent qu’une clé pour chiffrer et déchiffrer, les algorithmes à clé asymétrique fonctionnent quant à eux à l’aide d’une paire de clés. L’une servira à chiffrer et l’autre, vous l’aurez deviné, à déchiffrer. Dans cette paire de clé, nous aurons d’un côté la clé dite « privée », et de l’autre la clé dite « publique » (générée mathématiquement à partir de la clé privée). Là encore, vous l’aurez probablement deviné, la clé privée a vocation à rester privée et la clé publique à être partagée (et ce, dans le cas de certains protocoles par le biais d’un certificat qui n’est autre qu’une carte d’identité numérique contenant une clé publique et permettant de l’associer à une entité telle qu’une personne ou entreprise par exemple).

« Mais quelle clé sert à chiffrer et quelle clé sert à déchiffrer ? »

Tout dépend de votre besoin, les deux pouvant jouer ce rôle. Généralement, la clé publique servira à chiffrer et la clé privée à déchiffrer. Si je souhaite chiffrer un document et vous le communiquer, j’utiliserai pour ce faire votre clé publique. Ainsi, personne d’autre que vous ne pourra déchiffrer le document car comme vu précédemment, seule votre clé privée peut déchiffrer le contenu chiffré avec la clé publique. Le chiffrement d’un document par le biais d’une clé privée est principalement utilisé dans le cas où il y a un besoin de signer celui-ci. En effet, étant le seul propriétaire de ma clé privée, personne d’autre que moi ne pourra chiffrer avec celle-ci. En revanche, tout le monde pourra déchiffrer avec ma clé publique le contenu chiffré avec ma clé privée. Ainsi, si je vous envoie un e-mail signé avec ma clé privée et que vous possédez également ma clé publique, vous aurez la certitude que cet e-mail aura bien été envoyé par moi-même (sauf bien sûr dans le cas où je me serais fait dérober ma clé privée, auquel cas ce serait vraiment problématique…).

Dans le domaine des communications, le chiffrement à clé asymétrique est aujourd’hui principalement utilisé pour distribuer les clés de chiffrement symétriques, beaucoup plus rapides et moins gourmandes que leurs homologues asymétriques. Un protocole très connu se basant sur ce principe d’échange de clés est le protocole TLS pour Transport Secure Layer (anciennement SSL). Ainsi, lorsque vous naviguez sur un site web via le protocole HTTPS, vous appliquez sans vous en rendre compte ce principe, HTTPS étant lui-même basé sur TLS.

Le schéma ci-dessous issu du guide « Recommandation de sécurité relatives à TLS » rédigé par l’ANSSI décrit parfaitement le protocole TLS et introduit les différentes notions abordées précédemment. Pour plus d’informations sur ce protocole, je vous invite à lire ce guide qui est très instructif et relativement accessible pour peu d’avoir quelques notions en réseau informatique.

  1. Le client envoie un message au serveur en lui indiquant la version maximale de TLS qu’il peut prendre en charge, ainsi qu’une valeur aléatoire qui servira plus tard à générer la clé symétrique qui chiffrera les communications entre le client et le serveur.
  2. Le serveur répond au client en lui indiquant la version de TLS qu’il va utiliser (en se basant sur les versions pris en charge par le client), ainsi qu’une valeur aléatoire qui servira également à générer la clé symétrique.
  3. Le serveur envoie au client son certificat contenant sa clé publique.
  4. Un message de type ServerKeyExchange est envoyé si le certificat fourni par le serveur n’est pas suffisant pour que le client puisse transmettre au serveur un secret dit pré-maître (valeur utilisée par l’algorithme de création de la future clé symétrique).
  5. Le serveur indique au client qu’il est en attente de sa réponse.
  6. Après validation du certificat du serveur, le client génère le secret pré-maître et le transmet au serveur, chiffré avec la clé publique de celui-ci. Le client et le serveur vont alors générer chacun de leur côté une clé maître à partir des valeurs aléatoires échangées lors des étapes une et deux, ainsi que du secret pré-maître.
  7. Le client indique au serveur que les prochaines communications seront désormais chiffrées avec la clé symétrique de session (la clé maître).
  8. Le client envoie son premier message chiffré avec la clé symétrique.
  9. Le serveur indique à son tour que les prochaines communications seront chiffrées avec la clé symétrique de session.
  10. Le serveur envoie son premier message chiffré avec la clé symétrique.

Pour aller plus loin

Vous possédez désormais quelques clés pour parler chiffrement avec votre RSSI. Cependant, ce domaine est bien vaste et nombreux sont les thèmes pouvant être développés dans d’autres articles (ceux-ci arriveront par la suite, rassurez-vous). Si toutefois le besoin de sécuriser votre SI se fait urgemment ressentir, n’hésitez pas à contacter notre cabinet de conseil Pramana. Nous tacherons de vous accompagner tout au long de votre projet, qu’il soit orienté cloud via nos architectes certifiés AWS et AZURE, ou sur site via nos architectes forts de leurs expériences réussies dans le domaine.

Rémi Beraux
Consultant Pramana

Pramana

Written by

Pramana

Designing The Digital World

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade