VPN WireGuard di şaxê net-paşê de hate pejirandin û ji bo tevlêbûna di kernel Linux 5.6 de tête diyar kirin

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

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

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

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

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

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

Ka em ji we re bi bîr bînin ku VPN WireGuard li ser bingeha rêbazên şîfrekirinê yên nûjen tête bicîh kirin, performansa pir bilind peyda dike, karanîna wê hêsan e, bê tevlihevî ye û xwe di hejmarek veguheztinên mezin de îspat kiriye ku cildên mezin ên seyrûseferê pêvajoyê dikin. Proje ji sala 2015-an vir ve pêşve diçe, hate kontrol kirin û verastkirina fermî rêbazên şîfrekirinê têne bikaranîn. Piştgiriya WireGuard jixwe di NetworkManager û systemd de yekgirtî ye, û pêlên kernel di nav dabeşên bingehîn de hene. Debian Nearam, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Jêrxanê и ALT.

WireGuard têgeha rêvekirina mifteya şîfrekirinê bikar tîne, ku tê de kilîtek taybet bi her navbeynkariya torê ve girêdide û wê bikar tîne da ku bişkojkên giştî ve girêbide. Bişkojkên gelemperî têne guheztin da ku pêwendiyek bi rengek mîna SSH-ê saz bikin. Ji bo danûstandina bişkokan û girêdana bêyî xebitandina daemonek cihêreng di cîhê bikarhêner de, mekanîzmaya Noise_IK ji Çarçoveya Protokola Deng, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Ji bo şîfrekirinê bikar anîn ji hêla şîfreya stream ChaCha20 û algorîtmaya rastkirina peyamê (MAC) Poly1305, ji hêla Daniel Bernstein ve hatî çêkirin (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) û Peter Schwabe. ChaCha20 û Poly1305 wekî analogên zûtir û ewledar ên AES-256-CTR û HMAC têne cîh kirin, pêkanîna nermalavê ya ku dihêle hûn bêyî karanîna piştgirîya hardware ya taybetî bigihîjin demek darvekirinê ya sabît. Ji bo afirandina mifteyek veşartî ya hevpar, di pêkanînê de protokola elîptîk Diffie-Hellman tê bikar anîn. Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

de hate ceribandin производительности 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 di şaxê net-paşê de hate pejirandin û ji bo tevlêbûna di kernel Linux 5.6 de tête diyar kirin

Source: opennet.ru

Add a comment