symboliczne wydanie VPN , które oznacza dostarczenie komponentów WireGuard w głównym składzie jądra i stabilizację rozwoju. Dołączony do jądra Linux kod dodatkowy audyt bezpieczeństwa, przeprowadzony przez niezależną firmę, specjalizującą się w takich kontrolach. Audyt nie wykazał żadnych problemów.
Ponieważ WireGuard jest teraz rozwijany w głównym składzie jądra Linux, przygotowano repozytorium . Repozytorium zawiera skompilowany kod WireGuard i warstwę compat.h, aby zapewnić zgodność z starszymi jądrami. Zauważono, że póki co, w miarę możliwości deweloperów oraz potrzeb użytkowników, odseparowana wersja poprawek będzie utrzymywana w działającym stanie. W obecnej formie odseparowana wersja WireGuard może być używana z jądrami z i , a także dostępna w formie poprawek do jąder Linux. i Dystrybucje wykorzystujące najnowsze jądra, takie jak Arch, Gentoo i
Fedora 32, zyskają możliwość korzystania z WireGuard wraz z aktualizacją jądra 5.6.
Główny proces rozwoju teraz odbywa się w repozytorium , obejmującym pełne drzewo jądra Linux z zmianami od projektu Wireguard. Łaty z tego repozytorium będą recenzowane do włączenia do głównego jądra i regularnie przenoszone do gałęzi net/net-next. Rozwój użytkowych narzędzi i skryptów, takich jak wg i wg-quick, odbywa się w repozytorium , który można wykorzystać do tworzenia pakietów w dystrybucjach.
Przypominamy, że VPN WireGuard oparty jest na nowoczesnych metodach szyfrowania, zapewnia bardzo wysoką wydajność, jest prosty w użyciu, pozbawiony zbędnych komplikacji i dobrze sprawdził się w wielu zastosowaniach, przetwarzających duże ilości ruchu. Projekt rozwija się od 2015 roku, przeszedł audyt oraz zastosowanych metod szyfrowania. Wsparcie dla WireGuard zostało już zintegrowane z NetworkManager i systemd, a poprawki do jądra są częścią podstawowej struktury dystrybucji , Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, i .
W WireGuard zastosowano koncepcję trasowania opartą na kluczach szyfrowania, co oznacza przypisanie prywatnego klucza do każdego interfejsu sieciowego i wykorzystanie go do powiązania kluczy publicznych. Wymiana kluczy publicznych w celu nawiązania połączenia odbywa się na wzór SSH. Do ustalania kluczy i nawiązywania połączeń bez uruchamiania osobnego demona w przestrzeni użytkownika wykorzystuje się mechanizm Noise_IK z , przypominający utrzymywanie authorized_keys w SSH. Przesył danych odbywa się przez enkapsulację w pakietach UDP. Obsługiwane jest zmienianie adresu IP serwera VPN (roaming) bez przerywania połączenia z automatycznym rekonfigurowaniem klienta.
Do szyfrowania strumieniowy szyfr i algorytm autoryzacji wiadomości (MAC) , opracowane przez Daniela Bernsteina (), Tanję Lange
(Tanja Lange) i Petera Schwabe'a (Peter Schwabe). ChaCha20 i Poly1305 są postrzegane jako szybsze i bezpieczniejsze odpowiedniki AES-256-CTR i HMAC, a ich implementacja programowa pozwala uzyskać stały czas wykonania bez potrzeby korzystania ze specjalnego wsparcia sprzętowego. Do generowania wspólnego tajnego klucza używany jest protokół Diffiego-Hellmana na krzywych eliptycznych w implementacji , także zaproponowanej przez Daniela Bernsteina. Do haszowania stosowany jest algorytm .
W poprzednich wydajności WireGuard wykazał 3.9 razy wyższą przepustowość oraz 3.8 razy lepszą responsywność w porównaniu do OpenVPN (256-bit AES z HMAC-SHA2-256). W porównaniu do IPsec (256-bit ChaCha20+Poly1305 oraz AES-256-GCM-128) WireGuard wykazuje niewielką przewagę wydajnościową (13-18%) oraz obniżenie opóźnień (21-23%). Opublikowane na stronie projektu wyniki testów dotyczą starej, odizolowanej implementacji WireGuard i zostały oznaczone jako niewystarczająco jakościowe. Od czasu przeprowadzenia testów kod WireGuard i IPsec został dodatkowo zoptymalizowany i teraz działa szybciej. Bardziej kompleksowe testy obejmujące zintegrowaną implementację z jądra jeszcze nie zostały przeprowadzone. Niemniej jednak zauważa się, że WireGuard w niektórych sytuacjach wciąż wyprzedza IPsec dzięki wielowątkowości, podczas gdy OpenVPN pozostaje bardzo wolny.
Źródło: opennet.ru
