VPN WireGuard a été accepté dans la branche net-next et devrait être inclus dans le noyau Linux 5.6

David Miller (David S. Miller), responsable du sous-système réseau du noyau Linux, accepté le vers la branche suivante patchs avec la mise en place de l'interface VPN du projet WireGuard. Au début de l'année prochaine, les changements accumulés dans la branche net-next constitueront la base de la sortie du noyau Linux 5.6.

Des tentatives visant à insérer le code WireGuard dans le noyau principal ont été faites au cours des dernières années, mais elles sont restées infructueuses en raison de leur lien avec des implémentations propriétaires de fonctions cryptographiques utilisées pour améliorer les performances. Initialement, ces fonctions étaient proposé pour le noyau en tant qu'API Zinc de bas niveau supplémentaire, qui pourrait éventuellement remplacer l'API Crypto standard.

Suite aux discussions lors de la conférence Kernel Recipes, les créateurs de WireGuard en septembre pris une décision de compromis transférez vos correctifs pour utiliser l'API Crypto disponible dans le noyau, à laquelle les développeurs de WireGuard ont des plaintes dans le domaine des performances et de la sécurité générale. Il a été décidé de poursuivre le développement de l'API Zinc, mais dans le cadre d'un projet distinct.

En novembre, les développeurs du noyau allons en réponse à un compromis et a accepté de transférer une partie du code de Zinc vers le noyau principal. Essentiellement, certains composants Zinc seront déplacés vers le noyau, mais pas en tant qu'API distincte, mais dans le cadre du sous-système API Crypto. Par exemple, l'API Crypto déjà inclus implémentations rapides des algorithmes ChaCha20 et Poly1305 préparés dans WireGuard.

Dans le cadre de la livraison prochaine de WireGuard dans le noyau principal, le fondateur du projet объявил sur la restructuration du référentiel. Pour simplifier le développement, le référentiel monolithique « WireGuard.git », conçu pour exister de manière isolée, sera remplacé par trois référentiels distincts, mieux adaptés à l'organisation du travail avec le code dans le noyau principal :

  • wireguard-linux.git - une arborescence complète du noyau avec les modifications du projet Wireguard, dont les correctifs seront examinés pour être inclus dans le noyau et régulièrement transférés vers les branches net/net-next.
  • wireguard-tools.git - un référentiel pour les utilitaires et les scripts exécutés dans l'espace utilisateur, tels que wg et wg-quick. Le référentiel peut être utilisé pour créer des packages pour les distributions.
  • wireguard-linux-compat.git - un dépôt avec une variante du module, fourni séparément du noyau et incluant la couche compat.h pour assurer la compatibilité avec les anciens noyaux. Le développement principal sera effectué dans le référentiel wireguard-linux.git, mais tant qu'il y aura une opportunité et un besoin parmi les utilisateurs, une version distincte des correctifs sera également prise en charge sous forme de travail.

Rappelons que VPN WireGuard est mis en œuvre sur la base de méthodes de cryptage modernes, offre des performances très élevées, est facile à utiliser, sans complications et a fait ses preuves dans un certain nombre de déploiements à grande échelle traitant de gros volumes de trafic. Le projet se développe depuis 2015, a été audité et vérification formelle méthodes de cryptage utilisées. La prise en charge de WireGuard est déjà intégrée dans NetworkManager et systemd, et les correctifs du noyau sont inclus dans les distributions de base Debian instable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

WireGuard utilise le concept de routage de clé de chiffrement, qui consiste à attacher une clé privée à chaque interface réseau et à l'utiliser pour lier les clés publiques. Les clés publiques sont échangées pour établir une connexion de la même manière que SSH. Pour négocier les clés et se connecter sans exécuter de démon séparé dans l'espace utilisateur, le mécanisme Noise_IK de Cadre du protocole de bruitsimilaire à la gestion des clés_autorisées dans SSH. La transmission des données s'effectue par encapsulation dans des paquets UDP. Il prend en charge la modification de l'adresse IP du serveur VPN (roaming) sans déconnecter la connexion et reconfigurer automatiquement le client.

Pour le cryptage d'occasion chiffrement de flux ChaCha20 et algorithme d'authentification des messages (MAC) Poly1305, conçu par Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) et Peter Schwabe. ChaCha20 et Poly1305 se positionnent comme des analogues plus rapides et plus sûrs d'AES-256-CTR et de HMAC, dont la mise en œuvre logicielle permet d'atteindre un temps d'exécution fixe sans utiliser de support matériel spécial. Pour générer une clé secrète partagée, le protocole Diffie-Hellman à courbe elliptique est utilisé dans l'implémentation Curve25519, également proposé par Daniel Bernstein. L'algorithme utilisé pour le hachage est BLAKE2 (RFC7693).

à essai Performances WireGuard a démontré un débit 3.9 fois supérieur et une réactivité 3.8 fois supérieure à ceux d'OpenVPN (AES 256 bits avec HMAC-SHA2-256). Par rapport à IPsec (ChaCha256+Poly20 1305 bits et AES-256-GCM-128), WireGuard présente une légère amélioration des performances (13-18 %) et une latence plus faible (21-23 %). Les tests ont été effectués à l'aide d'implémentations rapides d'algorithmes de chiffrement développés par le projet - le transfert vers l'API Crypto standard du noyau peut entraîner de moins bonnes performances.

VPN WireGuard a été accepté dans la branche net-next et devrait être inclus dans le noyau Linux 5.6

Source: opennet.ru

Ajouter un commentaire