// CLUBIC — CYBERSECURITY
Comment votre appareil et le serveur VPN peuvent-ils utiliser les mêmes clés de chiffrement sans jamais se les envoyer ?
Pour protéger vos échanges, votre appareil et le serveur VPN doivent disposer d'un secret commun. Mais comment peuvent-ils l'établir sans le transmettre sur Internet, où quelqu'un pourrait l'intercepter ? La réponse repose sur une astuce mathématique particulièrement ingénieuse.
Lorsque vous activez votre VPN, votre ordinateur ou votre smartphone commence par communiquer avec un serveur distant. En quelques instants, une connexion chiffrée s'établit entre les deux machines, qui peuvent alors échanger des données à l'abri des regards indiscrets. Seulement voilà, pour chiffrer les informations à l'envoi et les déchiffrer à l'arrivée, elles ont besoin de clés cryptographiques. Tant que la connexion n'est pas sécurisée, impossible de simplement se les envoyer en clair. Car si une personne surveillait le réseau au moment de cet échange, elle pourrait récupérer les clés et les utiliser pour déchiffrer les communications suivantes. Les protocoles VPN modernes contournent donc le problème d'une manière assez étonnante : plutôt que de transmettre directement un secret commun, ils permettent aux deux machines de le calculer chacune de leur côté. Une idée qui ne date pas d'hier.
En 1976, les cryptographes Whitfield Diffie et Martin Hellman publient une méthode permettant à deux correspondants d'établir un secret commun sur un canal de communication non sécurisé. Leur idée repose sur une particularité des mathématiques : à partir d'un nombre secret, il est facile de calculer une valeur que l'on peut partager publiquement. En revanche, retrouver le nombre secret à partir de cette seule valeur est si difficile qu'un ordinateur classique ne pourrait pas y parvenir dans un délai raisonnable.
Vous n'êtes pas mathématicien et vous commencez à décrocher ? C'est normal. On va tenter d'éclairer cette première explication à l'aide du fameux exemple des couleurs, grand classique pour comprendre Diffie-Hellman. Sortez les pots de peinture.
Deux personnes cherchent à obtenir exactement la même couleur, sans se révéler leurs mélanges secrets. Elles choisissent d'abord une couleur de départ, connue de tous. Puis chacune y ajoute, à l'abri des regards, une couleur de son choix et transmet son mélange à l'autre.
À réception, chacune ajoute sa propre couleur secrète au mélange reçu. Les deux personnes obtiennent alors exactement la même teinte, puisqu'elles ont utilisé les mêmes couleurs, mais sans jamais s'être communiqué leurs ingrédients secrets.
Et si quelqu'un avait observé toute l'opération ? Il aurait vu la couleur de départ et les deux mélanges échangés, sans pouvoir facilement retrouver les couleurs secrètes utilisées.
Alors, évidemment, les véritables échanges Diffie-Hellman ne reposent pas sur un nuancier Pantone, mais sur des nombres et des calculs mathématiques. Chaque machine dispose d'une valeur privée, à partir de laquelle elle calcule une information publique qu'elle transmet à l'autre. Elle combine ensuite l'information reçue avec sa propre valeur privée, et les deux machines aboutissent au même secret partagé.
Et voilà le travail ! Les informations publiques circulent sur le réseau, mais jamais le secret qui servira à protéger les communications. Même en enregistrant l'intégralité des échanges, une personne extérieure ne pourrait pas en déduire ce secret. Les deux machines peuvent alors établir une communication chiffrée, sans avoir eu besoin de s'envoyer leur clé.
Ce principe imaginé par Diffie et Hellman fête cette année ses 50 ans, et il n'a pas pris une ride. On le retrouve aujourd'hui dans plusieurs protocoles VPN, parmi lesquels OpenVPN, IKEv2/IPsec et le désormais incontournable WireGuard. Mais tous ne l'utilisent pas exactement de la même façon, et chacun lui associe un système d'authentification pour vérifier l'identité des correspondants et empêcher qu'un intrus puisse se faire passer pour l'un d'eux.