„VPN WireGuard“ buvo priimtas į „net-next“ šaką ir yra numatytas įtraukti į „Linux 5.6“ branduolį

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, priimtas į tinklą-kitą filialą pleistrai с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке net-next, лягут в основу выпуска ядра Linux 5.6.

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

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

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

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

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

Primename, kad VPN WireGuard yra įdiegtas remiantis šiuolaikiniais šifravimo metodais, užtikrina labai aukštą našumą, yra paprastas naudoti, be komplikacijų ir pasitvirtino daugelyje didelių diegimų, kurie apdoroja didelius srautus. Projektas vystomas nuo 2015 m., buvo audituotas ir formalus patikrinimas naudojami šifravimo metodai. „WireGuard“ palaikymas jau integruotas į „NetworkManager“ ir „systemd“, o branduolio pataisos yra įtrauktos į bazinius paskirstymus „Debian“ nestabilus, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Potemė и ALT.

„WireGuard“ naudoja šifravimo rakto maršruto parinkimo koncepciją, kuri apima privataus rakto prijungimą prie kiekvienos tinklo sąsajos ir jo naudojimą viešiesiems raktams susieti. Viešaisiais raktais keičiamasi, kad būtų užmegztas ryšys panašiai kaip SSH. Norėdami derėtis dėl raktų ir prisijungti nepaleidžiant atskiro demono vartotojo erdvėje, Noise_IK mechanizmas iš Triukšmo protokolo sistema, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Dėl šifravimo naudotas srauto šifras „ChaCha20“ ir pranešimų autentifikavimo algoritmas (MAC) "Poly1305", sukūrė Daniel Bernstein (Danielis J. Bernsteinas), Tanya Lange
(Tanja Lange) ir Peter Schwabe. ChaCha20 ir Poly1305 yra išdėstyti kaip greitesni ir saugesni AES-256-CTR ir HMAC analogai, kurių programinė įranga leidžia pasiekti fiksuotą vykdymo laiką nenaudojant specialios aparatinės įrangos. Norint sugeneruoti bendrą slaptąjį raktą, įgyvendinant naudojamas elipsinės kreivės Diffie-Hellman protokolas Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

prie testavimas производительности 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“ buvo priimtas į „net-next“ šaką ir yra numatytas įtraukti į „Linux 5.6“ branduolį

Šaltinis: opennet.ru

Добавить комментарий