Ten artykuł został zaktualizowany, aby uwzględnić protokoły WireGuard® i Stealth VPN.
Wyjaśniamy, czym jest protokół VPN i co robi. Porównujemy również mocne i słabe strony najpopularniejszych protokołów, w tym OpenVPN, WireGuard®, IKEv2, PPTP i L2TP.
Zanim zaufasz VPN, że ochroni Twoją aktywność w internecie, musisz upewnić się, że wprowadził niezbędne zabezpieczenia. Ocena bardziej technicznych aspektów VPN może być trudna. Często oznacza to zmaganie się ze zrozumieniem zupy alfabetycznej różnych akronimów.
Rozpoczęliśmy serię postów, w których wyjaśniamy niektóre z naszych środków bezpieczeństwa, aby ludzie mogli podejmować bardziej świadome decyzje. Nasz pierwszy post wyjaśniał, co oznacza HMAC SHA-384. Ten post zbada protokoły VPN, co robią, jak działają i co oznacza, jeśli usługa VPN używa na przykład OpenVPN over L2TP.
Ten post zagłębia się w niektóre z wewnętrznych mechanizmów działania sieci VPN. Chociaż staramy się wyjaśniać terminy jasno, ten post będzie bardziej przydatny, jeśli masz pewną podstawową wiedzę techniczną. Jeśli nie jesteś pewien, jak działa VPN, pomocne może być przeczytanie artykułu podlinkowanego poniżej przed kontynuowaniem.
Protokoły VPN
Sieci VPN polegają na tak zwanym „tunelowaniu”, aby stworzyć prywatną sieć między dwoma komputerami przez internet. Protokół VPN, znany również jako „protokół tunelowania”, to instrukcje, których używa Twoje urządzenie do negocjowania bezpiecznego, zaszyfrowanego połączenia, które tworzy sieć między Twoim komputerem a innym.
Protokół VPN składa się zazwyczaj z dwóch kanałów: kanału danych i kanału kontrolnego. Kanał kontrolny odpowiada za wymianę kluczy, uwierzytelnianie i wymianę parametrów (takich jak dostarczanie IP lub tras i serwerów DNS). Kanał danych, jak można się domyślić, odpowiada za transport danych ruchu internetowego. Razem te dwa kanały ustanawiają i utrzymują bezpieczny tunel VPN. Jednak aby Twoje dane mogły przejść przez ten bezpieczny tunel, muszą zostać hermetyzowane.
Hermetyzacja ma miejsce, gdy protokół VPN pobiera bity danych, znane jako pakiety danych, z Twojego ruchu internetowego i umieszcza je wewnątrz innego pakietu. Ta dodatkowa warstwa jest konieczna, ponieważ konfiguracje protokołów, których używa Twój VPN wewnątrz kanału danych, niekoniecznie są takie same, jak te używane przez zwykły internet. Dodatkowa warstwa pozwala Twoim informacjom podróżować przez tunel VPN i dotrzeć do właściwego miejsca docelowego.
To wszystko jest nieco techniczne, więc ogólny przegląd: Kiedy łączysz się z serwerem VPN, VPN używa swojego kanału kontrolnego do ustanowienia współdzielonych kluczy i połączenia między Twoim urządzeniem a serwerem. Po ustanowieniu tego połączenia kanał danych rozpoczyna przesyłanie ruchu internetowego. Kiedy VPN omawia mocne i słabe strony swojej wydajności lub mówi o „bezpiecznym tunelu VPN”, mówi o swoim kanale danych. Po ustanowieniu tunelu VPN kanał kontrolny ma za zadanie utrzymanie stabilności połączenia.
PPTP
Point-to-Point Tunneling Protocol (PPTP) to jeden ze starszych protokołów VPN. Początkowo został opracowany przy wsparciu firmy Microsoft, dlatego wszystkie wersje systemu Windows i większość innych systemów operacyjnych mają natywne wsparcie dla PPTP.
PPTP wykorzystuje protokół Point-to-Point Protocol (PPP), który sam w sobie jest jak proto-VPN. Mimo że jest dość stary, PPP może uwierzytelnić użytkownika (zazwyczaj za pomocą MS-CHAP v2) i samodzielnie kapsułkować dane, co pozwala mu obsługiwać obowiązki zarówno kanału sterowania, jak i kanału danych. Jednak PPP nie jest trasowalny; nie może być samodzielnie przesyłany przez internet. Dlatego PPTP ponownie kapsułkuje dane zakapsułkowane w PPP, używając ogólnego kapsułkowania routingu (GRE), aby ustanowić swój kanał danych.
Niestety, PPTP nie posiada żadnych własnych funkcji szyfrowania ani uwierzytelniania. Polega na PPP w celu realizacji tych funkcji — co jest problematyczne, ponieważ system uwierzytelniania PPP i szyfrowanie, które Microsoft do niego dodał (MPPE), są słabe.
Szyfrowanie: Protokół Microsoft Point-to-Point Encryption (MPPE(nowe okno)), który wykorzystuje algorytm RSA RC4. Maksymalna siła MPPE to klucze 128-bitowe.
Prędkość: Ponieważ jego protokoły szyfrowania nie wymagają dużej mocy obliczeniowej (RC4 i tylko klucze 128-bitowe), PPTP utrzymuje wysokie prędkości połączenia.
Znane luki: PPTP ma liczne znane luki w zabezpieczeniach od 1998 roku. Jedna z najpoważniejszych luk wykorzystuje niekapsułkowane uwierzytelnianie MS-CHAP v2 do przeprowadzenia ataku typu man-in-the-middle (MITM).
Porty zapory sieciowej: Port TCP 1723. Użycie GRE przez PPTP oznacza, że nie może on przejść przez zaporę sieciową z translacją adresów sieciowych (NAT) i jest jednym z najłatwiejszych do zablokowania protokołów VPN. (Zapora NAT pozwala kilku osobom współdzielić jeden publiczny adres IP w tym samym czasie. Jest to ważne, ponieważ większość indywidualnych użytkowników nie posiada własnego adresu IP).
Stabilność: PPTP nie jest tak niezawodny, ani nie odzyskuje połączenia tak szybko jak OpenVPN przy niestabilnych połączeniach sieciowych.
Wniosek: Jeśli martwisz się o bezpieczeństwo swoich danych, nie ma powodu, aby używać PPTP. Nawet Microsoft zalecił(nowe okno) swoim użytkownikom przejście na inne protokoły VPN w celu ochrony danych.
L2TP/IPSec
Layer 2 Tunneling Protocol (L2TP) miał zastąpić PPTP. L2TP może samodzielnie obsługiwać uwierzytelnianie i wykonuje kapsułkowanie UDP, więc w pewnym sensie może tworzyć zarówno kanał sterowania, jak i danych. Jednak podobnie jak PPTP, sam nie dodaje żadnego szyfrowania. Chociaż L2TP może przesyłać PPP, aby uniknąć nieodłącznych słabości PPP, L2TP jest zwykle łączony z pakietem Internet Protocol Security (IPSec) w celu obsługi szyfrowania i uwierzytelniania.
IPSec to elastyczne ramy, które mogą być stosowane w sieciach VPN, a także w przekierowaniu i bezpieczeństwie na poziomie aplikacji. Kiedy łączysz się z serwerem VPN za pomocą L2TP/IPSec, IPSec negocjuje klucze współdzielone i uwierzytelnia połączenie bezpiecznego kanału sterowania między Twoim urządzeniem a serwerem.
Następnie IPSec kapsułkuje dane. Kiedy IPSec wykonuje to kapsułkowanie, stosuje nagłówek uwierzytelniania i używa Encapsulation Security Payload (ESP). Te specjalne nagłówki dodają podpis cyfrowy do każdego pakietu, dzięki czemu napastnicy nie mogą manipulować Twoimi danymi bez zaalarmowania serwera VPN.
ESP szyfruje zakapsułkowane pakiety danych, aby żaden napastnik nie mógł ich odczytać (i, w zależności od ustawień VPN, również uwierzytelnia pakiet danych). Gdy IPSec zakapsułkuje dane, L2TP ponownie kapsułkuje te dane przy użyciu UDP, aby mogły przejść przez kanał danych.
Kilka protokołów VPN, w tym IKEv2, korzysta z szyfrowania IPSec. Choć ogólnie bezpieczny, IPSec jest bardzo złożony, co może prowadzić do słabej implementacji. L2TP/IPSec jest obsługiwany w większości głównych systemów operacyjnych.
Szyfrowanie: L2TP/IPSec może używać szyfrowania 3DES lub AES, chociaż biorąc pod uwagę, że 3DES jest obecnie uważany za słaby szyfr, jest rzadko używany.
Prędkość: L2TP/IPSec jest zazwyczaj wolniejszy niż OpenVPN przy użyciu tej samej siły szyfrowania. Wynika to głównie z faktu, że szyfrowanie AES używane przez OpenVPN jest akcelerowane sprzętowo na większości popularnych procesorów.
Znane luki: L2TP/IPSec to zaawansowany protokół VPN, ale ujawniona prezentacja NSA(nowe okno) sugeruje, że agencja wywiadowcza znalazła już sposoby na manipulowanie nim. Ponadto, ze względu na złożoność IPSec, wielu dostawców VPN używało kluczy wstępnych (pre-shared keys)(nowe okno) do konfiguracji L2TP/IPSec.
Porty zapory sieciowej: Port UDP 500 jest używany do wstępnej wymiany kluczy, port UDP 5500 do obejścia NAT, a port UDP 1701 do umożliwienia ruchu L2TP. Ponieważ używa tych stałych portów, L2TP/IPSec jest łatwiejszy do zablokowania niż niektóre inne protokoły.
Stabilność: L2TP/IPSec nie jest tak stabilny, jak niektóre z bardziej zaawansowanych protokołów VPN. Jego złożoność może prowadzić do częstych utrat połączenia sieciowego.
Wniosek: Bezpieczeństwo L2TP/IPSec jest niewątpliwie ulepszeniem w stosunku do PPTP, ale może nie ochronić Twoich danych przed zaawansowanymi napastnikami. Jego mniejsza prędkość i niestabilność oznaczają również, że użytkownicy powinni rozważyć użycie L2TP/IPSec tylko wtedy, gdy nie ma innych opcji.
IKEv2/IPSec
Internet Key Exchange version 2 (IKEv2) to stosunkowo nowy protokół tunelowania, który w rzeczywistości jest częścią samego pakietu IPSec. Microsoft i Cisco współpracowały przy tworzeniu oryginalnego protokołu IKEv2/IPSec, ale obecnie istnieje wiele iteracji o otwartym kodzie źródłowym.
IKEv2 ustanawia kanał sterowania poprzez uwierzytelnienie bezpiecznego kanału komunikacyjnego między Twoim urządzeniem a serwerem VPN przy użyciu algorytmu wymiany kluczy Diffiego–Hellmana(nowe okno). IKEv2 następnie wykorzystuje ten bezpieczny kanał komunikacyjny do ustanowienia tzw. asocjacji bezpieczeństwa, co po prostu oznacza, że Twoje urządzenie i serwer VPN używają tych samych kluczy szyfrowania i algorytmów do komunikacji.
Gdy asocjacja bezpieczeństwa jest już gotowa, IPSec może utworzyć tunel, zastosować uwierzytelnione nagłówki do pakietów danych i zakapsułkować je za pomocą ESP. (Ponownie, w zależności od użytego szyfru, ESP może obsługiwać uwierzytelnianie wiadomości). Zakapsułkowane pakiety danych są następnie ponownie kapsułkowane w UDP, aby mogły przejść przez tunel.
IKEv2/IPSec jest wspierany w systemie Windows 7 i nowszych wersjach, macOS 10.11 i nowszych wersjach, a także w większości mobilnych systemów operacyjnych.
Szyfrowanie: IKEv2/IPSec może używać szeregu różnych algorytmów kryptograficznych, w tym AES, Blowfish i Camellia. Obsługuje szyfrowanie 256-bitowe.
Prędkość: IKEv2/IPSec jest szybkim protokołem VPN, chociaż zazwyczaj nie tak szybkim jak akcelerowany sprzętowo OpenVPN lub WireGuard.
Znane luki: IKEv2/IPSec nie ma znanych słabości, a prawie wszyscy eksperci ds. bezpieczeństwa IT uważają go za bezpieczny, gdy jest prawidłowo zaimplementowany z Perfect Forward Secrecy.
Porty zapory sieciowej: Port UDP 500 jest używany do wstępnej wymiany kluczy, a port UDP 4500 do obejścia NAT. Ponieważ zawsze używa tych portów, IKEv2/IPSec jest łatwiejszy do zablokowania niż niektóre inne protokoły.
Stabilność: IKEv2/IPSec obsługuje protokół Mobility and Multihoming, co czyni go bardziej niezawodnym niż większość innych protokołów VPN, zwłaszcza dla użytkowników, którzy często przełączają się między różnymi sieciami Wi-Fi.
Wniosek: Dzięki silnemu bezpieczeństwu, dużym prędkościom i zwiększonej stabilności, IKEv2/IPSec jest dobrym protokołem VPN. Jednak niedawne wprowadzenie WireGuard oznacza, że jest niewiele powodów, aby wybierać go zamiast nowszego protokołu VPN.
OpenVPN
OpenVPN to protokół tunelowania o otwartym kodzie źródłowym. W przeciwieństwie do protokołów VPN opartych na pakiecie IPSec, OpenVPN wykorzystuje SSL/TLS do obsługi wymiany kluczy i ustanowienia kanału sterowania oraz unikalny protokół OpenVPN do obsługi kapsułkowania i kanału danych.
Oznacza to, że zarówno jego kanał danych, jak i kanał sterowania są zaszyfrowane, co czyni go nieco wyjątkowym w porównaniu do innych protokołów VPN. Jest wspierany we wszystkich głównych systemach operacyjnych za pośrednictwem oprogramowania stron trzecich.
Szyfrowanie: OpenVPN może używać dowolnego z różnych algorytmów kryptograficznych zawartych w bibliotece OpenSSL(nowe okno) do szyfrowania swoich danych, w tym AES, RC5 i Blowfish.
Dowiedz się więcej o szyfrowaniu AES
Prędkość: Przy użyciu UDP, OpenVPN utrzymuje szybkie połączenia, chociaż IKEv2/IPSec i WireGuard są ogólnie uznawane za szybsze.
Znane luki: OpenVPN nie ma znanych luk w zabezpieczeniach, o ile jest zaimplementowany z wystarczająco silnym algorytmem szyfrowania i Perfect Forward Secrecy. Jest to standard branżowy dla sieci VPN dbających o bezpieczeństwo danych.
Porty zapory sieciowej: OpenVPN można skonfigurować do działania na dowolnym porcie UDP lub TCP, w tym na porcie TCP 443, który obsługuje cały ruch sieciowy HTTPS i sprawia, że jest on bardzo trudny do zablokowania.
Stabilność: OpenVPN jest ogólnie bardzo stabilny i posiada tryb TCP do pokonywania cenzury.
Wniosek: OpenVPN jest bezpieczny, niezawodny i ma otwarty kod źródłowy. Jest to jeden z najlepszych obecnie używanych protokołów VPN, zwłaszcza dla użytkowników dbających przede wszystkim o bezpieczeństwo danych. Jego zdolność do routingu połączeń przez TCP (patrz niżej) czyni go również dobrym wyborem do omijania cenzury. Jednakże, chociaż brakuje mu przewagi OpenVPN w zakresie antycenzury, WireGuard jest również bezpieczny i szybszy niż OpenVPN.
WireGuard®
WireGuard(nowe okno) to protokół VPN o otwartym kodzie źródłowym, który jest bezpieczny, szybki i wydajny.
Szyfrowanie: WireGuard używa ChaCha20 do szyfrowania symetrycznego (RFC7539(nowe okno)), Curve25519 do anonimowej wymiany kluczy, Poly1305 do uwierzytelniania danych i BLAKE2s do tworzenia kryptograficznych skrótów (RFC7693(nowe okno)). Automatycznie obsługuje Perfect Forward Secrecy.
Prędkość: WireGuard wykorzystuje nowe, szybkie algorytmy kryptograficzne. Na przykład ChaCha20 jest znacznie prostszy niż szyfry AES o jednakowej sile i prawie tak samo szybki, mimo że większość urządzeń ma teraz instrukcje dla AES wbudowane w sprzęt. W rezultacie WireGuard oferuje szybkie prędkości połączenia i ma niskie wymagania procesora.
Znane luki: WireGuard przeszedł różne formalne weryfikacje, a aby zostać włączonym do jądra Linux, baza kodu WireGuard Linux została niezależnie zbadana(nowe okno) przez stronę trzecią.
Porty zapory sieciowej: WireGuard można skonfigurować do używania dowolnego portu i zazwyczaj działa przez UDP. Jednak Proton VPN oferuje również WireGuard TCP w większości naszych aplikacji.
Stabilność: WireGuard jest bardzo stabilnym protokołem VPN i wprowadza nowe funkcje, których nie mają inne protokoły tunelowania, takie jak utrzymywanie połączenia VPN podczas zmiany serwerów VPN lub zmiany sieci Wi-Fi.
Wniosek: Nowoczesny protokół VPN, WireGuard jest szybki, wydajny i bezpieczny. Nie jest tak “sprawdzony w boju” jak OpenVPN i nie oferuje opartych na TCP możliwości antycenzorskich OpenVPN (patrz niżej), ale dla większości ludzi, przez większość czasu, jest to protokół VPN, którego używanie zalecamy.
Dowiedz się więcej o WireGuard
Stealth
Stealth to nowy protokół VPN opracowany przez Proton. Dzięki niemu możesz uzyskiwać dostęp do cenzurowanych stron i komunikować się z ludźmi w mediach społecznościowych, nawet gdy zwykłe protokoły VPN są blokowane przez Twój rząd lub organizację.
Stealth opiera się na WireGuard tunelowanym przez TLS. Dlatego używa tego samego szyfrowania co WireGuard, z dodatkową warstwą szyfrowania TLS. Poza tym jest identyczny z WireGuard (opisanym powyżej).
Inne ważne terminy
Przeglądając porównania różnych protokołów VPN, mogłeś natknąć się na akronimy lub terminy techniczne, z którymi nie byłeś zaznajomiony. Wyjaśniamy tutaj niektóre z najważniejszych.
TCP kontra UDP
Transmission Control Protocol (TCP) i User Datagram Protocol (UDP) to dwa różne sposoby, w jakie urządzenia mogą komunikować się ze sobą przez internet. Oba działają na protokole internetowym (IP), który jest odpowiedzialny za wysyłanie pakietów danych do i z adresów IP.
Kiedy widzisz, że protokół tunelowania używa portu TCP lub portu UDP, oznacza to, że ustanawia on połączenie między Twoim komputerem a serwerem VPN przy użyciu jednego z tych dwóch protokołów.
To, czy protokół VPN używa TCP, UDP, czy obu, może znacząco wpłynąć na jego wydajność. TCP koncentruje się przede wszystkim na dokładnym dostarczaniu danych, uruchamiając dodatkowe kontrole, aby upewnić się, że dane są we właściwej kolejności, i korygując je, jeśli tak nie jest.
Brzmi to jak dobra funkcja, ale wykonywanie kontroli zajmuje czas, co skutkuje wolniejszą wydajnością. Uruchamianie VPN przez TCP (TCP over TCP) może spowolnić Twoje połączenie w procesie zwanym “TCP meltdown”.
Na przykład, jeśli masz ruch sieciowy TCP przechodzący przez tunel TCP OpenVPN, a dane TCP w tunelu wykryją błąd, spróbują go skompensować, co może spowodować, że tunel TCP skompensuje go nadmiernie. Ten proces może spowodować poważne opóźnienia w dostarczaniu danych.
Jest jednak również dobry do pokonywania cenzury. Dzieje się tak, ponieważ ruch sieciowy HTTPS(nowe okno) używa portu TCP 443, więc jeśli przekierujesz swoje połączenie VPN przez ten sam port, wygląda ono jak zwykły bezpieczny ruch sieciowy VPN.
Możliwość uruchomienia ruchu sieciowego VPN na porcie 443 jest jedną z największych zalet korzystania z OpenVPN (i WireGuard, jeśli używana jest niestandardowa implementacja TCP protokołu przez Proton VPN).
Dowiedz się więcej o TCP i UDP
Perfect Forward Secrecy
Perfect Forward Secrecy to kluczowy element bezpieczeństwa zaszyfrowanej komunikacji. Odnosi się do operacji, które regulują sposób generowania kluczy szyfrowania. Jeśli Twój VPN obsługuje Perfect Forward Secrecy, utworzy unikalny zestaw kluczy dla każdej sesji (tj. za każdym razem, gdy ustanowisz nowe połączenie VPN).
Oznacza to, że nawet jeśli napastnik w jakiś sposób zdobędzie jeden z Twoich kluczy, może go użyć tylko do uzyskania dostępu do danych z tej konkretnej sesji VPN. Dane w pozostałych sesjach pozostaną bezpieczne, ponieważ chronią je inne unikalne klucze. Oznacza to również, że Twój klucz sesji pozostanie bezpieczny, nawet jeśli klucz prywatny VPN zostanie ujawniony.
Protokoły używane przez aplikacje Proton VPN
Uruchomiliśmy Proton VPN, aby zapewnić aktywistom, dysydentom i dziennikarzom bezpieczny i prywatny dostęp do internetu. Aby zapewnić bezpieczeństwo społeczności Proton, używamy tylko zaufanych i sprawdzonych protokołów VPN. Poniższa lista pokazuje, które protokoły VPN są obsługiwane w naszych różnych aplikacjach:
- Windows: OpenVPN, WireGuard® i Stealth
- macOS: OpenVPN, IKEv2, WireGuard i Stealth
- Android: OpenVPN, WireGuard i Stealth
- iOS/iPadOS: OpenVPN, IKEv2, WireGuard i Stealth
- Linux: OpenVPN i WireGuard
Możesz używać OpenVPN i WireGuard w trybach UDP lub TCP.
Dowiedz się, jak zmienić protokoły VPN
Nasze aplikacje na Windows, macOS, Android i iOS/iPadOS obsługują Smart Protocol. Jest to funkcja antycenzorska, która inteligentnie bada sieci, aby odkryć najlepszą konfigurację protokołu VPN wymaganą dla optymalnej wydajności lub ominięcia cenzury.
Na przykład może automatycznie przełączać się z IKEv2 na OpenVPN lub z OpenVPN UDP na OpenVPN TCP, używając różnych portów w razie potrzeby.
Dowiedz się więcej o Smart Protocol
Wszystkie nasze aplikacje używają najsilniejszych ustawień bezpieczeństwa obsługiwanych przez protokół VPN. OpenVPN, WireGuard i IKEv2/IPSec to jedyne protokoły, co do których zdecydowana większość ekspertów ds. bezpieczeństwa IT zgadza się, że są bezpieczne.
Odmawiamy oferowania jakichkolwiek połączeń VPN przy użyciu PPTP lub L2TP/IPSec (mimo że są tańsze w utrzymaniu i łatwiejsze w konfiguracji), ponieważ ich bezpieczeństwo nie spełnia naszych standardów.
Kiedy logujesz się do Proton VPN, możesz mieć pewność, że Twoje połączenie VPN używa najnowszych i najsilniejszych protokołów tunelowania.
Z pozdrowieniami,
Zespół Proton VPN
Możesz śledzić nas w mediach społecznościowych, aby być na bieżąco z najnowszymi wydaniami Proton VPN:
Twitter (nowe okno)| Facebook(nowe okno) | Reddit(nowe okno)
Aby uzyskać darmowe konto szyfrowanej poczty elektronicznej Proton Mail, odwiedź: proton.me/mail(nowe okno)



