Дэвид Миллер (), отвечающий за сетевую подсистему ядра Linux, në përbërje të degës net-next с реализацией 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, но пока есть возможность и потребность у пользователей обособленный вариант патчей также будет поддерживаться в рабочем виде.
Kujtojmë se VPN WireGuard është implementuar në bazë të metodave të modernes të enkriptimit, siguron një performancë shumë të lartë, është e lehtë për t'u përdorur, e liruar nga kompleksitetet dhe ka treguar rezultate të mira në një numër zbatimesh të mëdha që përpunojnë volume të mëdha trafiku. Projekti është duke u zhvilluar që nga viti 2015, ka kaluar auditimin dhe применяемых методов шифрования. Поддержка WireGuard уже интегрирована в NetworkManager и systemd, а патчи для ядра входят в базовый состав дистрибутивов , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, dhe .
В WireGuard применяется концепция маршрутизации по ключам шифрования, которая подразумевает привязку к каждому сетевому интерфейсу закрытого ключа и применение для связывания открытых ключей. Обмен открытыми ключами для установки соединения производится по аналогии с SSH. Для согласования ключей и соединения без запуска отдельного демона в пространстве пользователя применяется механизм Noise_IK из , похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.
Për enkriptim shifra e rrymës dhe algoritmi i autentikimit të mesazheve (MAC) , zhvilluar nga Daniel Bernstein (), Tanja Lange
(Tanja Lange) dhe Peter Schwabe (Peter Schwabe). ChaCha20 dhe Poly1305 pozicionohen si alternativa më të shpejta dhe më të sigurta ndaj AES-256-CTR dhe HMAC, realizimi i softuerit të cilëve lejon arritjen e një kohe të fiksuar të ekzekutimit pa angazhuar mbështetje të posaçme harduerike. Për gjenerimin e çelësit të përbashkët sekret përdoret protokolli i Diiffi-Hellman në kurba eliptike në realizimin , также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм .
Në производительности 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 ядра возможно приведёт к ухудшению показателей.
Burimi: opennet.ru
