Дэвид Миллер (), отвечающий за сетевую подсистему ядра Linux, net-next haru alla с реализацией VPN-интерфейса от проекта . В начале следующего года изменения, накапливаемые в ветке 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, патчи из которого будут рецензироваться для включения в ядро и регулярно переноситься в ветки net/net-next.
- — репозиторий для запускаемых в пространстве пользователя утилит и скриптов, таких как wg и wg-quick. Репозиторий можно использовать для создания пакетов для дистрибутивами.
- — репозиторий с вариантом модуля, поставляемым отдельной от ядра и включающим слой compat.h для обеспечения совместимости со старыми ядрами. Основная разработка будет вестись в репозитории wireguard-linux.git, но пока есть возможность и потребность у пользователей обособленный вариант патчей также будет поддерживаться в рабочем виде.
Tuletame meelde, et WireGuard VPN põhineb kaasaegsetel krüpteerimismeetoditel, tagab väga kõrge jõudluse, on kasutusmugav ja hästi tõestatud mitmes suuremas rakenduses, mis töötlevad suuri andmemahtusid. Projekt on arenenud alates 2015. aastast, läbinud auditi ja rakendatavad krüpteerimismeetodid. WireGuardi tugi on juba integreeritud NetworkManagerisse ja systemd-sse, ning kerneli plaastrid kuuluvad põhijagamisstruktuuri. , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, ja .
WireGuardis on kasutusel krüpteerimisse võtme kaudu marsruutimise kontseptsioon, mis tähendab, et iga võrgu liidese külge on seotud privaatvõti ja avalike võtmete sidumine. Avalike võtmete vahetamine ühenduse loomiseks toimub SSH-i sarnaselt. Võtmete kokkuleppimiseks ja ühenduse loomiseks ilma eraldi deemonit käivitamata kasutab see mehhanismi Noise_IK, , похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.
Krüpteerimiseks voogkrüptimist ja sõnumite autentimise algoritmi (MAC) , mille töötas välja Daniel Bernstein (), Tanja Lange
(Tanja Lange) ja Peter Schwabe (Peter Schwabe). ChaCha20 ja Poly1305 positsioneeritakse kiiremate ja turvalisemate alternatiividena AES-256-CTR ja HMAC-ile, mille tarkvaraline rakendus võimaldab saavutada fikseeritud täitmise aja ilma spetsiaalsete riistvara tugiteenusteta. Ühise salajase võtme genereerimiseks kasutatakse elliptiliste kõverate põhjalikku Diffie-Hellmani protokolli. , также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм .
Koormuse analüüsi korral производительности 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 ядра возможно приведёт к ухудшению показателей.
Allikas: opennet.ru
