Pevnost

WireGuard versus OpenVPN pro soukromí.

Blog · 18. 10. 2026 · 6 min

Stav k 18. 10. 2026: Pevnost je v soukromé betě. První server v Hluboké nad Vltavou běží, náš DNS resolver je uvnitř tunelu na 10.8.0.1. Účty se platí převodem; Bitcoin a Lightning se otevřou, jakmile náš uzel dosynchronizuje, Monero a hotovost poštou později. Aplikace pro Windows 0.2.2 beta a Android 0.1.0 beta (APK) jsou na stránce Aplikace; iOS a macOS používají oficiální aplikaci WireGuard. Naposledy revidováno 18. 10. 2026.

Pevnost mluví jedním protokolem: WireGuard. Žádný OpenVPN, žádný IPsec, žádný proprietární tunel. Někdo to čte jako omezení. Je to volba a tento článek ji vysvětluje z pohledu, který je pro nás důležitý: co protokol nutí provozovatele bez logů o vás vědět a jak velké části kódu mezi vaším zařízením a výstupem můžete reálně důvěřovat.

Velikost je vlastnost soukromí

OpenVPN je program v uživatelském prostoru postavený nad kompletní knihovnou TLS. Tunel sám je malý, ale táhne s sebou celý TLS: parsování certifikátů, vyjednávání šifer, renegociaci, volby komprese, desítky konfiguračních přepínačů, které se ovlivňují způsoby, kterým rozumí málokterý provozovatel. Každý z těch přepínačů byl někdy místem zranitelnosti a konfigurace, která je bezpečná letos, není ta, která byla bezpečná před pěti lety.

Implementace WireGuardu v jádře má několik tisíc řádků. Není co vyjednávat: jedna výměna klíčů podle rámce Noise, jedna sada primitiv (Curve25519, ChaCha20‑Poly1305, BLAKE2s, HKDF), žádné šifrovací sady k špatnému nastavení. Kdyby se některé primitivum prolomilo, protokol dostane novou verzi a všichni přejdou; mezitím neexistuje žádná cesta k downgradu, kterou by šlo zneužít. Protokol takhle malý přečte schopný inženýr za víkend a mnohokrát se to stalo. Pro provozovatele, který vás žádá o důvěru, že server dělá to, co říká zveřejněná konfigurace, není možnost přečíst celou věc drobnost. Je to většina argumentu.

V jádře, ne vedle něj

Od Linuxu 5.6 je WireGuard součástí hlavní řady jádra. Na našich uzlech jdou pakety ze síťové karty do jádra, tam se dešifrují a přepošlou a jdou zase ven, aniž by kdy přešly do procesu v uživatelském prostoru. To má dva důsledky, na kterých nám záleží. Výkon: jeden pronajatý server přeposílá provoz téměř rychlostí své linky, takže nemusíme škrtit. První uzel v krátkém testu dal jednomu klientovi kolem 300 Mbit/s, delší měření zveřejníme na stavové stránce. Útočná plocha: neběží žádný dlouho žijící démon s právy roota, který parsuje vstup z internetu; parsování se děje v kódu, který udržuje komunita kolem jádra a dodává každá distribuce.

Co server musí vědět

Tuhle část většina srovnání přeskakuje. VPN server o vás musí držet nějaký stav, jinak vám nemůže posílat pakety zpět. Otázka je kolik a jak dlouho.

Server OpenVPN si drží TLS relaci na klienta: ID relace, vyjednané parametry, klientský certifikát nebo uživatelské jméno, kterým se ověřil, a typicky stavový soubor na disku se seznamem připojených klientů, jejich skutečnou adresou, virtuální adresou a počítadly bajtů. Ten soubor se ve výchozím nastavení zapisuje. Ověření obvykle znamená jméno a heslo nebo certifikát navázaný na účet, takže server z principu ví, ke kterému účtu které spojení patří, každou sekundu, kdy běží.

Rozhraní WireGuard si na každého peera drží veřejný klíč, povolenou adresu v tunelu, poslední koncový bod (vaši aktuální skutečnou adresu a port) a čas posledního handshaku. Nic víc. Žádná relace, žádné přihlášení, žádné uživatelské jméno; veřejný klíč je identita a neříká nic o tom, kdo platil. Koncový bod se přepíše každým handshakem a zmizí, když rozhraní spadne. Přesně tohle popisujeme v zásadách ochrany dat a v článku o tom, co vydá zabavený uzel: dokud jste připojeni, uzel drží vaši adresu v RAM, a tím výčet končí. Žádný stavový soubor neexistuje, protože ho nic nezapisuje a naše uzly nemají zapisovatelný disk, na který by se dal zapsat.

Vždy UDP, vždy jeden port

WireGuard běží jen přes UDP na portu, který si provozovatel zvolí. Nesnaží se vypadat jako HTTPS a přes TCP běžet neumí. To je skutečné omezení: na síti, která blokuje UDP nebo škrtí všechno, co nevypadá jako web, se WireGuard nepřipojí, zatímco tunel OpenVPN na TCP 443 by mohl. Protokol nemaskujeme a netvrdíme, že fungujeme zevnitř sítí, které VPN aktivně blokují. Kdo se z takové sítě potřebuje dostat, potřebuje vrstvu maskování, a to je jiný produkt s jinými kompromisy.

Statický klíč na zařízení

Každé zařízení, které si v Pevnosti zaregistrujete, má vlastní pár klíčů vygenerovaný na zařízení; soukromý klíč ho nikdy neopustí a my vidíme jen veřejnou půlku. Ten klíč je statický po celou dobu života záznamu zařízení. TLS vrstva OpenVPN renegociuje a umí střídat symetrické klíče podle svého plánu; WireGuard střídá klíče relace protokolárně každých pár minut, ale klíč identity zůstává. Pro soukromí to znamená: kdo získá soukromý klíč vašeho zařízení, může se za to zařízení vydávat, dokud ho v účtu nesmažete. Smazat zařízení a přidat nové trvá minutu a nic nestojí. Když ztratíte telefon, udělejte to.

Čeho se vzdáváte

Proč si myslíme, že je ta výměna správná

VPN pro soukromí prodává jedinou věc: tvrzení provozovatele o tom, co si nenechává. To tvrzení má cenu jen tehdy, když se dá ověřit proti skutečnému chování protokolu, skutečné konfiguraci serveru a kódu, který na něm běží. S WireGuardem je ten řetězec dost krátký, aby se dal sledovat od začátku do konce: protokol je malý a veřejný, konfigurace našich uzlů je zveřejněná, server drží minimum stavu, které protokol potřebuje, a nic, co by po něm někdo mohl později chtít vydat. Raději vám poctivě řekneme, že zevnitř nepřátelské firemní sítě nefungujeme, než abychom do návrhu přidali druhý protokol, který s sebou nese přihlášení, relaci a stavový soubor. Instalaci oficiálních klientů popisuje návod na nastavení, kontrolu, že tunel nese všechno, návod na test úniku.