VPN WireGuard gouf an den Net-nächste Branche ugeholl an ass geplangt fir Inklusioun am Linux 5.6 Kernel

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, ugeholl op d'Netz-nächst Branche Flecken с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке net-next, лягут в основу выпуска ядра Linux 5.6.

Попытки продвижения кода WireGuard в основной состав ядра предпринимались последние несколько лет, но оставались без результата из-за привязки к собственным реализациям криптографических функций, которые применялись для повышения производительности. Вначале данные функции были proposéiert для ядра в качестве дополнительного низкоуровневого API Zinc, который со временем смог бы заменить штатный Crypto API.

После переговоров на конференции Kernel Recipes, создатели WireGuard в сентябре приняли компромиссное решение перевести свои патчи на использование имеющегося в ядре Crypto API, к которому у разработчиков WireGuard имеются претензии в области производительности и общей безопасности. API Zinc было решено продолжать развивать, но как отдельный проект.

В ноября разработчики ядра Lass на ответный компромисс и согласились перенести в основное ядро часть кода из Zinc. По сути некоторые компоненты Zinc будут перенесены в ядро, но не как отдельный API, а как часть подсистемы Crypto API. Например, в Crypto API уже abegraff подготовленные в WireGuard быстрые реализации алгоритмов ChaCha20 и Poly1305.

В связи с предстоящей поставкой WireGuard в основном составе ядра, основатель проекта ugekënnegt о реструктуризации репозитория. Для упрощения разработки на смену монолитному репозиторию «WireGuard.git», который был рассчитан на обособленное существование, придут три отдельных репозитория, лучше подходящие для организации работы с кодом в основном ядре:

  • wireguard-linux.git — полное дерево ядра с изменениями от проекта Wireguard, патчи из которого будут рецензироваться для включения в ядро и регулярно переноситься в ветки net/net-next.
  • wireguard-tools.git — репозиторий для запускаемых в пространстве пользователя утилит и скриптов, таких как wg и wg-quick. Репозиторий можно использовать для создания пакетов для дистрибутивами.
  • wireguard-linux-compat.git — репозиторий с вариантом модуля, поставляемым отдельной от ядра и включающим слой compat.h для обеспечения совместимости со старыми ядрами. Основная разработка будет вестись в репозитории wireguard-linux.git, но пока есть возможность и потребность у пользователей обособленный вариант патчей также будет поддерживаться в рабочем виде.

Loosst eis Iech drun erënneren datt VPN WireGuard op Basis vu modernen Verschlësselungsmethoden implementéiert ass, ganz héich Leeschtung ubitt, einfach ze benotzen ass, fräi vu Komplikatiounen an huet sech an enger Rei vu groussen Deployementer bewisen, déi grouss Volumen vum Traffic veraarbechten. De Projet entwéckelt zënter 2015, gouf iwwerpréift an formell Verifizéierung Verschlësselungsmethoden benotzt. WireGuard Support ass scho integréiert an NetworkManager a Systemd, a Kernel Patches sinn an de Basisverdeelungen abegraff Debian onbestänneg, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Ënnergraf и Alt.

WireGuard benotzt d'Konzept vun Verschlësselungsschlëssel Routing, wat involvéiert e private Schlëssel un all Netzwierkschnitt ze befestigen an et ze benotzen fir d'ëffentlech Schlësselen ze binden. Ëffentlech Schlësselen ginn ausgetauscht fir eng Verbindung op eng ähnlech Manéier wéi SSH opzebauen. Ze négociéieren Schlësselen a Verbindung ouni eng separat Daemon am Benotzer Raum Lafen, der Noise_IK Mechanismus aus Kaméidi Protokoll Kader, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Fir Verschlësselung benotzt gëtt stream Chiffer ChaCha20 a Message Authentifikatioun Algorithmus (MAC) Poly1305, entworf vum Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) and Peter Schwabe. ChaCha20 a Poly1305 sinn als méi séier a méi sécher Analoga vun AES-256-CTR an HMAC positionéiert, d'Software-Implementatioun vun där et erlaabt eng fix Ausféierungszäit z'erreechen ouni d'Benotzung vu speziellen Hardware Support. Fir e gemeinsame geheime Schlëssel ze generéieren, gëtt den ellipteschen Curve Diffie-Hellman Protokoll an der Implementatioun benotzt Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

um testen производительности WireGuard продемонстрировал в 3.9 раза более высокую пропускную способность и в 3.8 раз более высокую отзывчивость, по сравнению с OpenVPN (256-bit AES c HMAC-SHA2-256). По сравнению с IPsec (256-bit ChaCha20+Poly1305 и AES-256-GCM-128) в WireGuard наблюдается небольшое опережение по производительности (13-18%) и снижение задержек (21-23%). Тесты выполнены при использовании развиваемых проектом быстрых реализаций алгоритмов шифрования — перевод на штатный Crypto API ядра возможно приведёт к ухудшению показателей.

VPN WireGuard gouf an den Net-nächste Branche ugeholl an ass geplangt fir Inklusioun am Linux 5.6 Kernel

Source: opennet.ru

Setzt e Commentaire