Introduction

Les communications, qu’elles soient entre humains, entre humains et machines, ou entre machines, peuvent être interceptées par différents moyens, parfois surprenants. Il est donc important de les protéger, que ce soit pour protéger sa vie privée ou pour éviter un piratage. Pour protéger ces communications, on chiffre les messages à l’aide d’une méthode de cryptographie, comportant une ou plusieurs clés secrètes. Les deux principes de chiffrement sont le chiffrement symétrique, où la même clé est utilisée pour le chiffrement et le déchiffrement du message, et le chiffrement asymétrique, où deux clés différentes sont utilisées. Reste à assurer que les clés ne soient pas piratées, ce qui est le problème de l’authenticité des utilisateurs. La sécurité des communications dépend à la fois des méthodes de chiffrement et des protocoles d’échange des clés.

Vocabulaire : chiffrer/déchiffrer s’utilise pour transformer un message clair en message codé à l’aide d’une clé. Décrypter, c’est casser le code sans connaître la clé. Crypter n’est pas du français mais du globbish.


Chiffrement symétrique

Dans le chiffrement symétrique, la même clé permet à la fois de chiffrer et de déchiffrer le message. La clé secrète doit donc être connue préalablement par les deux entités communiquant. On peut remarquer que si la clé fait la taille du message (ou plus), alors le message ne peut pas être décrypté. Comme dit en introduction, il faut également échanger cette clé au préalable, sans qu’elles ne soient interceptées !

Quelques exemples historiques

Méthodes actuelles

L’algorithme AES (Advanced Encryption Standard) est un standard de chiffrement symétrique. Il est peu coûteux en mémoire, facile à mettre en forme, et il n’existe pas actuellement de méthode plus efficace que la force brute pour le casser.


Chiffrement asymétrique

Lors du chiffrement asymétrique, deux clés sont utilisées, l’une privée (secrète) et l’autre publique. La clé publique permet de chiffrer le message, et la clé privée permet de le déchiffrer. Comme leur nom l’indique, la clé privée n’est pas transmise, contrairement à la clé publique.

Le principe a été imaginé en 1976 par Diffie et Hellman, mais sans algorithme correspondant. En 1978 Rivest, Shamir et Adleman inventent l’algorithme RSA. Les services secrets anglais avaient déjà imaginé des concepts semblables quelques années plus tôt, mais ont gardé ces recherches secrètes jusqu’en 1997.

Ces protocoles reposent sur l’asymétrie des fonctions utilisées (fonctions dites à sens unique). Par exemple, dans RSA on utilise le produit de deux nombres premiers. Autant il est facile d’effectuer une multiplication de deux nombres premiers, autant il est difficile d’obtenir la décomposition de ce produit en les deux nombres d’origine.

Une présentation des fondements mathémathiques de l'algorithme de chiffrement RSA (au programme de l'option mathématiques expertes) : ici

Principe

Alice souhaite recevoir un message secret de Bob, sur un canal susceptible d’être écouté par Ève.

Génération des clés publique et privée par Alice
Chiffrement par Bob et déchiffrement par Alice
Vulnérabilité dans l'échange de la clef publique : attaque de l'homme du milieu (Man of the middle)

Alice et Bob veulent échanger des données confidentielles, et Carole, jalouse, veut les intercepter. Ils possèdent chacun une clé privée (respectivement As, Bs et Cs) et une clé publique (respectivement Ap, Bp et Cp).

Cas normal

Attaque

Admettons maintenant que Carole soit en mesure de modifier les échanges entre Alice et Bob.

Une solution possible pour se prémunir contre cette attaque

On peut obtenir la clé publique de son interlocuteur par un tiers de confiance. Si les deux interlocuteurs possèdent un contact en commun (le tiers de confiance) alors ce dernier peut servir d'intermédiaire pour transmettre les clés. Les infrastructures à clés publiques sont des systèmes ou des organismes qui permettent de vérifier la validité des clés en se basant principalement sur des certificats. C'est notamment la méthode utilisée par le protocole HTTPS, où le certificat d'authentification du site web consulté est obtenu auprès d'une autorité de certification reconnue.


Protocoles hybrides

Les protocoles asymétriques sont difficiles à casser mais lents. Les protocoles symétriques sont rapides, mais nécessitent l’échange préalable des clés. Les protocoles hybrides utilisent les deux méthodes. RSA peut par exemple être utilisé pour échanger une clé de protocole symétrique.

Par exemple, TLS/SSL (le « https ») utilise en partie un chiffrement asymétrique, pour initialiser la connexion client/serveur, et créer une clé symétrique utilisée pour la suite de la session. Ce protocole mélange donc les deux types de chiffrement. Cette méthode est couplée avec un mécanisme d’authentification : l’utilisation des certificats de sécurité, confiés à un tiers de confiance.

Exemple : https

Le protocole http permet d’échanger des données entre client et serveur. En première, on voit deux possibilités de http avec les méthodes GET et POST. Ce protocole n’est pas sécurisé, il n’est donc pas adapté à tous les échanges de données sur le web. https rajoute à http une couche de sécurité, la couche TLS (plus sûre que SSL).

Les protocoles de communication commencent par une mise en relation des entités. On appelle souvent cette mise en relation la « poignée de mains » (handshake).

  • La vérification de la signature se fait auprès d’autorités extérieures (les tiers de confiance).
  • La clé symétrique est une clé AES, qui est chiffrée avec la clé publique du serveur. Elle ne sert que pour une seule session : une autre clé est générée s’il y a déconnexion et reconnexion.
  • La clé symétrique est déchiffrée par le serveur avec sa clé privée : on utilise deux protocoles successivement. Protocole asymétrique pour la poignée de mains, puis protocole symétrique pour l’échange des données.

Le futur

Les protocoles actuels sont très solides, les coûts de décryptage étant prohibitifs. Par contre, avec un ordinateur quantique ils seront cassés très rapidement. Il faudra alors passer à des méthodes de cryptographie quantique. Notamment, lors de transmissions de paquets quantiques, une éventuelle interception est toujours détectable (elle modifie la nature du paquet transmis). Cela permet au moins de savoir que la communication a été interceptée.


Auteur : Hugues Malherbe
Sources :