VPN WireGuard кийинки тармакка кабыл алынган жана Linux 5.6 ядросуна киргизүү үчүн пландаштырылган

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

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

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

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

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

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

Эскерте кетсек, VPN WireGuard заманбап шифрлөө ыкмаларынын негизинде ишке ашырылган, өтө жогорку өндүрүмдүүлүктү камсыз кылат, колдонууга оңой, татаалдыктарсыз жана чоң көлөмдөгү трафикти иштеткен бир катар ири жайылтууларда өзүн далилдеген. Долбоор 2015-жылдан бери иштеп келе жатат, аудиттен өткөн жана расмий текшерүү шифрлөө ыкмалары колдонулат. WireGuard колдоосу мурунтан NetworkManager жана systemd менен интеграцияланган, ал эми ядро ​​патчтары базалык бөлүштүрүүгө киргизилген Debian туруксуз, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Субграф и ALT.

WireGuard ар бир тармак интерфейсине купуя ачкычты тиркөөнү жана аны ачык ачкычтарды байланыштыруу үчүн колдонууну камтыган шифрлөө ачкычын багыттоо концепциясын колдонот. Коомдук ачкычтар SSHге окшош жол менен байланыш түзүү үчүн алмашылган. Ачкычтарды сүйлөшүү жана колдонуучу мейкиндигинде өзүнчө демонду иштетпестен туташуу үчүн Noise_IK механизминен Noise Protocol Framework, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Шифрлөө үчүн колдонулган агым шифри ЧаЧа20 жана билдирүүнүн аныктыгын текшерүү алгоритми (MAC) Poly1305, Дэниел Бернштейн тарабынан иштелип чыккан (Даниел Дж. Бернштейн), Таня Ланге
(Таня Ланге) жана Питер Швабе. ChaCha20 жана Poly1305 AES-256-CTR жана HMAC тезирээк жана коопсуз аналогдору катары жайгаштырылган, программалык камсыздоону ишке ашыруу атайын аппараттык колдоону колдонбостон, белгиленген аткаруу убактысына жетүүгө мүмкүндүк берет. Жалпы жашыруун ачкычты түзүү үчүн, ишке ашырууда эллиптикалык ийри Диффи-Хеллман протоколу колдонулат. Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

боюнча тестирлөө производительности 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 кийинки тармакка кабыл алынган жана Linux 5.6 ядросуна киргизүү үчүн пландаштырылган

Source: opennet.ru

Комментарий кошуу