VPN WireGuard keyingi tarmoq boʻlimiga qabul qilindi va Linux 5.6 yadrosiga kiritilishi rejalashtirilgan.

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, qabul qildi net-keyingi filialga yamoqlar с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке net-next, лягут в основу выпуска ядра Linux 5.6.

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

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

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

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

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

Eslatib o‘tamiz, VPN WireGuard zamonaviy shifrlash usullari asosida amalga oshirilgan, juda yuqori unumdorlikni ta’minlaydi, ishlatish uchun qulay, asoratlarsiz va katta hajmdagi trafikni qayta ishlovchi bir qator yirik joylashtirishlarda o‘zini isbotlagan. Loyiha 2015 yildan beri ishlab chiqilmoqda, auditdan o'tgan va rasmiy tekshirish shifrlash usullaridan foydalaniladi. WireGuard-ni qo'llab-quvvatlash allaqachon NetworkManager va systemd-ga birlashtirilgan va yadro yamoqlari asosiy tarqatishlarga kiritilgan. Debian beqaror, Mageia, Alp tog'lari, Arch, Gentoo, OpenWrt, NixOS, Subgraf и ALT.

WireGuard shifrlash kalitlarini marshrutlash kontseptsiyasidan foydalanadi, bu har bir tarmoq interfeysiga shaxsiy kalitni biriktirish va undan ochiq kalitlarni ulash uchun foydalanishni o'z ichiga oladi. Ochiq kalitlar SSH ga o'xshash tarzda ulanishni o'rnatish uchun almashtiriladi. Kalitlarni muzokara qilish va foydalanuvchi maydonida alohida daemonni ishga tushirmasdan ulanish uchun Noise_IK mexanizmi dan Shovqin protokoli ramkasi, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Shifrlash uchun ishlatiladi oqim shifrlash ChaCha20 va xabarni autentifikatsiya qilish algoritmi (MAC) Poly1305, Daniel Bernshteyn tomonidan ishlab chiqilgan (Daniel J. Bernshteyn), Tanya Lange
(Tanja Lange) va Piter Shvabe. ChaCha20 va Poly1305 AES-256-CTR va HMAC ning tezroq va xavfsizroq analoglari sifatida joylashtirilgan bo'lib, ularning dasturiy ta'minotini amalga oshirish maxsus apparat ta'minotidan foydalanmasdan belgilangan bajarish vaqtiga erishish imkonini beradi. Umumiy maxfiy kalitni yaratish uchun amalga oshirishda elliptik egri Diffie-Hellman protokoli qo'llaniladi. Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2 (RFC7693).

da sinov производительности 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 keyingi tarmoq boʻlimiga qabul qilindi va Linux 5.6 yadrosiga kiritilishi rejalashtirilgan.

Manba: opennet.ru

a Izoh qo'shish