Dostępny VPN WireGuard 1.0.0

Przesłane przez przełomowa wersja VPN WireGuard 1.0.0co oznaczało dostawę komponentów WireGuard w rdzeniu głównym Linux 5.6 i stabilizacja rozwoju. Kod zawarty w jądrze Linuksa przeszedł dodatkowy audyt bezpieczeństwa wykonywany przez niezależną firmę specjalizującą się w tego typu audytach. Kontrola nie wykazała żadnych problemów.

Ponieważ WireGuard jest obecnie rozwijany w głównym jądrze Linuksa, przygotowano repozytorium dla dystrybucji, a użytkownicy nadal korzystają ze starszych wersji jądra wireguard-linux-Compatible.git. Repozytorium zawiera przeniesiony kod WireGuard i warstwę compat.h, aby zapewnić kompatybilność ze starszymi jądrami. Należy zauważyć, że tak długo, jak programiści będą mieli taką możliwość, a użytkownicy będą tego potrzebować, oddzielna wersja poprawek będzie obsługiwana w działającej formie. W obecnej formie samodzielna wersja WireGuard może być używana z jądrami firmy Ubuntu 20.04 и Debian 10 „Pogromca”, a także dostępne jako poprawki dla jąder Linuksa 5.4 и 5.5. Dystrybucje wykorzystujące najnowsze jądra, takie jak Arch, Gentoo i
Fedora 32 będzie mogła używać WireGuard z aktualizacją jądra 5.6.

Główny proces rozwoju odbywa się teraz w repozytorium wireguard-linux.git, który zawiera pełne drzewo jądra Linuksa ze zmianami z projektu Wireguard. Poprawki z tego repozytorium będą sprawdzane pod kątem włączenia do głównego jądra i regularnie przesyłane do gałęzi net/net-next. Rozwój narzędzi i skryptów uruchamianych w przestrzeni użytkownika, takich jak wg i wg-quick, odbywa się w repozytorium wireguard-tools.git, którego można używać do tworzenia pakietów w dystrybucjach.

Przypomnijmy, że VPN WireGuard realizowany jest w oparciu o nowoczesne metody szyfrowania, zapewnia bardzo wysoką wydajność, jest łatwy w obsłudze, pozbawiony komplikacji i sprawdził się w wielu dużych wdrożeniach przetwarzających duże wolumeny ruchu. Projekt rozwija się od 2015 roku, przeszedł audyty i weryfikacja formalna stosowane metody szyfrowania. Obsługa WireGuard jest już zintegrowana z NetworkManagerem i systemd, a poprawki jądra są zawarte w podstawowych dystrybucjach Debian niestabilny, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph и ALT.

WireGuard wykorzystuje koncepcję routingu klucza szyfrowania, która polega na dołączeniu klucza prywatnego do każdego interfejsu sieciowego i użyciu go do powiązania kluczy publicznych. Klucze publiczne są wymieniane w celu nawiązania połączenia w sposób podobny do SSH. Aby negocjować klucze i łączyć się bez uruchamiania osobnego demona w przestrzeni użytkownika, mechanizm Noise_IK z Ramy protokołu hałasupodobne do utrzymywania autoryzowanych kluczy w SSH. Transmisja danych odbywa się poprzez enkapsulację w pakietach UDP. Obsługuje zmianę adresu IP serwera VPN (roaming) bez rozłączania połączenia z automatyczną rekonfiguracją klienta.

Do szyfrowania używany szyfr strumieniowy ChaCha20 i algorytm uwierzytelniania wiadomości (MAC) Poly1305, zaprojektowany przez Daniela Bernsteina (Daniela J. Bernsteina), Tanyi Lange
(Tanja Lange) i Petera Schwabe. ChaCha20 i Poly1305 są pozycjonowane jako szybsze i bezpieczniejsze analogi AES-256-CTR i HMAC, których implementacja programowa pozwala na osiągnięcie stałego czasu wykonania bez użycia specjalnego wsparcia sprzętowego. Aby wygenerować wspólny tajny klucz, w implementacji wykorzystano protokół krzywej eliptycznej Diffiego-Hellmana Curve25519, zaproponowany również przez Daniela Bernsteina. Algorytm używany do mieszania to BLAKE2 (RFC7693).

Pod starym testowanie Wydajność WireGuard wykazała 3.9 razy wyższą przepustowość i 3.8 razy wyższą responsywność w porównaniu do OpenVPN (256-bitowy AES z HMAC-SHA2-256). W porównaniu do IPsec (256-bitowy ChaCha20+Poly1305 i AES-256-GCM-128), WireGuard wykazuje niewielką poprawę wydajności (13-18%) i mniejsze opóźnienia (21-23%). Wyniki testów zamieszczone na stronie projektu obejmują starą, samodzielną implementację WireGuard i zostały oznaczone jako niewystarczająco wysokiej jakości. Od czasu testów kod WireGuard i IPsec został jeszcze bardziej zoptymalizowany i jest teraz szybszy. Nie przeprowadzono jeszcze pełniejszych testów obejmujących implementację zintegrowaną z jądrem. Należy jednak zauważyć, że WireGuard w niektórych sytuacjach nadal przewyższa IPsec ze względu na wielowątkowość, podczas gdy OpenVPN pozostaje bardzo powolny.

Dostępny VPN WireGuard 1.0.0

Źródło: opennet.ru

Dodaj komentarz