Logjam

De Wiki du LAMA (UMR 5127)
Révision datée du 26 novembre 2019 à 22:04 par Hchas (discussion | contributions) (Page créée avec « Travail réalisé dans le cadre de l'info 910 | WIP ---- Nous allons vous présenter ​Logjam​, une attaque révélée en 2015 par une équipe multinational de cherch... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Travail réalisé dans le cadre de l'info 910 | WIP


Nous allons vous présenter ​Logjam​, une attaque révélée en 2015 par une équipe multinational de chercheurs du domaine privé et public. Cette attaque permet à un attaquant de se faire passer pour un serveur légitime lorsqu’une transaction TLS a lieu avec un client.Cette attaque exploite les faiblesses des configurations des serveurs, notamment le support de Diffie-Hellman avec des clés de 512 bits ou encore la réutilisation de nombre premiers.Cette faille touche environs 8% des sites webs du top 1 millions ​d’Alexa​. Ainsi, après une semaine de pré-calcul, les chercheurs ont pu mené des attaques contre des sites sensibles comme: ​tips.fbi.gov​. Nous allons donc commencer par voir le protocole TLS avant de nous intéresser à l’attaque en elle-même. Enfin nous verrons quels sont les moyens de s’en prévenir.

Protocole TLS

TLS (Transport Layer Security ) est un protocole de sécurisation pour les échanges sur Internet. Il utilise un mode de communication client-serveur, où il y a d’un côté le client qui envoie des requêtes, et de l’autre le serveur qui attend les requêtes du client et y répond.L’avantage de celui-ci, est que le serveur est authentifié, et que les données échangées sont confidentielles et intègres.Au sujet de son fonctionnement, il utilise la cryptologie, donc il transforme les données grâce à un algorithme et une clé de chiffrement afin de les rendre illisibles.Pour commencer, le protocole utilise la cryptographie asymétrique avec un certificat pourauthentifier le serveur, puis il utilise l’algorithme Diffie-Hellman pour que le client et le serveur se mettent d’accord sur une clé de chiffrement, pour finir il utilise la cryptographie symétrique pour la communication des messages.

Cryptographie asymétrique avec certificat

Dans la cryptographie asymétrique, on utilise deux clés, une clé publique et une clé privée. L’une des clés sert à chiffrer le message, et l’autre à déchiffrer.

Fonctionnement :

  • Alice et Bob ont chacun une clé publique et une clé privée
  • Alice transmet sa clé publique à Bob, et Bob transmet sa clé publique à Alice, mais ils gardent tous les deux leur clé privée
  • Bob veut envoyer un message à Alice, alors il chiffre son message avec la clé publique d’Alice
  • Alice déchiffre le message en utilisant sa clé privée, comme elle est la seule à posséder cette clé, personne d’autres peut déchiffrer le message
  • De la même façon, si Alice veut répondre à Bob, elle chiffrera son message en utilisant la clé publique de Bob
  • Puis Bob utilisera sa clé privée pour déchiffrer le message

Les points positifs de cette méthode est qu’elle assure la confidentialité des messages, car seule le détenteur de la clé privée peut déchiffrer les messages chiffrés avec la clé publique. Puis, elle authentifie l’expéditeur, car si le message ne peut pas être déchiffré avec la clé privée, alors ce n’est pas le bon expéditeur, car il n’a pas chiffré le message avec la bonne clé publique.

Le problème est la transmission de la clé publique, d’où l’attaque du MITM ( Man In The Middle ). Une personne malveillante peut se positionner entre Alice et Bob, donner sa clé publique à la place et récupérer celles d’Alice et Bob.

Afin de résoudre ce problème, le protocole TLS utilise un certificat pour identifier le porteur de la clé. Ce certificat contient la clé publique de la personne, ses informations personnelles comme son nom et son email, des informations sur le certificat comme sa date de validité, ainsi qu’une signature électronique de l’AC ( autorité de certification ). La signature électronique est la combinaison de toutes les informations du certificat et de la clé publique, tout ceci chiffré avec la clé privée de l’AC, qui est l’institution créant les certificats et garantissant que les informations contenus dans ceux-ci sont corrects.

Donc, afin d’authentifier le porteur de la clé : Alice créer un certificat en fournissant ses informations et sa clé publique à l’AC L’AC vérifie et crée le certificat avec la signature électronique Alice envoie son certificat à Bob Bob déchiffre la signature électronique avec la clé publique de l’AC et vérifie si les informations sont corrects, si c’est le cas, alors le porteur de la clé est authentifié

Algorithme Diffie-Hellman

Maintenant que le serveur est authentifié, il doit se mettre d’accord sur une clé de chiffrement avec le client. Pour ceci, le protocole utilise l’algorithme de Diffie-Hellman.

Fonctionnement :

  • Alice et Bob se mettent d’accord sur deux très grands nombres, p et g, en communiquant en clair sur le réseau
  • Alice et Bob choisissent chacun de leur côté un très grand nombre aléatoire, qu’ils gardent pour eux. Soit a pour Alice et b pour Bob
  • Alice calcule A = g^a mod p, et le transmet à Bob
  • De même pour Bob, il calcule B = g^b mod p, et le transmet à Alice
  • Puis, Alice et Bob calculent K = B^a mod p = A^b mod p

Ainsi, Alice et Bob se sont mis d’accord sur une clé de chiffrement secrète.

Grâce à cet algorithme, la confidentialité est garantie car si l‘attaquant intercepte les communications, il ne pourrait pas retrouver la clé privée à partir des informations transmises en clair Sachant que a et b sont de très grands nombres, il est presque impossible de retrouver leur valeur.

Cryptographie symétrique

Après que le client et le serveur se sont mis d’accord sur une clé de chiffrement, ils vont pouvoir communiquer en utilisant la cryptographie symétrique.

Dans la cryptographie symétrique, on utilise qu’une seule clé pour chiffrer et déchiffrer un message.

Fonctionnement :

  • Alice et Bob ont une même clé secrète
  • Alice veut envoyer un message à Bob, alors elle chiffre son message avec la clé secrète, et l’envoie à Bob
  • Bob déchiffre le message avec la même clé secrète
  • De la même façon, si Bob veut répondre, il chiffrera son message avec la clé secrète en l’enverra à Alice

L’avantage de cette méthode, est que personne ne peut lire les messages envoyés car ils sont chiffrés avec la clé secrète.

Le problème qui peut se poser est l’échange de la clé secrète, mais comme on utilise l’algorithme de Diffie-Hellman, alors l’échange de la clé est sécurisée.

Attaque “Logjam”