Pod lupą
Skąd się biorą protokoły VPN i co je zdradza w sieci

Spis treści
Gdy dodajesz połączenie VPN w ustawieniach Windows, system prosi o wybór typu: PPTP, L2TP/IPsec, SSTP albo IKEv2. To protokoły VPN, które system operacyjny zna sam, bez dodatkowego oprogramowania. Aplikacje usług VPN działają zwykle na innych. Od tego, gdzie protokół jest wbudowany, zależy, kto go konfiguruje, przez jakie sieci przechodzi i po czym można go rozpoznać.
Protokół to nie to samo co szyfr
Szyfr to algorytm, który zamienia twoje dane w bajty bezużyteczne dla każdego, kto nie ma klucza. Najczęściej to AES albo ChaCha20, te same szyfry, które chronią zwykłe strony w HTTPS. Całą resztą zajmuje się protokół. Określa, jak każda ze stron połączenia udowadnia, że jest tym, za kogo się podaje (hasłem, certyfikatem albo kluczem), jak obie uzgadniają klucz sesji, którego portu używają pakiety i co zawierają ich nieszyfrowane nagłówki.
Dlatego dwa protokoły z tym samym szyfrem mogą zachowywać się w sieci zupełnie inaczej. Różnica zwykle nie leży w szyfrze, tylko we wszystkim wokół niego. Jak zaszyfrowane zapytanie dociera do strony, opisujemy w tekście o tym, czym jest VPN.
Protokoły wbudowane w system
Wbudowany protokół nie wymaga instalowania niczego. Adres serwera, dane logowania i klucz wpisujesz wprost w ustawieniach systemu, dlatego firmy często korzystają z takich połączeń, a profil VPN rozdaje administrator. Każdy system obsługuje inny zestaw.
| System | Co dodasz bez aplikacji | Warto wiedzieć |
|---|---|---|
| Windows | PPTP, L2TP/IPsec, SSTP, IKEv2 | W trybie automatycznym Windows próbuje ich po kolei, zaczynając od bezpieczniejszych |
| iPhone, iPad i Mac | L2TP, IPsec, IKEv2 | Firma Apple usunęła PPTP w 2016 roku, od iOS 10 i macOS Sierra |
| Android 12 i nowsze | Tylko warianty IKEv2/IPsec | W ustawieniach systemu nie da się już utworzyć połączenia PPTP ani L2TP |
PPTP, przy którym silne hasło nie pomoże
PPTP opublikowano jako RFC 2637 w 1999 roku, a jego ochrona opiera się na logowaniu MS-CHAPv2. W 2012 roku na konferencji DEF CON rozebrano to logowanie na części. Żeby złamać przechwycone logowanie, wystarczy znaleźć jeden 56-bitowy klucz DES, a długie, skomplikowane hasło niczego nie zmienia. Badacze radzili wprost, żeby traktować ruch PPTP jak nieszyfrowany. Cztery lata później firma Apple usunęła PPTP ze swoich systemów. Windows nadal ma klienta, choć w 2024 roku Microsoft wpisał PPTP na listę funkcji wycofywanych z Windows Server.
L2TP/IPsec i kłopot z NAT
L2TP (RFC 2661, także z 1999 roku) tylko buduje tunel, a szyfrowaniem zajmuje się za niego IPsec, dlatego w ustawieniach widać je w parze (RFC 3193, 2001). Windows oferuje dwie wersje tej pary, z certyfikatem i z kluczem wstępnym. Największy kłopot sprawia NAT, czyli routery, które chowają kilka urządzeń za jednym adresem. Pakiety IPsec trzeba wtedy opakować w UDP na porcie 4500. Jeśli za NAT stoi sam serwer, Windows domyślnie nie nawiąże połączenia, a żeby to zmienić, artykuł pomocy technicznej Microsoftu 926179 każe edytować rejestr.
SSTP, opcja tylko dla Windows
SSTP pojawił się w Windows Vista SP1 i Windows Server 2008. Przenosi PPP, ten sam protokół warstwy łącza, na którym zbudowano PPTP, wewnątrz HTTPS na porcie TCP 443. Ani systemy Apple, ani Android nie mają wbudowanego klienta SSTP. To także tunel przez TCP, a na łączu, które gubi pakiety, takie tunele zwalniają (dlaczego, wyjaśniamy niżej).
IKEv2, który ma każdy system
Spośród wbudowanych protokołów tylko IKEv2 jest we wszystkich systemach z tabeli. Opisuje go RFC 7296 (2014). Serwer zwykle potwierdza swoją tożsamość certyfikatem, a ty logujesz się certyfikatem albo nazwą użytkownika i hasłem przez EAP. Negocjacja zaczyna się na porcie UDP 500, a jeśli obie strony wykryją po drodze NAT, przechodzą na port 4500. Rozszerzenie MOBIKE (RFC 4555) pozwala sesji przetrwać zmianę adresu IP urządzenia bez ponownego logowania. Druga strona medalu jest taka, że bez UDP IKEv2 w ogóle nie działa.
Protokoły, które wymagają aplikacji
Pozostałych protokołów system sam nie zna. Dostarcza je osobny program, na przykład klient OpenVPN, aplikacja usługi VPN albo oprogramowanie routera. Zaleta jest taka, że mogą się zmieniać z każdą aktualizacją tego programu, bez czekania na nową wersję systemu.
OpenVPN
OpenVPN to otwarte oprogramowanie autorstwa Jamesa Yonana, wydane po raz pierwszy w 2001 roku. Połączenie z serwerem zwykle opisuje jeden plik .ovpn z adresem, portem i kluczami, który importujesz do klienta na komputerze, telefonie albo routerze. Klucze są uzgadniane przez TLS, a dane idą przez UDP lub TCP, domyślnie na porcie 1194. W pracy zaprezentowanej na USENIX Security w 2022 roku badacze współpracujący z dostawcą internetu, który ma milion abonentów, wyłowili ponad 85% przepływów OpenVPN niemal bez fałszywych alarmów. Wystarczyły im wzorzec bajtów, rozmiary pakietów i odpowiedzi serwera. Właśnie tak wyłapali też 34 z 41 konfiguracji sprzedawanych jako zaciemnione.
WireGuard
WireGuard to nowoczesny protokół pomyślany jako szybsza i prostsza alternatywa dla IPsec i OpenVPN. Do wymiany kluczy używa Curve25519, dane chroni ChaCha20 i Poly1305, a pakiety idą wyłącznie przez UDP. WireGuard jest częścią jądra Linuksa od wersji 5.6, wydanej wiosną 2020 roku. Obsługuje go oprogramowanie routerów, takie jak OpenWrt i KeeneticOS (od wersji 3.3), a oficjalne aplikacje są na Windows, macOS, iOS i Androida. Pierwsza wiadomość każdej sesji ma zawsze ten sam typ i rozmiar, więc łatwo ją wypatrzyć w sieci. W Rosji WireGuard jest blokowany od 2023 roku. W sierpniu tamtego roku na mniej więcej dobę przestał łączyć się w sieciach komórkowych, razem z OpenVPN, a pod koniec września zaczęła się druga fala blokad.
Shadowsocks
Shadowsocks pojawił się w 2012 roku jako szyfrowany zamiennik proxy SOCKS (czym proxy różni się od VPN, opisujemy w tekście VPN a proxy). Wymaga bardzo niewielkiej konfiguracji, bo wystarczą adres, port, hasło i szyfr. Jego strumień nie ma nieszyfrowanych nagłówków, a dla filtra to raczej znak rozpoznawczy niż kamuflaż. Zwykły ruch prawie zawsze zawiera trochę czytelnego tekstu, więc strumień czysto losowych bajtów się wyróżnia. Praca z USENIX Security 2023 opisuje, jak system filtrowania w Chinach od listopada 2021 roku odsiewa takie strumienie po odsetku bitów równych 1 i znaków drukowalnych. Reguła ta objęła też Shadowsocks.
VLESS + REALITY
Protokół VLESS pojawił się w sierpniu 2020 roku, w V2Ray 4.27.0. Rozpoznaje każdego użytkownika po UUID, długim ciągu liter i cyfr, a w typowej konfiguracji jego własne szyfrowanie jest wyłączone, więc dane chroni zewnętrzna warstwa TLS. REALITY decyduje o tym, jak ta warstwa wygląda. Serwer ma parę kluczy X25519, a klient zna klucz publiczny i krótki identyfikator shortId. W ustawieniach serwera wskazana jest cudza, prawdziwa strona internetowa, a uzgadnianie TLS wygląda jak wizyta na tej stronie. Jeśli połączenie nie przejdzie sprawdzenia klucza, serwer przekazuje je tej stronie i to ona odpowiada.
XHTTP
XHTTP to sposób przesyłania danych z projektu Xray, w 2024 roku znany jako SplitHTTP. Z zewnątrz wygląda jak zwykła wymiana ze stroną internetową, czyli zapytania i odpowiedzi HTTP, a większość pośredniczących urządzeń HTTP i wiele sieci CDN przepuszcza taki ruch. Wysyłanie i pobieranie mogą nawet iść różnymi drogami, na przykład jedno przez CDN, a drugie bezpośrednio.
Hysteria2
Hysteria2 działa przez UDP na własnym wariancie QUIC. Z zewnątrz wygląda jak HTTP/3, najnowsza wersja protokołu, przez który ładują się strony. Klient loguje się jednym zapytaniem HTTP/3 z hasłem w nagłówku. Jeśli hasło jest błędne, serwer ma zachować się jak zwykły serwer WWW albo zwrócić odpowiedź prawdziwej strony, żeby nic nie zdradzało proxy. Twórcy zbudowali Hysteria2 z myślą o łączach z dużą utratą pakietów, ale tam, gdzie UDP jest całkiem zablokowane, nie przejdzie, tak samo jak IKEv2.
Co przeszkadza w połączeniu
Sieć przepuszcza tylko ruch WWW
Hotele, centra konferencyjne i niektóre biura wypuszczają na zewnątrz tylko ruch WWW, na portach TCP 80 i 443. IKEv2 i L2TP/IPsec ze swoimi portami UDP 500 i 4500 się tam nie połączą, podobnie jak OpenVPN na standardowym porcie 1194. Przechodzą SSTP, OpenVPN ustawiony na TCP 443 i protokoły, które korzystają z tego samego portu i wyglądają jak HTTPS. Właśnie z myślą o takich sieciach Microsoft stworzył SSTP.
Protokół rozpoznany po wzorcu
Protokoły projektowane dla sieci firmowych używają stałych portów i otwierają sesje w rozpoznawalny sposób. Sprzęt do głębokiej inspekcji pakietów (DPI) u dostawcy sprawdza te cechy na bieżąco i może odciąć jeden protokół, nie ruszając reszty internetu. Jak pokazuje praca o OpenVPN, nie trzeba przy tym niczego odszyfrowywać. Dlatego nowsze protokoły starają się wyglądać jak HTTPS do znanej strony albo jak HTTP/3, a Shadowsocks, jak już wiesz, zdradza zbyt równomierna losowość.
Utrata pakietów i TCP
TCP pilnuje, żeby każdy pakiet dotarł, i wysyła ponownie te, które zginęły. Gdy sam tunel działa przez TCP, jak SSTP i OpenVPN w trybie TCP, niesie w sobie inne połączenia TCP z ich własnymi retransmisjami. Na łączu, które gubi pakiety, obie warstwy czekają na te same dane i wysyłają je ponownie, a opóźnienie rośnie skokami. Klasyczny tunel lepiej więc puszczać przez UDP, a TCP zostawić na sieci, w których UDP jest zablokowane.
Nowsze protokoły przenoszą strumienie, a nie pakiety. Aplikacja na urządzeniu sama przejmuje połączenia TCP programów i wysyła przez tunel tylko ich zawartość, więc podwójnych retransmisji nie ma. Ruch UDP z gier i rozmów wewnątrz transportu TCP, takiego jak VLESS + REALITY, nadal musi jednak czekać, aż zgubiony fragment przyjdzie ponownie. Na takich łączach płynniej działa transport oparty na UDP, taki jak Hysteria2.
Na czym działa Bebra
Bebra łączy się przez VLESS + REALITY, XHTTP, Hysteria2 i Shadowsocks. Aplikacja sama wybiera protokół i trasę, a jeśli trasa przestaje działać, przechodzi na inną, więc protokołu nie musisz wskazywać samodzielnie. Więcej przeczytasz na stronie o technologiach.
Na routery Keenetic, OpenWrt i MikroTik jest aplikacja Bebra, która działa na samym routerze. Dla modeli, które obsługują tylko wbudowane protokoły, w sekcji „Router” panelu użytkownika na stronie jest zakładka „Inne routery” z OpenVPN (UDP i TCP) oraz PPTP. Z tych dwóch tylko OpenVPN rzetelnie szyfruje dane.
Każdy plan obejmuje wszystkie 187 krajów. Okres próbny za 10 ₽ pokaże, jak połączenie zachowuje się w twojej sieci. 3 dni pełnego dostępu, potem 500 ₽ miesięcznie. Subskrypcja odnawia się automatycznie.
Pytania i odpowiedzi
Czy protokół to to samo co szyfr?
Nie. Szyfr, taki jak AES czy ChaCha20, sprawia, że bez klucza danych nie da się odczytać. Protokół ustala wszystko wokół: jak obie strony się rozpoznają, jak uzgadniają klucz, którego portu używają pakiety i jak wyglądają. Dlatego protokoły z tym samym szyfrem mogą zachowywać się w sieci zupełnie inaczej.
Dlaczego VPN, który działa w domu, nie łączy się w hotelu?
Sieci dla gości często wypuszczają tylko ruch WWW, na portach TCP 80 i 443. IKEv2 i L2TP/IPsec na portach UDP 500 i 4500, a także OpenVPN na porcie 1194, tam nie przechodzą. SSTP, OpenVPN przez TCP 443 i protokoły, które wyglądają jak HTTPS, zwykle przechodzą.
Dlaczego na Androidzie nie mogę dodać PPTP ani L2TP?
Od Androida 12 ustawienia systemu pozwalają tworzyć tylko połączenia IKEv2/IPsec. Do OpenVPN i innych protokołów potrzebna jest osobna aplikacja.
Czy długie hasło może zabezpieczyć PPTP?
Nie. Słabym punktem PPTP jest samo logowanie MS-CHAPv2. Przechwycone logowanie da się złamać, sprawdzając wszystkie 56-bitowe klucze, a siła hasła nie zmienia tego, ile to trwa. Najlepiej traktować ruch PPTP jak jawny.




