GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que l'échange de clés partagées (comment fonctionnent les VPN, partie 3)

Cet article de la série « Comment fonctionnent les VPN » décrit le fonctionnement d'un échange de clé partagée. Si vous êtes déjà perdu, pas de panique ! Cette série d'articles explique les concepts et les méthodes derrière les VPN sans nécessiter une plongée approfondie dans les mathématiques qui les alimentent.

Si vous êtes entièrement nouveau dans le concept des VPN, consultez cette introduction. Si vous connaissez déjà un peu le fonctionnement des VPN et que vous souhaitez en savoir un peu plus, cette série est pour vous. Chaque article aborde un aspect de la façon dont un VPN aide à sécuriser les données en racontant une histoire qui sert de métaphore aux mécanismes logiques impliqués. Ces histoires impliquent Adam et Burt essayant de garder un secret et une troisième personne, Cesar, essayant de découvrir leur secret de manière néfaste. Étant donné que les VPN n'ont pas d'équivalent parfait dans le monde physique, certains éléments peuvent repousser les limites de la crédibilité (par exemple, Cesar a accès à un rayon duplicateur). Rappelez-vous, ce n'est qu'une histoire…

Chaque article comporte également des sections extensibles (indiquées par l'icône d'engrenage), qui contiennent une explication un peu plus approfondie qui est un peu plus technique mais évite toujours de se perdre trop dans les mathématiques. Ces sections lient un peu plus les événements de l'histoire aux composants ou aux étapes de chiffrement ou d'authentification, mais ne sont pas nécessaires pour acquérir une compréhension de base du sujet.

Échange de clé partagée

Dans des aventures précédentes, nos amis Adam et Burt ont essayé de garder leur projet de bande dessinée secret de l'espionnage de Cesar en sécurisant les messages qu'ils échangent avec une clé partagée et un système de paire clé publique/clé privée plus élaboré. Chaque système a ses forces et ses faiblesses. Mais les garçons ont besoin d'une pause dans ce projet, et heureusement pour eux, il y a une foire à proximité. Ils entrent dans la cuisine du chili et parce qu'ils aiment garder leurs créations secrètes, ils conçoivent un moyen de garder leur recette secrète, même lorsqu'ils la préparent devant des spectateurs. La recette sera donc sécurisée; même eux ne le sauront pas !

Un point de départ bien connu

Pour réussir cet exploit, Adam et Burt devront chacun développer une partie de la recette sans rien savoir de ce que l'autre a contribué. Si aucun d'eux ne connaît toute la recette, aucun ne peut la révéler. Cependant, ils s'accordent sur une base commune d'ingrédients (un mélange de base de tomate, d'assaisonnement au chili, de bœuf et de haricots). Il n'est pas nécessaire de garder cette partie secrète - la plupart des autres concurrents commencent avec une base similaire, ils gagnent donc peu à dépenser l'effort de masquer ces ingrédients.


Négociation de l'échange de clés.

Le fait que les deux parties puissent commencer cette négociation sur un support public non sécurisé est l'une des idées fondamentales et astucieuses derrière cette méthode d'initiation du chiffrement. Avant qu'un chiffrement puisse se produire, il doit y avoir un trafic non chiffré entre les pairs, sinon aucun ne saura comment déchiffrer les futurs messages. Cette étape initiale permet à un hôte de dire à un autre qu'il souhaite commencer une négociation d'une méthode de chiffrement en offrant quelques valeurs initiales à une formule mathématique bien connue (qui, dans cet exemple, est la base du piment). La vraie magie vient dans les étapes suivantes.

Semer la clé

Adam et Burt ont indépendamment et secrètement préparé une portion d'assaisonnement et des ingrédients supplémentaires scellés dans un papier de riz opaque sachet qui se dissoudra une fois immergé dans le piment. Dans cette cuisine, la pochette d'Adam contient des tomatilles, des chipotles, du poivre de Cayenne et de la cannelle; Burt's contient de l'assaisonnement cajun, de la bière, du cumin, de l'origan et de la sauce Worcester*. Adam jette son paquet dans sa marmite et remue, goûtant son piment jusqu'à ce qu'il soit sûr que le sachet s'est dissous et a libéré ses ingrédients. Burt fait de même avec son pot. À ce stade, Adam et Burt ont deux piments différents.

* (au cas où vous vous demanderiez pourquoi cela ne se dissout pas déjà dans la bière, disons que Burt a pré-congelé tous les liquides avant de les placer dans le sachet soluble.)


Génération de la clé partagée.

Dans le processus d'échange de clés proprement dit, ces « ingrédients » sont en fait de très grands nombres premiers. Dans le processus d'échange de clés, ces grands nombres premiers sont générés de manière aléatoire. Plus les nombres utilisés pour entrer dans cet échange de clés sont grands, plus il est difficile d'utiliser des techniques de force brute pour craquer. La taille de ces nombres est appelée un groupe de bits. Un groupe de nombres premiers de même longueur en bits binaires (par exemple, 1024 ou 2048 ou même des longueurs de bits plus grandes) appartiennent tous au même groupe. Plus le groupe de bits est grand, plus ce processus d'échange de clés devient robuste et plus il devient résistant à l'analyse et aux compromis potentiels.

Terminer l'échange

Maintenant, ils échangent les pots auxquels ils s'occupent, donc Burt est au pot qu'Adam a commencé, et vice versa. Ils prennent chacun un autre sachet identique à celui par lequel ils ont commencé et ajoutent ce second sachet au pot que l'autre avait commencé (donc Adam ajoute ses tomatilles, chipotles, piment de cayenne et cannelle au pot que Burt a commencé avec l'assaisonnement cajun, la bière , cumin, origan et sauce Worcester ; et Burt ajoute sa poche au pot qu'Adam a commencé). Une fois que chacun d'eux a remué ses pots respectifs et dissout les sachets pour libérer les ingrédients secrets, ils peuvent être sûrs que chaque pot contient désormais des piments identiques.


L'échange de clés Diffie-Hellman.

En termes mathématiques, l'algorithme régissant l'échange de clés partagées est commutatif - il peut être exécuté dans n'importe quel ordre et arriver au même résultat. Notez également que ni Adam ni Burt n'ont les moyens de reconstituer la clé seuls. Chacun d'eux ne connaît que la valeur aléatoire que chacun a contribué à l'algorithme. Et, puisque chacun génère également une copie de la clé à l'issue de la négociation, chacun dispose également d'une copie de la clé finale sans que celle-ci n'ait été transmise sur un réseau.

Cet échange ou négociation de clés partagées est appelé Diffie-Hellman Key Exchange, du nom des auteurs de l'article qui a détaillé cette méthode pour la première fois, Whitfield Diffie et Martin Hellman. Leur travail s'est appuyé sur des travaux antérieurs effectués par Ralph Merkle, il a donc été suggéré (par Hellman lui-même) que cette méthode soit appelée Diffie-Hellman-Merkle Key Exchange. Dans les configurations réelles, vous verrez souvent cette méthode appliquée sous forme de groupes DH, différents groupes correspondant à des clés de différentes longueurs en bits binaires.

Goûts complexes

Lors de la préparation, n'importe quel juge aurait pu voir et échantillonner dans les pots de départ ou les pots intermédiaires. Même si Cesar, déterminé à apprendre la recette secrète, se fait passer pour un juge, il ne serait pas en mesure de reconstituer de manière fiable la recette finale utilisée par Adam et Burt. (Cet exemple suppose que Cesar n'a pas la capacité de distinguer toutes les saveurs individuelles incluses dans le piment. Tenter d'identifier les ingrédients et leurs quantités via une analyse en laboratoire serait assez coûteux en temps et en énergie investis pour le rendre irréalisable.)


Vulnérabilités potentielles.

Si un attaquant voulait compromettre toute communication cryptée avec cette clé, une attaque d'écoute clandestine typique de type "man-in-the-middle" serait insuffisante. Un attaquant pourrait cependant s'insérer comme transit man-in-the-middle. Si un attaquant s'est configuré de sorte que toutes les communications entre les deux hôtes doivent passer par lui, il pourrait effectuer une négociation Diffie-Hellman avec chaque pair. Chaque côté de la connexion saura seulement si une clé réussie est négociée, mais pas avec qui. Dans cette position, l'homme du milieu serait en mesure de voir toute la conversation - en fait, il devrait déchiffrer le trafic entrant et le rechiffrer avant de l'envoyer de l'autre côté pour maintenir l'impression que chaque end a toujours sa connexion "sécurisée".

Il est également possible pour un attaquant de tenter d'organiser une attaque de l'homme du milieu pour rétrograder le groupe DH vers un groupe dont la longueur en bits est beaucoup plus petite et moins sécurisée. Cet attaquant pourrait alors collecter les données faiblement cryptées et effectuer une attaque par force brute hors ligne contre le cryptage pour le déchiffrer dans un délai raisonnable. Des attaques telles que FREAK et Logjam utilisent une sorte de méthodologie de rétrogradation pour affaiblir l'échange de clés Diffie-Hellman.

Plus d'informations dans la série sur le fonctionnement des VPN :

Partie 1 :Algorithmes de chiffrement symétrique
Partie 2 :Cryptographie à clé publique
En savoir plus sur nos services d'hébergement VPS et le prix de l'hébergement VPS.


Linux
  1. Qu'est-ce qu'un Makefile et comment ça marche ?

  2. Qu'est-ce que NGINX ? Comment ça marche?

  3. Comment fonctionnent la saisie au clavier et la sortie de texte ?

  4. comment mettre à jour homebrew avec Cron sur Mac os

  5. Comment fonctionnent les numéros SO (objet partagé) ?

Qu'est-ce que le DNS inversé et comment ça marche ?

Qu'est-ce que la VDI et comment ça marche ?

Qu'est-ce que Docker ? Comment ça marche?

Qu'est-ce que la commande source sous Linux et comment ça marche ?

Comment fonctionne un équilibreur de charge ? Qu'est-ce que l'équilibrage de charge ?

Qu'est-ce que le chiffrement à clé symétrique (comment fonctionnent les VPN, partie 1)