Během několika posledních měsíců pracoval tým Proton VPN na Proton protocols, což je nový základ kódu klientského protokolu VPN. Tato nová architektura kódu, interně známá pod kódovým označením ProTUN, je napsaná v jazyce Rust. Přestože jsme kryptografický kód převzali z projektu BoringTun(nové okno) společnosti Cloudflare, kompletně přepracovaná architektura je dílem Protonu.

Proč potřebujeme nové jádro VPN

WireGuard® je nejmodernější VPN protokol, který je stejně bezpečný jako OpenVPN, ale rychlejší a výkonnější. Proto začínáme z našich oficiálních aplikací odebírat podporu pro OpenVPN, abychom se místo toho mohli soustředit na WireGuard.

Naše aplikace však v současné době používají oficiální implementaci wireguard-go protokolu WireGuard. A je to skvělá implementace s elegantně minimalistickým designem, díky němuž je rychlá, bezpečná a snáze se audituje než tradiční VPN protokoly.

Služba wireguard-go se však špatně integruje s jazyky, které nativně používáme k vývoji Proton VPN na různých námi podporovaných platformách (například Kotlin na Androidu a Swift na iOS). To zpomaluje vývoj, komplikuje ladění a přináší problémy se stabilitou.

Proton protocols tyto problémy řeší.

Proton protocols je nový klientský VPN framework založený na protokolu WireGuard. Protože je napsaný v jazyce Rust and navržený jako sdílené, rozšiřitelné jádro, lze ProTUN konzistentně implementovat napříč platformami a přizpůsobit jej různým síťovým prostředím. To nám umožní rychleji diagnostikovat problémy, zlepšit stabilitu a zabudovat pokročilé funkce přímo do VPN stacku.

Co je nejdůležitější, Proton protocols nám poskytuje flexibilitu pro rychlou reakci na cenzuru a síťové rušení, což je oblast, od níž si z dlouhodobého hlediska slibujeme největší přínos.

Pod kapotou

Šifrování síťového provozu pomocí nového jádra WireGuard

Srdcem projektu Proton protocols je libpvpnclient, čistá, samostatná implementace protokolu WireGuard napsaná v jazyce Rust. Úkol této knihovny je jednoduchý, ale zásadní: šifrovat váš internetový síťový provoz a udržovat vaše připojení v bezpečí.

Od wireguard-go se liší tím, jak je postaven. Zatímco wireguard-go je jednoduchý klient WireGuard, libpvpnclient představuje zcela nový framework, na kterém můžeme vyvíjet nové pokročilé funkce.

A namísto těsného propojení s konkrétním operačním systémem je libpvpnclient navržen jako čisté, na platformě nezávislé jádro. To nám umožňuje používat stejnou vysoce kvalitní implementaci všude – na počítačích, mobilních zařízeních i jinde. Toto oddělení znamená v zákulisí obrovský rozdíl. Umožňuje nám:

  • Testovat a ladit složité okrajové případy v kontrolovaném a opakovatelném prostředí
  • Zavádět vylepšení rychleji a konzistentněji napříč platformami
  • Experimentovat s novými metodami, jak čelit cenzuře a blokování síťového provozu

Pro vás to znamená rychlejší aktualizace, méně problémů specifických pro konkrétní platformy a VPN, která se rychleji přizpůsobuje měnícím se síťovým podmínkám a metodám cenzury. Samotný ProTUN je náš název pro wrapper (obal) kolem knihovny libpvpnclient, který přizpůsobuje tuto knihovnu napsanou v jazyce Rust každému operačnímu systému, jejž podporujeme.

Funguje ruku v ruce s nástrojem LocalAgent. Jedná se o náš interní řídicí kanál, který nám umožňuje implementovat ověření na základě certifikátů a který jsme nedávno zjednodušili a přepsali do jazyka Rust.

Toto nové jádro VPN je nyní k dispozici k vyzkoušení jako funkce v rámci bety (předběžného přístupu) na následujících platformách:

Snazší přístup k serverům Proton VPN

Pracujeme také na druhé fázi Proton protocols. Tato flexibilní síťová vrstva s kódovým označením muon bezpečně připojuje naše aplikace k VPN API Protonu, a to i v situacích, kdy je samotné API Protonu cenzurováno.

Předtím než může VPN chránit váš síťový provoz, musí se nejprve bezpečně připojit k API Protonu. A to je stále obtížnější. V některých zemích a sítích jsou připojení k API blokována nebo sledována na úrovni DNS, případně identifikována kontrolou názvů serverů (technika známá jako SNI snooping).

Abychom to vyřešili, vyvíjíme muon, novou bránu mezi našimi aplikacemi a API Protonu. Muon, který je z důvodu bezpečnosti a výkonu opět napsán v jazyce Rust, zpracovává úplně první síťové požadavky vaší aplikace a následně je může bezpečně směrovat do protokolu WireGuard od Proton VPN (z dlouhodobého hlediska tato funkce nahradí naše stávající řešení proti cenzuře využívající alternativní směrování(nové okno)).

V praxi to znamená, že od okamžiku, kdy otevřete aplikaci Proton VPN v zemi, kde je přístup cenzurován, bude vaše komunikace s API Protonu již chráněna (a to ještě před plným navázáním VPN připojení na úrovni systému). V restriktivních zemích pak váš ISP ani nepozná, že se připojujete k API Protonu.

Tato ochrana bude automatická a pro vás neviditelná, což znamená, že v cenzurovaných zemích snáze získáte funkční připojení. Muon je při překonávání cenzury natolik užitečný, že jej budeme používat ve všech aplikacích Protonu (nikoli pouze ve VPN), což vám od samého počátku poskytne integrovanou ochranu proti cenzuře napříč celým naším ekosystémem. Brzy jej začneme zavádět, tak nás nepřestávejte sledovat.

Pevný základ pro to, co přijde dál

libpvpnclient (s wrapperem Proton protocols) a muon společně tvoří novou platformu, která našim inženýrům poskytuje mnohem větší flexibilitu. To nám umožňuje bezpečně experimentovat se zlepšováním stability připojení, spotřeby baterie a odolnosti a připravuje půdu pro budoucí technologie, jako jsou silnější metody proti cenzuře a postkvantová kryptografie.

Považujeme to za významný krok kupředu k tomu, aby byl internet pro všechny dostupnější, spolehlivější a soukromější. A to je teprve začátek. Těšíme se, kam tento nový základ posune Proton VPN v roce 2026 a v dalších letech.

“WireGuard” je registrovaná ochranná známka(nové okno) Jasona A. Donenfelda.