Pod koniec lipca twórcy tunelu VPN WireGuard zaproponowali , które sprawią, że ich oprogramowanie do tworzenia tuneli VPN stanie się częścią jądra Linux. Dokładna data realizacji tego pomysłu nadal pozostaje jednak nieznana. Poniżej przyjrzymy się temu narzędziu bliżej.
/ фото
Krótko o projekcie
WireGuard to tunel VPN nowej generacji stworzony przez Jasona A. Donenfelda, szefa firmy Edge Security. Projekt powstał jako i szybka alternatywa dla OpenVPN oraz IPsec. Pierwsza wersja produktu zawierała zaledwie 4 tys. linii kodu. Dla porównania OpenVPN ma ich około 120 tys., a IPsec — 420 tys.
Według Według deweloperów WireGuard jest łatwy w konfiguracji, a bezpieczeństwo protokołu zapewniają . : Wi‑Fi, LTE lub Ethernet za każdym razem trzeba ponownie łączyć się z serwerem VPN. Serwery WireGuard nie zrywają jednak połączenia, nawet jeśli użytkownik otrzyma nowy adres IP.
Mimo że WireGuard od początku był projektowany z myślą o jądrze Linux, deweloperzy również o przenośną wersję narzędzia dla urządzeń z Androidem. Aplikacja nie jest jeszcze dopracowana, ale już teraz można ją przetestować w praktyce. W tym celu trzeba .
Ogólnie rzecz biorąc, WireGuard cieszy się sporą popularnością i został już wdrożony przez kilku dostawców VPN, na przykład Mullvad i AzireVPN. W sieci opublikowano także wiele tego rozwiązania. Na przykład , które tworzą użytkownicy, a są też poradniki .
Szczegóły techniczne
W (str. 18) zaznaczono, że przepustowość WireGuard jest czterokrotnie wyższa niż w OpenVPN: odpowiednio 1011 Mb/s wobec 258 Mb/s. WireGuard wyprzedza także standardowe linuxowe rozwiązanie IPsec, które osiąga 881 Mb/s. Przewyższa je również pod względem łatwości konfiguracji.
Po wymianie kluczy (połączenie VPN jest inicjalizowane niemal tak jak w SSH) i zestawieniu połączenia WireGuard samodzielnie rozwiązuje wszystkie pozostałe kwestie: nie trzeba martwić się o routing, kontrolę stanu i inne aspekty. Dodatkowy wysiłek konfiguracyjny będzie potrzebny tylko wtedy, gdy chce się zastosować szyfrowanie symetryczne.

/ фото
Do instalacji potrzebna będzie dystrybucja z jądrem Linux nowszym niż 4.1. Można ją znaleźć w repozytoriach głównych dystrybucji Linux.
$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools
Jak zauważają redaktorzy xakep.ru, samodzielna kompilacja ze źródeł również nie jest trudna. Wystarczy uruchomić interfejs i wygenerować klucz publiczny oraz prywatny:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard interfejs do współpracy z dostawcą kryptografii . Zamiast niego wykorzystywany jest szyfr strumieniowy , kryptograficzny Poly1305 oraz własne kryptograficzne funkcje skrótu.
Klucz tajny jest generowany z wykorzystaniem opartego na krzywej eliptycznej . Podczas haszowania wykorzystywane są i . Dzięki formatowi znaczników czasu protokół odrzuca pakiety z mniejszą wartością timestamp, tym samym i .
Jednocześnie WireGuard wykorzystuje funkcję ioctl do kontroli wejścia/wyjścia (wcześniej używano ), co sprawia, że kod jest czystszy i prostszy. Można się o tym przekonać, zaglądając do .
Plany deweloperów
Na razie WireGuard to moduł jądra out-of-tree. Jednak autor projektu, Jason Donenfeld, uważa, że nadszedł już czas na pełnoprawną implementację w jądrze Linux, ponieważ jest prostsza i bardziej niezawodna niż inne rozwiązania. W tej opinii Jasona popiera nawet sam Linus Torvalds — nazwał kod WireGuard „dziełem sztuki”.
Jednak na razie nikt nie podaje dokładnych terminów wdrożenia WireGuard do jądra. I nie stanie się to wraz z wydaniem sierpniowego Linux kernel 4.18. Istnieje jednak szansa, że nastąpi to już w najbliższej przyszłości: w wersji 4.19 lub 5.0.
Gdy WireGuard zostanie dodany do jądra, deweloperzy dopracować aplikację na urządzenia z Androidem i rozpocząć prace nad aplikacją dla iOS. Ponadto planują ukończyć implementacje w Go i Rust oraz przenieść je na macOS, Windows i BSD. Planowana jest także implementacja WireGuard dla bardziej „egzotycznych systemów”: , , a także wiele innych interesujących rzeczy. Wszystkie zostały wymienione na autorów projektu.
P.S. Jeszcze kilka artykułów z naszego bloga firmowego:
Głównym kierunkiem naszej działalności jest świadczenie usług chmurowych:
| | | | | |
Źródło: habr.com
