VPN WireGuard მიღებულია net-next ფილიალში და დაგეგმილია ჩართვის Linux 5.6 ბირთვში

Дэвид Миллер (David S. Miller), отвечающий за сетевую подсистему ядра Linux, მიღებულია ნეტ-შემდეგ ფილიალამდე პატჩები с реализацией VPN-интерфейса от проекта WireGuard. В начале следующего года изменения, накапливаемые в ветке 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-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 მექანიზმი ხმაურის პროტოკოლის ჩარჩო, похожий на поддержание authorized_keys в SSH. Передача данных осуществляется через инкапсуляцию в пакеты UDP. Поддерживается смена IP-адреса VPN-сервера (роуминг) без разрыва соединения и автоматической перенастройкой клиента.

დაშიფვრისთვის მეორადი ნაკადის შიფრი ChaCha20 და შეტყობინების ავთენტიფიკაციის ალგორითმი (MAC) პოლიკლინიკი, შექმნილია დანიელ ბერნშტეინის მიერ (დანიელ ჯ.ბერნშტეინი), ტანია ლანგე
(ტანჯა ლანგე) და პიტერ შვაბე. ChaCha20 და Poly1305 განლაგებულია, როგორც AES-256-CTR და HMAC უფრო სწრაფი და უსაფრთხო ანალოგები, რომელთა პროგრამული უზრუნველყოფის დანერგვა საშუალებას გაძლევთ მიაღწიოთ შესრულების ფიქსირებულ დროს სპეციალური ტექნიკის მხარდაჭერის გამოყენების გარეშე. საერთო საიდუმლო გასაღების გენერირებისთვის, განხორციელებისას გამოიყენება ელიფსური მრუდის Diffie-Hellman პროტოკოლი Curve25519, также предложенной Дэниелом Бернштейном. Для хэширования используются алгоритм BLAKE2s (RFC7693).

at ტესტირება производительности 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 მიღებულია net-next ფილიალში და დაგეგმილია ჩართვის Linux 5.6 ბირთვში

წყარო: opennet.ru

ახალი კომენტარის დამატება