Un groupe de chercheurs, développeurs et cryptographes allemands a publié la première version du projet Rosenpass, développant un VPN et un mécanisme d'échange de clés résistants aux attaques des ordinateurs quantiques. Le transport utilise le VPN WireGuard avec des algorithmes de chiffrement standards et des clés, et Rosenpass l'enrichit avec des moyens d'échange de clés protégés contre les violations par des ordinateurs quantiques (c'est-à-dire que Rosenpass protège en plus l'échange de clés sans modifier les algorithmes et méthodes de chiffrement de WireGuard). Rosenpass peut également être utilisé séparément de WireGuard sous la forme d'une boîte à outils universelle pour échanger des clés, adaptée à la protection d'autres protocoles contre les attaques des ordinateurs quantiques.
Le code de la boîte à outils est écrit en Rust et est distribué sous les licences MIT et Apache 2.0. Les algorithmes et primitives cryptographiques sont empruntés aux bibliothèques liboqs et libsodium, écrites en C. La base de code publiée est positionnée comme une référence — sur la base des spécifications fournies, des variantes alternatives de la boîte à outils peuvent être développées en utilisant d'autres langages de programmation. Actuellement, des travaux sont en cours pour la vérification formelle du protocole, des crypto-algorithmes et de l'implémentation afin de fournir une preuve mathématique de fiabilité. À l'heure actuelle, une analyse symbolique du protocole et de sa mise en œuvre de base en Rust a déjà été réalisée à l'aide de ProVerif.
Le protocole Rosenpass est basé sur le mécanisme d'échange de clés authentifié post-quantique PQWG (Post-quantum WireGuard), construit en utilisant le système cryptographique McEliece, résistant aux attaques par force brute sur un ordinateur quantique. La clé générée dans Rosenpass est utilisée sous la forme d'une clé symétrique partagée (PSK, pre-shared key) de WireGuard, réalisant une couche supplémentaire de protection hybride VPN-de connexion.
Rosenpass propose un processus en arrière-plan autonome, utilisé pour générer des clés WireGuard prédéfinies et sécuriser l'échange de clés lors de l'établissement d'une connexion (handshake) en utilisant des méthodes de cryptographie post-quantique. Comme dans WireGuard, les clés symétriques dans Rosenpass sont mises à jour toutes les deux minutes. Des clés partagées sont utilisées pour sécuriser la connexion (une paire de clé publique et clé privée est générée de chaque côté, après quoi les participants échangent leurs clés publiques).
Source : opennet.ru
