WireGuard: nowoczesny protokół VPN, który faktycznie zmienił sytuację
WireGuard to rzadkie oprogramowanie typu open source, które w ciągu pięciu lat stało się domyślnym oprogramowaniem. Główne jądro Linuksa od 2020 r., silnik NordLynx i Mullvad oraz baza kodu na tyle mała, że jedna osoba może go sprawdzić w jedno popołudnie. Oto szczegółowe wyjaśnienie — co to jest, jak działa, dlaczego wszyscy przeszli i gdzie nadal brakuje rozwiązań.
Poniżej znajduje się pełna treść artykułu w języku angielskim.
Czym właściwie jest WireGuard
WireGuard to protokół VPN warstwy 3 zaprojektowany przez Jasona A. Donenfelda i wydany po raz pierwszy w 2015 roku. Decydującym wyborem projektu był minimalizm: około 4000 linii kodu jądra C, w porównaniu z około 70 000 w przypadku OpenVPN i gdzieś na północ od 400 000 w przypadku różnych implementacji IPsec. Mniej kodu oznacza mniejszą powierzchnię ataku i bazę kodu, którą jeden inżynier może pomieścić w głowie — oba te czynniki przekładają się bezpośrednio na łatwiejsze audyty i mniej błędów bezpieczeństwa.
Protokół wykonuje jedno zadanie i nie wykorzystuje żadnej funkcji, jeśli nie jest to konieczne. Nie ma fazy negocjacji TLS w celu uzyskania odcisku palca, nie ma wyboru zestawu szyfrów w czasie wykonywania, nie ma sprytnych łańcuchów awaryjnych. Otrzymujesz jeden zestaw nowoczesnych prymitywów. Używasz ich lub używasz innego protokołu.
Stos kryptograficzny
WireGuard wykorzystuje mały, przemyślany zestaw nowoczesnych prymitywów, zamiast pozwalać użytkownikowi wybrać:
- Curve25519 dla wymiany kluczy Diffiego-Hellmana na krzywej eliptycznej (zarówno efemeryczne, jak i długoterminowe).
- ChaCha20 do szyfrowania symetrycznego.
- Poly1305 do uwierzytelniania wiadomości.
- BLAKE2s do mieszania (szybciej niż SHA-3 i lżejszy niż SHA-2).
- HKDF do wyprowadzania klucza.
- SipHash24 do wewnętrznych tabel skrótów odpornych na ataki typu „odmowa usługi” poprzez ataki ze złożonością algorytmiczną.
Uzgadnianie jest zbudowany na wzorcu IK z Noise Protocol Framework. Całość składa się z dwóch komunikatów z opcjonalnym kluczem współdzielonym zapewniającym dodatkową warstwę symetrycznej ochrony — przydatnej jako zabezpieczenie przed przyszłymi atakami z zakresu obliczeń kwantowych na Curve25519.
UDP — tylko według projektu
WireGuard mówi tylko w formacie UDP, domyślnie na porcie 51820. To jest zamierzone. Przenoszenie protokołu TCP przez TCP (w sposób, w jaki działa OpenVPN-TCP) powoduje dobrze znany problem awarii protokołu TCP: gdy wewnętrzne połączenie TCP retransmituje, zewnętrzne również retransmituje, a dwa liczniki czasu zderzają się ze sobą. UDP całkowicie tego unika.
Kompromis jest realny: w restrykcyjnych sieciach, w których dozwolony jest tylko protokół TCP/443, WireGuard po prostu nie działa. Nie ma odpowiednika OpenVPN-over-TCP-443, który mógłby ukryć ruch HTTPS. Jeśli korzystasz z sieci typu Great Firewall, potrzebujesz innego protokołu lub opakowania, takiego jak AmneziaWG, które zaciemnia uzgadnianie WireGuard.
LAdopcja jądra Linux
Status WireGuarda jako modułu jądra — a nie demona przestrzeni użytkownika, takiego jak OpenVPN — jest najważniejszym powodem, dla którego jest tak szybki. Pakiety nigdy nie przekraczają granicy jądra/przestrzeni użytkownika na gorącej ścieżce.
- 9 grudnia 2019: David Miller zaakceptował poprawki WireGuard do drzewa Linux net-next.
- 28 stycznia 2020: Linus Torvalds połączył sieć Net-Next, umieszczając WireGuard w linii głównej.
- 20 marca 2020: Linux 5.6 dostarczony z wbudowanym WireGuardem.
- 30 marca 2020: Android dodał natywną obsługę jądra w jądrze ogólnym Image.
- 22 czerwca 2020: OpenBSD zaimportował to.
- 29 listopada 2020: śledzono FreeBSD 13.
Torvalds, który słynie z skąpstwa w komplementach, zadzwonił kod „dzieło sztuki” w porównaniu do OpenVPN i IPsec. Nie przesadzał.
Niezależna analiza bezpieczeństwa
W maju 2019 r. badacze z INRIA opublikowali sprawdzony maszynowo dowód uścisku dłoni WireGuarda za pomocą narzędzia CryptoVerif. Wykazano, że protokół gwarantuje wzajemne uwierzytelnianie, poufność klucza sesji IND-CCA, tajemnicę przekazywania i bezpieczeństwo po kompromitacji — nawet w przypadku nieograniczonej liczby sesji równoległych, nawet w przypadku wycieku kluczy długoterminowych. To niezwykle dobry wynik formalny jak na protokół VPN.
Jak wypada w porównaniu z OpenVPN i IPsec
W przypadku typowego połączenia przewodowego 1 Gb/s z opóźnieniem 50 ms do najbliższego wyjścia:
- Bezpośrednie (bez VPN): pełna linia szybkość, dodatkowe opóźnienie ~5 ms.
- WireGuard: 800–950 Mb/s, +10–25 ms.
- IKEv2/IPsec: 600–800 Mb/s, podobne opóźnienie.
- OpenVPN UDP: 250–400 Mb/s, +30–60 ms.
- OpenVPN TCP: 100–250 Mb/s, +50–100 ms.
Możesz samodzielnie sprawdzić lukę, uruchamiając nasz test szybkości przy wyłączonej sieci VPN, a następnie ponownie uruchamiając każdy protokół obsługiwany przez Twojego dostawcę.
Gdzie WireGuard jest słabszy
- Brak stanu połączenia. WireGuard wiąże peera ze statyczną alokacją IP. Bez pomocy tworzy to powierzchnię logowania — adres IP każdego łączącego się klienta jest powiązany z jego kluczem publicznym na serwerze. Komercyjne sieci VPN rozwiązują ten problem za pomocą rotacyjnych wewnętrznych adresów IP, ale wymaga to dodatkowej instalacji, której sam protokół nie zapewnia.
- UDP-only. Nie działa tam, gdzie dozwolony jest tylko TCP/443.
- Brak wbudowanego przejścia NAT. Urządzenia równorzędne za symetrycznym NATem potrzebują zewnętrznego koordynator.
- Łatwy do pobrania odcisków palców. Uścisk dłoni ma charakterystyczny kształt i można go łatwo zidentyfikować na podstawie głębokiej kontroli pakietów, co jest jednym z powodów jego blokowania w Chinach, Iranie i Rosji.
Wdrożenia know
- wireguard-go: oficjalna wieloplatformowa implementacja przestrzeni użytkownika w Go.
- BoringTun: Implementacja przestrzeni użytkownika Rust firmy Cloudflare, używana w środowisku produkcyjnym skala.
- wireguard-nt: sterownik jądra systemu Windows, dostępny od sierpnia 2021 r.
- AmneziaWG: fork, który dodaje zaciemnianie protokołu, aby prześlizgnąć się przez głęboką inspekcję pakietów.
Kto go używa komercyjnie
Mullvad dostarczył obsługę WireGuard wcześniej niż ktokolwiek inny. NordVPN otacza go jako NordLynx z niestandardową warstwą NAT, aby rozwiązać problem alokacji statycznego adresu IP. ProtonVPN obsługuje to w ramach różnych planów. Wysyłają go IVPN i TunnelBear. Zarówno Tailscale, jak i Cloudflare WARP używają go wewnętrznie. Jeśli Twój dostawca jest nowoczesny, prawie na pewno mówi po WireGuard.
Czy powinieneś wybrać WireGuard?
Dla 95% użytkowników tak. Jest szybszy, bardziej wydajny na baterii mobilnej, łatwiejszy w konfiguracji i ma znacznie solidniejszą formalną historię bezpieczeństwa niż jego poprzednicy. Jedyne powody, dla których warto wybrać inaczej, to:
- Jesteś w kraju, który blokuje uzgadnianie WireGuard przez DPI — wybierz OpenVPN przez TCP/443 z zaciemnianiem TLS lub AmneziaWG.
- Potrzebujesz zawsze włączonego tunelu korporacyjnego do starszego koncentratora IPsec — pozostań włączony IKEv2.
- Korzystasz z usługi, która nie dostarczyła jeszcze WireGuard (rzadko w 2026 r.).
Po nawiązaniu połączenia potwierdź, że tunel rzeczywiście spełnia swoje zadanie, korzystając z naszego testu szczelności VPN. Działający protokół z źle skonfigurowanym klientem nie jest lepszy niż żaden VPN.
Często zadawane pytania
- Czy WireGuard jest bezpieczniejszy niż OpenVPN?
- Obydwa są bezpieczne, jeśli są prawidłowo skonfigurowane. Znacznie mniejsza baza kodu WireGuard ułatwia przeprowadzanie audytu i zmniejsza powierzchnię ataku, a także korzysta z formalnego, sprawdzanego maszynowo dowodu bezpieczeństwa, którego nie ma OpenVPN. OpenVPN korzysta z ponad 20 lat badań w terenie i dojrzałego ekosystemu TLS. Nie jest znana żadna przerwa kryptograficzna w nowoczesnych konfiguracjach żadnego protokołu.
- Dlaczego WireGuard używa tylko UDP?
- Ponieważ tunelowanie protokołu TCP przez protokół TCP powoduje dobrze znany problem awarii protokołu TCP — gdy połączenie wewnętrzne jest retransmitowane, połączenie zewnętrzne również jest retransmitowane, a dwa liczniki czasu ponownych prób zderzają się ze sobą. UDP całkowicie to omija. Kompromis polega na tym, że WireGuard nie może ukrywać się jako HTTPS na TCP/443, dlatego OpenVPN-TCP jest nadal przydatny w mocno filtrowanych sieciach.
- Czy WireGuard rejestruje mój adres IP?
- Protokół goły kojarzy łączącego się partnera z jego kluczem publicznym, który jest rodzajem dziennika. Renomowani komercyjni dostawcy VPN owijają WireGuard rotacyjnymi wewnętrznymi adresami IP i serwerami obsługującymi tylko pamięć RAM, aby usunąć tę powierzchnię. Jeśli prowadzisz własny serwer WireGuard, odpowiedzialność leży po Twojej stronie.
- Czy WireGuard może działać w Chinach lub Iranie?
- Standardowe uściski dłoni WireGuard mają charakterystyczny kształt i można je łatwo wykryć podczas głębokiej kontroli pakietów, dlatego są rutynowo blokowane w krajach o dużym stopniu filtrowania. Forki takie jak AmneziaWG dodają zaciemnienie, które ukrywa uścisk dłoni; Kolejną niezawodną alternatywą jest OpenVPN-over-TCP/443 z zaciemnianiem TLS.
- Czy WireGuard zniszczy moją baterię mobilną?
- Nie — zazwyczaj jest lepszy niż OpenVPN. Mała baza kodu WireGuarda i brak ciągłej pętli podtrzymującej oznaczają niższą aktywność procesora i radia. IKEv2 z implementacją jądra jest podobnie wydajny na urządzeniach mobilnych.