WireGuard: Moderní protokol VPN, který skutečně změnil věci

11 min přečtenoProtokoly VPN

WireGuard je vzácný kus softwaru s otevřeným zdrojovým kódem, který se během pěti let stal výchozím. Hlavní řada linuxového jádra od roku 2020, engine za NordLynx a Mullvad a dostatečně malá kódová základna, aby ji mohl auditovat jeden člověk za odpoledne. Toto je hloubkové vysvětlení – co to je, jak to funguje, proč všichni přešli a kde to stále zaostává.

Celé tělo článku je uvedeno níže v angličtině.

Co je vlastně WireGuard

WireGuard je protokol VPN na 3. vrstvě navržený Jasonem A. Donenfeldem a poprvé vydaný v roce 2015. Definující volbou návrhu byl minimalismus: asi 4 000 řádků kódu jádra C ve srovnání se zhruba 70 000 různými severy implementace Open040 a někde jinde. Méně kódu znamená menší útočnou plochu a kódovou základnu, kterou může jeden technik držet v hlavě – což se obojí přímo promítá do jednodušších auditů a menšího počtu bezpečnostních chyb.

Protokol dělá jednu práci a odmítá použít funkci, pokud to nebude nutné. Neexistuje žádná fáze vyjednávání TLS k otisku prstu, žádný výběr šifrovacích sad za běhu, žádné chytré záložní řetězce. Získáte jednu sadu moderních primitivů. Používáte je nebo používáte jiný protokol.

Kryptografický zásobník

WireGuard používá malou, tvrdohlavou sadu moderních primitiv, místo aby nechal uživatele vybrat:

  • Curve25519ve keyiffie-Helman exchange pomíjivé a dlouhodobé).
  • ChaCha20 pro symetrické šifrování.
  • Poly1305 pro ověřování zpráv.
  • ster než SHAX555 lehčí než SHA-2).
  • HKDF pro odvození klíče.
  • SipHash24 pro interní hašovací tabulky, které odolávají odmítnutí služby prostřednictvím útoků na algoritmickou složitost. Noise Protocol Framework. Dokončuje se ve dvou zprávách s volitelným předsdíleným klíčem pro další vrstvu symetrické ochrany – užitečné jako zajištění proti budoucím útokům kvantových počítačů na Curve25519.

    UDP-only od design

    WireGuard mluví pouze UDP, na portu 5182 ve výchozím nastavení. Toto je záměrné. Přenášení TCP přes TCP (způsob, jakým funguje OpenVPN-TCP) způsobuje dobře známý problém zhroucení TCP: když vnitřní TCP spojení znovu vysílá, to vnější také vysílá a dva časovače na sebe dupou. UDP se tomu zcela vyhýbá.

    Kompromis je skutečný: v restriktivních sítích, kde je povolen pouze TCP/443, WireGuard prostě nefunguje. Neexistuje žádný ekvivalent OpenVPN-over-TCP-443, který by se maskoval jako provoz HTTPS. Pokud stojíte za sítí ve stylu Great Firewall, potřebujete jiný protokol nebo obal, jako je AmneziaWG, který zatemní handshake WireGuard.

    Linux kernel adopt

    WireGuard status modulu jádra – spíše než jako důvod pro rychlé otevření uživatelského prostoru. Pakety nikdy nepřekročí hranici jádra/uživatelského prostoru na horké cestě.

    • 9 Prosinec 2019: David Miller přijal záplaty WireGuard do stromu Linux net-next8 Leden55 Leden5 2020: Linus Torvalds sloučil síť-další, čímž se WireGuard zařadil do hlavní řady.
    • 20 Březen 2020: Linux 5.6 dodán s vestavěnou WireGuard. podpora jádra v generickém obrazu jádra.
    • 22 červen 2020: OpenBSD to importovalo.
    • 29 listopad 2020: Následovalo FreeBSD 13. s komplimenty nazvaný kód „umělecké dílo“ ve srovnání s OpenVPN a IPsec. Nepřeháněl.

      Nezávislá bezpečnostní analýza

      V květnu 2019 zveřejnili výzkumníci z INRIA strojově ověřený důkaz handshake WireGuard pomocí nástroje CryptoVerif. Prokázali, že protokol zaručuje vzájemnou autentizaci, utajení klíče relace IND-CCA, dopředné utajení a zabezpečení po kompromitaci – a to i v neomezených paralelních relacích, a to i v případě úniku dlouhodobých klíčů. To je neobvykle silný formální výsledek pro protokol VPN.

      Jak si stojí proti OpenVPN a IPsec

      Na typickém kabelovém připojení 1 Gb/s s latencí 50 ms k nejbližšímu výstupu:

        irecZ PLZ92, plná rychlost VPN92 ~5 ms přidaná latence.
      • WireGuard: 800–950 Mb/s, +10–25 ms.
      • IKEv2/IPsec: podobné: 60 Mb/s latence.
      • OpenVPN UDP: 250–400 Mbps, +30–60 ms.
      • OpenVPN TCP: 100 Mbps +2 ms.

      Mezeru si můžete ověřit sami spuštěním našeho rychlostního testu s vypnutou VPN a poté znovu spuštěním každého protokolu, který váš poskytovatel podporuje.

      Tam, kde je WireGuard slabší

      • Žádný stav připojení. WireGuard spojuje peer se statickou alokací IP. Bez pomoci to vytvoří protokolovací plochu – IP každého připojujícího se klienta je spojena s jeho veřejným klíčem na serveru. Komerční VPN to řeší rotujícími interními IP adresami, ale vyžaduje to další instalaci, kterou samotný protokol neposkytuje.
      • UDP-only. Nefunguje tam, kde je povolen pouze TCP/443.
      • Žádný vestavěný NAT traversal.XPLZ vyžaduje externí symetrický12 koordinátor.
      • Snadný otisk prstu. Potřesení rukou má charakteristický tvar a je triviálně identifikovatelné hloubkovou kontrolou paketů, což je jeden z důvodů, proč je blokováno v Číně, Íránu a Rusku.

      Implementace do know

      • wireguard-go: oficiální implementace uživatelského prostoru pro více platforem v Go.
      • BoringTun: Implementace uživatelského prostoru Rust společnosti Cloudflare, používaná ve výrobě na scale.
      • wireguard-nt: ovladač jádra pro Windows, dostupný od srpna 2021.
      • AmneziaWG: rozvětvení, které přidává zmatení protokolů, aby proklouzlo přes hloubkovou kontrolu paketů.Z39 komerčně

        Mullvad dodal podporu WireGuard téměř dříve než kdokoli jiný. NordVPN to zabalí jako NordLynx s vlastní vrstvou NAT, která řeší problém s přidělováním statické IP adresy. ProtonVPN to podporuje napříč plány. Odesílají to IVPN a TunnelBear. Tailscale a Cloudflare WARP jej používají interně. Pokud je váš poskytovatel moderní, téměř jistě mluví WireGuard.

        Měli byste zvolit WireGuard?

        Pro 95 % uživatelů ano. Je rychlejší, efektivnější na mobilní baterii, snadněji se nastavuje a má mnohem silnější formální bezpečnostní příběh než jeho předchůdci. Jediné důvody, proč se rozhodnout jinak, jsou:

        • Jste v zemi, která blokuje handshake WireGuard přes DPI – vyberte OpenVPN přes TCP/443 s obfuskací TLS nebo AmneziaWG.
        • Potřebujete vždy zapnutý podnikový tunel ke staršímu koncentrátoru IPsec IKEv2.
        • Používáte službu, která ještě nedodala WireGuard (v roce 2026 zřídka). Funkční protokol se špatně nakonfigurovaným klientem není o nic lepší než žádná VPN.

