Do rdzenia Linux 5.6 włączona sieć VPN WireGuard

Dzisiaj Linus przeniósł do siebie oddział net-next z interfejsami VPN WireGuard. O tym wydarzeniu сообщили na liście mailingowej WireGuard.

Do rdzenia Linux 5.6 włączona sieć VPN WireGuard

Zbieranie kodu dla nowego jądra jest obecnie w toku. Linux 5.6. WireGuard — szybka sieć VPN nowej generacji, która implementuje nowoczesną kryptografię. Pierwotnie została opracowana jako prostsza i wygodniejsza alternatywa dla istniejących sieci VPN. Została opracowana przez kanadyjskiego specjalistę ds. bezpieczeństwa informacji, Jasona A. Donenfelda. W sierpniu 2018 roku WireGuard był chwalony Od Linusa Torvaldsa. Mniej więcej w tym samym czasie rozpoczęto prace nad włączeniem VPN do jądra. LinuxCały proces trwał nieco dłużej.

„Widzę, że Jason wysłał żądanie ściągnięcia, aby uwzględnić WireGuard „do jądra” – napisał Linus 2 sierpnia 2018 r. „Czy mogę po prostu powtórzyć, że uwielbiam tę sieć VPN i mam nadzieję na szybkie połączenie? Kod może nie jest idealny, ale przyjrzałem mu się i porównałem z horrorami OpenVPN i IPSec, to prawdziwe dzieło sztuki."

Wbrew woli Linusa fuzja przeciągnęła się o półtora roku. Główny problem okazał się związany z autorskimi implementacjami funkcji kryptograficznych, które miały na celu poprawę wydajności. Po długich negocjacjach we wrześniu 2019 r. tak się stało podjęto decyzję kompromisową przetłumaczyć poprawki do funkcji API Crypto dostępnych w jądrze, do których mają dostęp programiści WireGuard Pojawiły się pewne skargi na wydajność i ogólne bezpieczeństwo. Jednak natywne funkcje kryptograficzne rozwiązały problem. WireGuard Oddzielać niskopoziomowe interfejsy API Zinc i stopniowo przenosić je do jądra. W listopadzie twórcy jądra dotrzymali obietnicy i Zgoda przenieść część kodu z Zinca do głównego jądra. Na przykład w Crypto API w zestawie przygotowane w WireGuard Szybkie implementacje algorytmów ChaCha20 i Poly1305.

Wreszcie 9 grudnia 2019 r. David S. Miller, odpowiedzialny za podsystem sieciowy jądra, Linux, przyjęty do następnej gałęzi sieci łatki z wdrożeniem interfejsu VPN z projektu WireGuard.

A dzisiaj, 29 stycznia 2020 r., zmiany trafiły do ​​Linusa w celu włączenia ich do jądra.

Do rdzenia Linux 5.6 włączona sieć VPN WireGuard

Deklarowane korzyści WireGuard w porównaniu z innymi rozwiązaniami VPN:

  • Łatwy w użyciu.
  • Wykorzystuje nowoczesną kryptografię: framework protokołu Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF itp.
  • Kompaktowy, czytelny kod, łatwiejszy do zbadania pod kątem luk.
  • Wysoka wydajność
  • Jasne i szczegółowe specyfikacja.

Cała podstawowa logika WireGuard zajmuje mniej niż 4000 linii kodu, podczas gdy OpenVPN a IPSec to setki tysięcy linii.

"W WireGuard Wykorzystano koncepcję routingu kluczy szyfrujących, która polega na powiązaniu klucza prywatnego z każdym interfejsem sieciowym i wykorzystaniu go do powiązania klucza publicznego. Klucze publiczne są wymieniane w celu nawiązania połączenia w sposób podobny do SSH. Aby negocjować klucze i nawiązać połączenie bez uruchamiania osobnego demona w przestrzeni użytkownika, wykorzystano 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, - пишет Otwarta sieć.

Do szyfrowania używany szyfr strumieniowy ChaCha20 i algorytm uwierzytelniania wiadomości (MAC) Poly1305, zaprojektowany przez Daniela Bernsteina (Daniela J. Bernsteina), Tanji 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)".

wyniki Testy wydajności z oficjalnej strony:

Przepustowość (megabit/s)
Do rdzenia Linux 5.6 włączona sieć VPN WireGuard

Ping (ms)
Do rdzenia Linux 5.6 włączona sieć VPN WireGuard

Konfiguracja testowa:

  • Intel Core i7-3820QM i Intel Core i7-5200U
  • Karty gigabitowe Intel 82579LM i Intel I218LM
  • Linux 4.6.1
  • Konfiguracja WireGuard: 256-bitowy ChaCha20 z Poly1305 dla komputerów MAC
  • Pierwsza konfiguracja IPsec: 256-bitowy ChaCha20 z Poly1305 dla MAC
  • Druga konfiguracja IPsec: AES-256-GCM-128 (z AES-NI)
  • Konfiguracja OpenVPN: równoważny zestaw szyfrów 256-bitowy AES z HMAC-SHA2-256, tryb UDP
  • Wydajność mierzono za pomocą iperf3, pokazuje średni wynik w ciągu 30 minut.

Teoretycznie po integracji ze stosem sieciowym WireGuard Powinno działać jeszcze szybciej. W rzeczywistości jednak niekoniecznie tak będzie ze względu na przejście na wbudowane funkcje kryptograficzne API Crypto. Możliwe, że nie wszystkie z nich są jeszcze zoptymalizowane pod kątem wydajności wersji natywnej. WireGuard.

„Z mojego punktu widzenia, WireGuard To absolutnie idealne rozwiązanie dla użytkownika. Wszystkie decyzje na niskim poziomie są uwzględniane w specyfikacji, więc konfiguracja typowej infrastruktury VPN zajmuje zaledwie kilka minut. Praktycznie niemożliwe jest zepsucie konfiguracji. napisał na Habré w 2018 r. - Proces instalacji szczegółowo opisane na oficjalnej stronie internetowej chciałbym osobno odnotować doskonałe Obsługa OpenWRT. Tę łatwość użycia i zwartość bazy kodu uzyskano poprzez wyeliminowanie dystrybucji kluczy. Nie ma skomplikowanego systemu certyfikatów i całego tego korporacyjnego horroru; krótkie klucze szyfrujące są dystrybuowane podobnie jak klucze SSH.

Projekt WireGuard rozwija się od 2015 roku, przeszedł audyt i weryfikacja formalna. Wspierać się WireGuard zintegrowane z NetworkManager i systemd, a poprawki jądra są zawarte w dystrybucjach bazowych Debian Niestabilna, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph i ALT.

Źródło: www.habr.com

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster