VPN WireGuard е приет в net-next клона и е предвиден за включване в ядрото на Linux 5.6

Дейвид Милър (Дейвид С. Милър), отговорен за мрежовата подсистема на ядрото на Linux, приел към нетния-следващ клон лепенки с внедряването на VPN интерфейса от проекта WireGuard. В началото на следващата година промените, натрупани в клона net-next, ще формират основата за пускането на Linux ядрото 5.6.

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

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

През ноември разработчиците на ядрото отиде в отговор на компромис и се съгласи да прехвърли част от кода от Zinc към основното ядро. По същество някои компоненти на Zinc ще бъдат преместени в ядрото, но не като отделен API, а като част от подсистемата Crypto API. Например Crypto API вече включени бързи имплементации на алгоритмите ChaCha20 и Poly1305, подготвени в WireGuard.

Във връзка с предстоящата доставка на 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 сървъра (роуминг) без прекъсване на връзката и автоматично преконфигуриране на клиента.

За криптиране употребяван поточен шифър ChaCha20 и алгоритъм за удостоверяване на съобщения (MAC) Poly1305, проектирана от Даниел Бърнстейн (Даниел Дж. Бърнщайн), Таня Ланге
(Tanja Lange) и Петер Швабе (Peter Schwabe). ChaCha20 и Poly1305 се позиционират като по-бързи и по-сигурни аналози на AES-256-CTR и HMAC, чиято софтуерна реализация позволява постигане на фиксирано време за изпълнение без използване на специална хардуерна поддръжка. За генериране на споделен таен ключ в изпълнението се използва протоколът Diffie-Hellman върху елиптични криви Curve25519, също предложен от Даниел Бърнстейн. Алгоритъмът, използван за хеширане, е BLAKE2s (RFC7693).

при тестване Производителност WireGuard демонстрира 3.9 пъти по-висока производителност и 3.8 пъти по-висока реакция в сравнение с OpenVPN (256-битов AES с HMAC-SHA2-256). В сравнение с IPsec (256-bit ChaCha20+Poly1305 и AES-256-GCM-128), WireGuard показва леко подобрение на производителността (13-18%) и по-ниска латентност (21-23%). Тестовете бяха извършени с помощта на бързи реализации на алгоритми за криптиране, разработени от проекта - прехвърлянето към стандартния Crypto API на ядрото може да доведе до по-лоша производителност.

VPN WireGuard е приет в net-next клона и е предвиден за включване в ядрото на Linux 5.6

Източник: opennet.ru

Добавяне на нов коментар