Ten artykuł został zaktualizowany w celu uwzględnienia protokołów 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 w kwestii ochrony Twojej aktywności w internecie, musisz upewnić się, że wdrożył niezbędne zabezpieczenia. Ocena bardziej technicznych aspektów VPN może być trudna. Często oznacza to zmaganie się ze zrozumieniem gąszczu 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 przeanalizuje protokoły VPN, co robią, jak działają i co oznacza, jeśli usługa VPN używa na przykład OpenVPN przez L2TP.
Ten post zagłębia się w niektóre wewnętrzne mechanizmy działania VPN-ów. Chociaż staramy się wyjaśniać terminy w jasny sposób, ten post będzie bardziej użyteczny, 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
VPN-y 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 Twoje urządzenie używa do negocjowania bezpiecznego, zaszyfrowanego połączenia, które tworzy sieć między Twoim komputerem a innym.
Protokół VPN zazwyczaj składa się 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 Twoich 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ć obudowane (encapsulated).
Enkapsulacja ma miejsce, gdy protokół VPN bierze fragmenty danych, zwane pakietami danych, z Twojego ruchu internetowego i umieszcza je wewnątrz innego pakietu. Ta dodatkowa warstwa jest konieczna, ponieważ konfiguracje protokołu, których używa Twój VPN wewnątrz kanału danych, niekoniecznie są takie same, jakich używa zwykły internet. Dodatkowa warstwa pozwala Twoim informacjom podróżować przez tunel VPN i dotrzeć do właściwego miejsca docelowego.
To wszystko jest trochę techniczne, więc ogólny zarys: 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 zaczyna przesyłać Twój ruch sieciowy. 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 jest następnie odpowiedzialny za utrzymanie stabilności połączenia.
PPTP
Point-to-Point Tunneling Protocol (PPTP) jest jednym z starszych protokołów VPN. Został początkowo opracowany przy wsparciu Microsoftu, dlatego wszystkie wersje Windows i większość innych systemów operacyjnych mają natywne wsparcie dla PPTP.
PPTP używa 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 sam obudować dane, pozwalając mu obsługiwać obowiązki zarówno kanału kontrolnego, jak i kanału danych. Jednak PPP nie jest rutowalny; nie może być wysyłany przez internet samodzielnie. Więc PPTP ponownie obudowuje dane obudowane przez PPP za pomocą generic routing encapsulation (GRE), aby ustanowić swój kanał danych.
Niestety, PPTP nie posiada żadnych własnych funkcji szyfrowania ani uwierzytelniania. Polega na PPP w celu wdrożenia 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 używa algorytmu 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 szybkie prędkości połączenia.
Znane luki: PPTP ma liczne znane luki bezpieczeństwa od 1998 roku. Jedna z najpoważniejszych luk wykorzystuje nieobudowane uwierzytelnianie MS-CHAP v2 do przeprowadzenia ataku man-in-the-middle (MITM).
Porty zapory sieciowej: Port TCP 1723. Użycie GRE przez PPTP oznacza, że nie może on nawigować przez zaporę sieciową z translacją adresów sieciowych (NAT) i jest jednym z najłatwiejszych do zablokowania protokołów VPN. (Zapora sieciowa 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 ma własnego adresu IP).
Stabilność: PPTP nie jest tak niezawodny, ani nie odzyskuje sprawności tak szybko jak OpenVPN przy niestabilnych połączeniach sieciowych.
Wniosek: Jeśli martwisz się o zabezpieczenie swoich danych, nie ma powodu, by używać PPTP. Nawet Microsoft doradził(nowe okno) swoim użytkownikom ulepszenie do innych protokołów VPN, aby chronić ich dane.
L2TP/IPSec
Protokół tunelowania warstwy drugiej (L2TP) miał zastąpić PPTP. L2TP może samodzielnie obsługiwać uwierzytelnianie i wykonuje enkapsulację UDP, więc w pewnym sensie może tworzyć zarówno kanał kontrolny, jak i danych. Jednak, podobnie jak PPTP, sam nie dodaje żadnego szyfrowania. Podczas gdy L2TP może wysyłać PPP, aby uniknąć nieodłącznych słabości PPP, L2TP jest zazwyczaj parowany z pakietem Internet Protocol security (IPSec), aby obsługiwać jego szyfrowanie i uwierzytelnianie.
IPSec to elastyczny framework, który można zastosować do VPN-ów, a także do bezpieczeństwa routingu i poziomu aplikacji. Kiedy łączysz się z serwerem VPN za pomocą L2TP/IPSec, IPSec negocjuje współdzielone klucze i uwierzytelnia połączenie bezpiecznego kanału kontrolnego między Twoim urządzeniem a serwerem.
IPSec następnie obudowuje dane. Kiedy IPSec wykonuje tę enkapsulację, stosuje nagłówek uwierzytelniania i używa Encapsulation Security Payload (ESP). Te specjalne nagłówki dodają podpis cyfrowy do każdego pakietu, więc atakujący nie mogą naruszyć Twoich danych bez zaalarmowania serwera VPN.
ESP szyfruje obudowane pakiety danych, aby żaden atakujący nie mógł ich przeczytać (i, w zależności od ustawień VPN, również uwierzytelnia pakiet danych). Po obudowaniu danych przez IPSec, L2TP ponownie obudowuje te dane za pomocą UDP, aby mogły przejść przez kanał danych.
Kilka protokołów VPN, w tym IKEv2, używa szyfrowania IPSec. Choć generalnie bezpieczny, IPSec jest bardzo złożony, co może prowadzić do słabej implementacji. L2TP/IPSec jest wspierany przez większość 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 generalnie 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 najpopularniejszych procesorach.
Znane luki: L2TP/IPSec to zaawansowany protokół VPN, ale wyciekła prezentacja NSA(nowe okno) sugeruje, że agencja wywiadowcza znalazła już sposoby na jego naruszenie. 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 skonfigurowania L2TP/IPSec.
Porty zapory sieciowej: Port UDP 500 jest używany do początkowej wymiany kluczy, port UDP 5500 do obejścia NAT, a port UDP 1701 do umożliwienia ruchu sieciowego 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 zerwań sieci.
Wniosek: Bezpieczeństwo L2TP/IPSec jest niewątpliwie ulepszeniem w stosunku do PPTP, ale może nie ochronić Twoich danych przed zaawansowanymi atakującymi. Jego wolniejsze prędkości i niestabilność oznaczają również, że użytkownicy powinni rozważać użycie L2TP/IPSec tylko wtedy, gdy nie ma innych opcji.
IKEv2/IPSec
Internet key exchange version two (IKEv2) to stosunkowo nowy protokół tunelowania, który jest w rzeczywistości częścią samego pakietu IPSec. Microsoft i Cisco współpracowali przy rozwoju oryginalnego protokołu IKEv2/IPSec, ale obecnie istnieje wiele iteracji open-source.
IKEv2 konfiguruje kanał kontrolny poprzez uwierzytelnienie bezpiecznego kanału komunikacji między Twoim urządzeniem a serwerem VPN przy użyciu algorytmu wymiany kluczy Diffie–Hellman(nowe okno). IKEv2 następnie wykorzystuje ten bezpieczny kanał komunikacji do ustanowienia tzw. asocjacji bezpieczeństwa (security association), co oznacza po prostu, że Twoje urządzenie i serwer VPN używają tych samych kluczy szyfrowania i algorytmów do komunikacji.
Gdy asocjacja bezpieczeństwa jest na miejscu, IPSec może stworzyć tunel, zastosować uwierzytelnione nagłówki do Twoich pakietów danych i obudować je za pomocą ESP. (Ponownie, w zależności od użytego szyfru, ESP może obsługiwać uwierzytelnianie wiadomości.) Obudowane pakiety danych są następnie ponownie obudowywane 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. Wspiera 256-bitowe szyfrowanie.
Prędkość: IKEv2/IPSec to szybki protokół VPN, chociaż zazwyczaj nie tak szybki jak akcelerowany sprzętowo OpenVPN czy WireGuard.
Znane luki: IKEv2/IPSec nie ma znanych słabości i 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 początkowej 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 wspiera protokół Mobility and Multihoming, co czyni go bardziej niezawodnym niż większość innych protokołów VPN, szczególnie dla użytkowników, którzy często przełączają się między różnymi sieciami Wi-Fi.
Wniosek: Dzięki silnemu bezpieczeństwu, wysokim 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, by 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, które polegają na pakiecie IPSec, OpenVPN używa SSL/TLS do obsługi wymiany kluczy i skonfigurowania swojego kanału kontrolnego oraz unikalnego protokołu OpenVPN do obsługi enkapsulacji i kanału danych.
Oznacza to, że zarówno jego kanał danych, jak i kanał kontrolny są zaszyfrowane, co czyni go nieco unikalnym w porównaniu do innych protokołów VPN. Jest wspierany na wszystkich głównych systemach operacyjnych poprzez oprogramowanie 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, o ile jest zaimplementowany z wystarczająco silnym algorytmem szyfrowania i Perfect Forward Secrecy. Jest to standard branżowy dla VPN-ów dbających o bezpieczeństwo danych.
Porty zapory sieciowej: OpenVPN może być skonfigurowany do działania na dowolnym porcie UDP lub TCP, w tym porcie TCP 443, który obsługuje cały ruch sieciowy HTTPS i sprawia, że jest 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 jednym z najlepszych obecnie używanych protokołów VPN, szczególnie dla użytkowników dbających przede wszystkim o bezpieczeństwo danych. Jego zdolność do kierowania połączeń przez TCP (patrz poniżej) czyni go również dobrym wyborem do unikania cenzury. Jednak, chociaż brakuje mu antycenzorskiej przewagi OpenVPN, 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 haszowania (RFC7693(nowe okno)). Automatycznie wspiera Perfect Forward Secrecy.
Prędkość: WireGuard używa nowych, szybkich algorytmów kryptograficznych. ChaCha20, na przykład, jest znacznie prostszy niż szyfry AES o równej sile i prawie tak szybki, mimo że większość urządzeń jest teraz wyposażona w instrukcje dla AES wbudowane w ich sprzęt. Rezultatem jest to, że WireGuard oferuje szybkie prędkości połączenia i ma niskie wymagania CPU.
Znane luki: WireGuard przeszedł różne formalne weryfikacje, a aby zostać włączonym do jądra Linux, kod źródłowy WireGuard Linux został niezależnie audytowany(nowe okno) przez stronę trzecią.
Porty zapory sieciowej: WireGuard może być skonfigurowany 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: Jako 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 poniż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 uzyskać dostęp do cenzurowanych stron i komunikować się z ludźmi w mediach społecznościowych, nawet gdy regularne protokoły VPN są zablokowane przez Twój rząd lub organizację.
Stealth opiera się na WireGuard tunelowanym przez TLS. Używa zatem tego samego szyfrowania co WireGuard, z dodaną warstwą szyfrowania TLS. Poza tym jest identyczny z WireGuard (opisanym powyżej).
Inne ważne terminy
Przechodząc przez porównania różnych protokołów VPN, mogłeś natknąć się na akronimy lub terminy techniczne, które nie były Ci znane. Wyjaśniamy tutaj niektóre z najważniejszych.
TCP a UDP
Protokół sterowania transmisją (TCP) i protokół datagramów użytkownika (UDP) to dwa różne sposoby, w jakie urządzenia mogą komunikować się ze sobą przez internet. Oba działają na protokole internetowym, który odpowiada 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 konfiguruje 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 skupia się głównie na dokładnym dostarczaniu danych poprzez uruchamianie dodatkowych kontroli, aby upewnić się, że dane są we właściwej kolejności, i korygowanie ich, 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 zjawisku zwanym TCP meltdown.
Na przykład, jeśli masz ruch sieciowy TCP przechodzący przez tunel OpenVPN TCP i dane TCP w tunelu wykryją błąd, spróbuje to skompensować, co może spowodować, że tunel TCP będzie nadmiernie kompensował. Ten proces może spowodować poważne opóźnienia w dostarczaniu Twoich danych.
Jednak jest to również dobre do pokonywania cenzury. Dzieje się tak, ponieważ ruch sieciowy HTTPS(nowe okno) używa portu TCP 443, więc jeśli skierujesz swoje połączenie VPN przez ten sam port, wygląda to jak zwykły bezpieczny ruch sieciowy VPN.
Zdolność do uruchamiania ruchu sieciowego VPN na porcie 443 jest jedną z największych zalet używania OpenVPN (i WireGuard, jeśli używasz niestandardowej implementacji TCP tego protokołu od Proton VPN).
Dowiedz się więcej o TCP i UDP
Perfect Forward Secrecy
Perfect Forward Secrecy jest kluczowym składnikiem bezpieczeństwa zaszyfrowanej komunikacji. Odnosi się do operacji, które rządzą sposobem generowania Twoich kluczy szyfrowania. Jeśli Twój VPN wspiera Perfect Forward Secrecy, stworzy unikalny zestaw kluczy dla każdej sesji (tj. za każdym razem, gdy ustanowisz nowe połączenie VPN).
Oznacza to, że nawet jeśli atakujący 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 reszcie Twoich sesji pozostałyby bezpieczne, ponieważ chronią je inne unikalne klucze. Oznacza to również, że Twój klucz sesji pozostanie bezpieczny, nawet jeśli klucz prywatny Twojego 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ą wspierane 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 wspierają Smart Protocol. Jest to funkcja antycenzorska, która inteligentnie sonduje sieci, aby odkryć najlepszą konfigurację protokołu VPN wymaganą dla optymalnej wydajności lub obejścia cenzury.
Na przykład, może automatycznie przełączyć się z IKEv2 na OpenVPN, lub 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 wspieranych 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 używających PPTP lub L2TP/IPSec (mimo że są tańsze w utrzymaniu i łatwiejsze do skonfigurowania), ponieważ ich bezpieczeństwo nie spełnia naszych standardów.
Kiedy zalogujesz 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)