Často kladené otázky

Je WireGuard bezpečnější než OpenVPN?
Oba jsou při správné konfiguraci bezpečné. Mnohem menší kódová základna WireGuardu činí audit řiditelným a snižuje povrch útoku a těží z formálního strojově kontrolovaného bezpečnostního důkazu, který OpenVPN nemá. OpenVPN těží z více než 20 let divoké kontroly a vyspělého ekosystému TLS. V moderních konfiguracích obou protokolů není známo žádné kryptografické přerušení.
Proč WireGuard používá pouze UDP?
Protože tunelování TCP přes TCP způsobuje dobře známý problém zhroucení TCP – když se vnitřní spojení znovu přenese, znovu se přenese i vnější spojení a dva časovače opakování na sebe narazí. UDP se tomu zcela vyhýbá. Kompromisem je, že WireGuard se nemůže maskovat jako HTTPS na TCP/443, což je důvod, proč je OpenVPN-TCP stále užitečný v silně filtrovaných sítích.
Zaznamenává WireGuard moji IP?
Holý protokol spojuje připojujícího se peer s jejich veřejným klíčem, což je druh protokolu. Renomovaní komerční poskytovatelé VPN obalují WireGuard rotujícími interními IP adresami a servery pouze s RAM, aby tento povrch odstranili. Pokud provozujete svůj vlastní server WireGuard, odpovědnost je na vás.
Může WireGuard fungovat v Číně nebo Íránu?
Standardní handshake WireGuard mají charakteristický tvar a lze je snadno snímat otisky pomocí hluboké kontroly paketů, takže jsou běžně blokovány v silně filtrovaných zemích. Forks jako AmneziaWG přidávají zmatek, který maskuje podání ruky; OpenVPN-over-TCP/443 s obfuskací TLS je další spolehlivou alternativou.
Vybije WireGuard moji mobilní baterii?
Ne – je to obvykle lepší než OpenVPN. Malá kódová základna WireGuard a absence konstantní udržovací smyčky znamená nižší aktivitu CPU a rádia. IKEv2 s implementací jádra je podobně efektivní na mobilu.
WireGuard vysvětlil: Moderní protokol VPN, který skutečně změnil věci | VPN Master Pro