VPN WireGuard ti gba sinu ẹka nẹtiwọọki ti o tẹle ati pe o ti ṣeto fun ifisi ninu ekuro Linux 5.6

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, gba si net-tókàn ẹka awọn abulẹ с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке net-next, лягут в основу выпуска ядра Linux 5.6.

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

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

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

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

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

Jẹ ki a leti pe VPN WireGuard ti wa ni imuse lori ipilẹ ti awọn ọna fifi ẹnọ kọ nkan ode oni, pese iṣẹ ṣiṣe giga pupọ, rọrun lati lo, laisi awọn ilolu ati ti fihan ararẹ ni nọmba awọn imuṣiṣẹ nla ti o ṣe ilana awọn iwọn nla ti ijabọ. Ise agbese ti a ti sese niwon 2015, ti a ti audited ati lodo ijerisi ìsekóòdù ọna ti a lo. Atilẹyin WireGuard ti ṣepọ tẹlẹ sinu NetworkManager ati eto, ati awọn abulẹ kernel wa ninu awọn pinpin ipilẹ. Debian Riru, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Abala и ALT.

WireGuard nlo imọran ti ipa ọna bọtini fifi ẹnọ kọ nkan, eyiti o kan sisopọ bọtini ikọkọ si wiwo nẹtiwọọki kọọkan ati lilo rẹ lati di awọn bọtini ita gbangba. Awọn bọtini ilu jẹ paarọ lati fi idi asopọ kan mulẹ ni ọna kanna si SSH. Lati ṣe idunadura awọn bọtini ati sopọ laisi ṣiṣiṣẹ daemon lọtọ ni aaye olumulo, ẹrọ Noise_IK lati Noise Protocol Framework, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

Fun ìsekóòdù o ti lo olomi ṣiṣan ChaCha20 ati algorithm ijẹrisi ifiranṣẹ (MAC) Poly1305, apẹrẹ nipasẹ Daniel Bernstein (Daniel J. Bernstein), Tanya Lange
(Tanja Lange) ati Peter Schwabe. ChaCha20 ati Poly1305 wa ni ipo bi yiyara ati ailewu awọn analogues ti AES-256-CTR ati HMAC, imuse sọfitiwia eyiti ngbanilaaye iyọrisi akoko ipaniyan ti o wa titi laisi lilo atilẹyin ohun elo pataki. Lati ṣe ipilẹṣẹ bọtini ikọkọ ti o pin, ọna elliptic ti tẹ Diffie-Hellman ni a lo ninu imuse Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

ni idanwo производительности 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 ti gba sinu ẹka nẹtiwọọki ti o tẹle ati pe o ti ṣeto fun ifisi ninu ekuro Linux 5.6

orisun: opennet.ru

Fi ọrọìwòye kun