знаковое издание на VPN , което отбеляза доставката на компонентите на WireGuard в основния състав на ядрото и стабилизация на разработката. Включеният в основата на ядрото на Linux код допълнителен одит на сигурността, извършен от независима фирма, специализирана в подобни проверки. Одитът не разкри проблеми.
Тъй като WireGuard сега се развива в основния състав на ядрото на Linux, за дистрибуции и потребители, които продължават да използват стари версии на ядрото, е подготвен репозиторий . Репозиторият включва пренесен код на WireGuard и слой compat.h за осигуряване на съвместимост със стари ядра. Отбелязва се, че все още има възможност за производители и нужда от потребители, за да се поддържа отделен вариант на пачове в работен вид. В текущия вариант, отделният вариант на WireGuard може да се използва с ядра от и , а също е достъпен под формата на пачове за ядрото на Linux и . Дистрибуции, които използват най-новите ядра, като Arch, Gentoo и
Fedora 32, ще могат да използват WireGuard заедно с ъпдейта на ядрото 5.6.
Основният процес на разработка сега се води в репозитория , който включва пълното дърво на ядрото на Linux с промените от проекта WireGuard. Пачовете от този репозиторий ще бъдат прегледани за включване в основното ядро и редовно пренесени в клоновете net/net-next. Разработката на инструментите и скриптовете, работещи в потребителското пространство, като wg и wg-quick, протича в репозитория , който може да се използва за създаване на пакети за дистрибуции.
Напомняме, че VPN WireGuard е реализиран на база на съвременни методи за криптиране, осигурява много висока производителност, лесен е за използване, лишен от усложнения и се е утвърдил в редица големи внедрявания, обработващи големи обеми трафик. Проектът се развива от 2015 година, премина аудит и на приложените методи за криптиране. Поддръжката на WireGuard вече е интегрирана в NetworkManager и systemd, а пачовете за ядрото са част от основния състав на дистрибуциите , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, и .
В WireGuard се прилага концепцията за маршрутизиране по ключовете за шифроване, която включва привръзка на всеки мрежови интерфейс с частния ключ и използване за свързване на публичните ключове. Обменът на публични ключове за установяване на свързаност се извършва по аналогия с SSH. За съгласуване на ключовете и свързването без стартиране на отделен демон в потребителското пространство се прилага механизмът Noise_IK от , подобно на поддържането на authorized_keys в SSH. Преносът на данни се извършва чрез инкапсулация в UDP пакети. Поддържа се смяна на IP адреса на VPN сървера (роуминг) без прекъсване на свързаността с автоматична пренастройка на клиента.
За шифроване потоковият шифър и алгоритъм за автентикация на съобщения (MAC) , разработени от Даниел Бернщайн (), Таня Ланге
(Tanja Lange) и Питър Швабе (Peter Schwabe). ChaCha20 и Poly1305 се позиционират като по-бързи и безопасни аналози на AES-256-CTR и HMAC, чиято софтуерна реализация позволява постигане на фиксирано време за изпълнение без необходимост от специална хардуерна поддръжка. За генериране на общия таен ключ се използва протоколът на Дифи-Хелман за елиптични криви в реализация , също предложен от Даниел Бернщайн. За хеширане се използва алгоритъмът .
Със старата производителност WireGuard показа 3.9 пъти по-висока пропускателна способност и 3.8 пъти по-висока реакция в сравнение с OpenVPN (256-битово AES с HMAC-SHA2-256). В сравнение с IPsec (256-битово ChaCha20+Poly1305 и AES-256-GCM-128) WireGuard демонстрира малко предимство в производителността (13-18%) и намаляване на закъсненията (21-23%). Резултатите от тестовете на сайта на проекта обхващат старата изолирана реализация на WireGuard и са отбелязани като недостатъчно качествени. От времето на провеждане на тестовете кодът на WireGuard и IPsec е оптимизиран допълнително и сега работи по-бързо. По-пълни тестове, обхващащи интегрираната в ядрото реализация, все още не са проведени. Въпреки това, се отбелязва, че WireGuard в някои ситуации все още изпреварва IPsec поради многопоточността, докато OpenVPN остава много бавен.
Източник: opennet.ru
