Porównanie protokołów szyfrowania AES ChaCha20 i innych co realnie zmienia wybór algorytmu dla bezpieczeństwa i szybkości Twojego połączenia VPN

0
31
Rate this post

Uwaga na start: przełączenie w aplikacji VPN „AES-256” na „ChaCha20” bywa kuszące, bo wygląda jak szybka poprawka na spadki prędkości. W praktyce to często najmniej istotne pokrętło — jeśli wąskim gardłem jest serwer, Wi‑Fi, zły protokół, MTU albo CPU w routerze. Jednocześnie są sytuacje, w których wybór algorytmu (i powiązanego z nim trybu) realnie zmienia komfort: telefon przestaje się grzać, router wreszcie „dowozi” transfer, a opóźnienia przestają skakać.

Żeby podjąć decyzję szybko i bez marketingowych skrótów myślowych, trzeba rozdzielić trzy rzeczy: algorytm szyfrowania (AES, ChaCha20), tryb i uwierzytelnianie (np. AES-GCM, Poly1305, HMAC/SHA) oraz protokół VPN (WireGuard, OpenVPN, IKEv2/IPsec). Dopiero ich kombinacja wpływa na bezpieczeństwo i szybkość połączenia VPN.

AES vs ChaCha20 w VPN, WireGuard ChaCha20-Poly1305, OpenVPN AES-GCM vs AES-CBC, AES-NI i akceleracja sprzętowa, VPN wolne przez CPU, IKEv2/IPsec szyfrowanie AES, Poly1305 a HMAC/SHA, opóźnienia VPN a szyfrowanie, MTU i wydajność VPN, UDP vs TCP w VPN, mit AES-256 vs AES-128, jak sprawdzić bottleneck w VPN

Nawigacja:

VPN zwalnia, bateria leci, a w ustawieniach straszy „AES-256” i „ChaCha20”

Sygnały ostrzegawcze: kiedy wybór algorytmu może coś zmienić

Nie każdy spadek prędkości na VPN wynika z szyfrowania, ale są objawy, które dość dobrze sugerują, że to właśnie kryptografia (albo jej implementacja) dusi połączenie. Pierwszy znak: urządzenie zaczyna pracować „na granicy”. Telefon robi się ciepły przy dłuższym transferze, bateria topnieje szybciej niż zwykle, a prędkość rośnie tylko do pewnego poziomu i dalej „nie chce”.

Drugi znak: router lub NAS jako klient/serwer VPN nagle staje się najsłabszym ogniwem. W praktyce wygląda to tak, że na laptopie VPN działa szybko, ale kiedy ten sam tunel zestawiasz na routerze, transfer spada dramatycznie. To klasyczny scenariusz, w którym różnica między AES (bez akceleracji) a ChaCha20 (wydajne w software) potrafi być odczuwalna.

Trzeci znak dotyczy nie tyle „gołych Mbps”, co odczuć: lagi, rwanie wideokonferencji, skaczący ping. Same algorytmy zwykle dokładają opóźnienie liczone w ułamkach milisekundy, ale gdy CPU jest zapchany szyfrowaniem, opóźnienia potrafią puchnąć skokowo (kolejki, jitter), a to już czuć w rozmowie głosowej i grach.

Problem w liczbach: „download” to nie to samo co stabilność i opóźnienia

Łatwo wpaść w pułapkę testów typu „speedtest i koniec”. Tymczasem dla VPN równie ważne są: stabilność transferu (czy prędkość nie faluje), jitter (zmienność opóźnień) oraz czas reakcji połączenia przy wielu małych pakietach (praca zdalna, RDP/VDI, terminale, VoIP).

Wybór AES vs ChaCha20 najczęściej wpływa na wydajność szyfrowania per CPU, więc najmocniej zobaczysz go w scenariuszach „ciągłego” obciążenia: pobieranie, wysyłanie kopii zapasowych, streaming w wysokiej jakości, synchronizacja chmury. Dla samego pingu większe znaczenie mają odległość do serwera i trasa, ale jeśli CPU się dławi, opóźnienia też ucierpią.

Mit vs rzeczywistość: „AES-256 = premium, ChaCha20 = kompromis”

Mit: „Jeśli coś ma 256 w nazwie, musi być lepsze i bezpieczniejsze”. Rzeczywistość: bezpieczeństwo VPN rzadko przegrywa się na wyborze AES-128 vs AES-256, a dużo częściej na złej konfiguracji, starych trybach, błędnej implementacji albo na tym, że ktoś włączył VPN na przestarzałym protokole, bo „działa”.

Drugi mit: „ChaCha20 jest mniej bezpieczny, bo brzmi egzotycznie”. Rzeczywistość: ChaCha20 to powszechnie używany, nowoczesny szyfr, dobry szczególnie tam, gdzie liczy się szybkość w software i odporność na pułapki implementacyjne. W praktyce dla użytkownika oba (AES i ChaCha20) są uznawane za bezpieczne, jeśli są użyte we właściwym trybie i w sensownym protokole.

Dlaczego VPN bywa wolny — algorytm szyfrowania to tylko jedna z przyczyn

Najczęstsze wąskie gardła (i jak je rozpoznać po objawach)

Najbardziej praktyczny podział to: CPU-bound (blokuje procesor) vs network-bound (blokuje sieć/serwer/trasa). Jeśli jesteś CPU-bound, zmiana algorytmu lub protokołu potrafi dać odczuwalny skok. Jeśli jesteś network-bound, możesz kręcić szyfrowaniem bez efektu.

CPU-bound rozpoznasz po tym, że prędkość „dochodzi do sufitu” i stoi, a przy większym obciążeniu system zaczyna łapać zadyszkę: spada responsywność, rośnie temperatura, a na routerze widać wysokie użycie CPU. Dodatkowa wskazówka: ten sam serwer VPN na mocniejszym urządzeniu nagle działa szybciej, mimo tej samej sieci.

Network-bound to z kolei sytuacja, w której ogranicza Cię łącze, Wi‑Fi, zasięg LTE/5G, odległość od serwera lub przeciążenie po stronie dostawcy VPN. Objawy: prędkość jest podobnie słaba także bez VPN (albo spada w godzinach szczytu), ping do serwera VPN jest wysoki, a zmiana algorytmu nie zmienia niczego.

UDP vs TCP i „TCP over TCP” — typowy winowajca lagów

Wiele osób widzi w ustawieniach przełącznik UDP/TCP i traktuje go jak „szybciej/wolniej”. Realnie to raczej „stabilniej w typowej sieci” (UDP) vs „większa szansa, że przejdzie przez restrykcje” (TCP). VPN po UDP zwykle ma mniejsze opóźnienia i lepiej znosi straty pakietów.

Najbardziej podstępny przypadek to OpenVPN po TCP, gdy aplikacje w tunelu też używają TCP (czyli prawie zawsze). Pojawia się wtedy efekt TCP over TCP: podwójne retransmisje i mechanizmy kontroli przeciążenia zaczynają sobie przeszkadzać, co daje rwanie i duże opóźnienia. W takiej sytuacji zmiana AES ↔ ChaCha20 bywa kosmetyką, a prawdziwym lekarstwem jest przejście na UDP albo zmianę protokołu (np. WireGuard/IKEv2).

MTU i fragmentacja: gdy „działa, ale coś się krzaczy”

Jeśli część stron lub usług działa, a część ładuje się wiecznie, albo duże pliki rwą się mimo „dobrego internetu”, podejrzany to często MTU (maksymalny rozmiar pakietu) i fragmentacja. VPN dodaje narzut, więc pakiety, które mieściły się bez tunelu, mogą zacząć się fragmentować lub być odrzucane.

Algorytm szyfrowania tego nie naprawi. Tu pomaga zmiana ustawień MTU/MSS w kliencie VPN, wybór innego protokołu (różny narzut), czasem też przejście na inny transport/port. Jeśli masz wrażenie „VPN jest wolny, bo strony klikają się ociężale”, MTU jest jednym z pierwszych punktów do sprawdzenia.

Implementacja ma znaczenie: ten sam AES nie zawsze działa tak samo

„AES” w aplikacji A i „AES” w aplikacji B to wciąż AES, ale wydajność zależy od biblioteki kryptograficznej, sposobu wykorzystania akceleracji sprzętowej, jakości kodu i tego, czy konfiguracja nie zmusza do droższych operacji (np. niepotrzebne przełączanie kontekstu, złe ustawienia wątków, słaba obsługa sieci).

Mit: „Skoro dwa VPN mają AES-256, to będą równie szybkie”. Rzeczywistość: protokół i implementacja potrafią zmienić wynik bardziej niż sam algorytm. Dlatego czasem WireGuard „z automatu” wygrywa w praktyce, mimo że ktoś porównuje go do OpenVPN z „tym samym AES”.

AES i ChaCha20 w praktyce: co je różni dla szybkości i zużycia energii (bez kryptograficznej matematyki)

Sprzęt kontra software — czemu na jednych urządzeniach wygrywa AES, a na innych ChaCha20

Najprostsza zasada: AES bywa ekstremalnie szybki na sprzęcie z akceleracją, a ChaCha20 bywa bardzo szybki w czystym software nawet na skromniejszych CPU. I to właśnie ta różnica napędza większość „wojenek” w internecie.

W komputerach stacjonarnych i serwerach często spotyka się instrukcje typu AES-NI (albo ich odpowiedniki), które przyspieszają operacje AES. Wtedy AES-GCM potrafi mieć świetną wydajność przy niskim obciążeniu CPU. W wielu nowoczesnych telefonach też istnieją formy przyspieszenia kryptografii, ale ich efekty zależą od systemu, implementacji i tego, czy VPN korzysta z właściwych API.

ChaCha20 projektowano tak, by działał wydajnie na szerokiej gamie procesorów bez specjalnych instrukcji. W praktyce często wypada znakomicie na urządzeniach mobilnych, starszych laptopach oraz sprzęcie sieciowym klasy SOHO, gdzie AES bez akceleracji potrafi „zajechać” CPU.

Co realnie odczujesz: temperatura telefonu, obciążenie routera, czas na baterii

Jeśli VPN używasz na telefonie w LTE/5G, to „wybór algorytmu” odczujesz nie tylko prędkością, ale też tym, czy urządzenie trzyma temperaturę w ryzach. Gdy szyfrowanie jest ciężkie dla CPU, telefon może dłużej utrzymywać wysokie taktowanie, a to przekłada się na grzanie i szybsze zużycie baterii.

W routerach domowych różnica jest często jeszcze bardziej brutalna. Routery mają ograniczone CPU, a jednocześnie są „bramą” dla wielu urządzeń. Jeśli VPN jest zestawiony na routerze i to on szyfruje cały ruch, algorytm i protokół stają się krytyczne. W takiej sytuacji ChaCha20 (np. w WireGuard) często daje efekt „wreszcie jest używalnie”, bo obciążenie CPU spada.

W laptopie lub PC zazwyczaj masz na tyle mocy, że algorytm przestaje być pierwszym podejrzanym. Wtedy bardziej liczy się wybór protokołu, serwera, trasy i jakości Wi‑Fi. Wyjątek: gdy robisz bardzo duże transfery (backupy, NAS, chmura) i VPN faktycznie dochodzi do granic możliwości sprzętu.

AES-128 vs AES-256: bezpieczeństwo a wydajność bez fetyszu „256”

W ustawieniach często zobaczysz „AES-128” i „AES-256” i naturalne jest pytanie: czy 256 jest „dwa razy bezpieczniejsze”? W praktyce, dla typowego zastosowania VPN, AES-128 jest uznawany za bardzo bezpieczny, a różnice bezpieczeństwa między 128 i 256 rzadko mają znaczenie dla realnego zagrożenia użytkownika.

Za to różnica w wydajności potrafi istnieć — zależnie od trybu (np. GCM), implementacji i sprzętowej akceleracji. Czasem AES-256 jest minimalnie wolniejszy, czasem różnica jest pomijalna. Jeśli walczysz o wydajność na słabym CPU, przełączenie z 256 na 128 może być bardziej sensowne niż „szukanie magicznego ChaCha20”, o ile protokół i aplikacja w ogóle pozwalają na taką zmianę.

Mit vs rzeczywistość: „Zmiana szyfrowania naprawi każdy wolny VPN”

Mit: „VPN działa wolno, więc na pewno mam zły algorytm”. Rzeczywistość: jeśli ogranicza Cię sieć, serwer lub trasa, zmiana AES ↔ ChaCha20 da najwyżej symboliczny efekt. Szyfrowanie jest kluczowe dopiero wtedy, gdy Twój sprzęt jest na granicy wydajności albo protokół/tryb wymusza kosztowne operacje.

Dłoń trzyma smartfon z aplikacją VPN, w tle laptop i ochrona danych
Źródło: Pexels | Autor: Dan Nelson

„Algorytm” to nie „protokół”: WireGuard, OpenVPN, IKEv2/IPsec — gdzie w ogóle masz wybór?

Pakiet kryptograficzny: co tak naprawdę wybierasz klikając „AES”

W panelu aplikacji widzisz zwykle jeden skrót, ale pod nim kryje się zestaw elementów: szyfrowanie, integralność/uwierzytelnianie oraz wymiana kluczy. To dlatego porównania typu „mój VPN ma AES-256” bywają mylące — bo nie mówią nic o tym, czy jest to AES-GCM czy AES-CBC, czy integralność jest realizowana nowocześnie, i jak działa cały protokół.

Praktycznie: jeśli aplikacja pozwala wybrać „AES-256”, sprawdź, czy obok nie ma dopisku GCM/CBC. Jeśli go nie ma, bywa, że to marketingowe uproszczenie. A jeśli masz możliwość wybrania GCM, to często jest to lepszy trop niż sama długość klucza.

WireGuard: ChaCha20-Poly1305 jako standard (i mniej „kręcenia gałkami”)

WireGuard jest popularny m.in. dlatego, że minimalizuje liczbę opcji, które użytkownik może przypadkiem zepsuć. Standardowo używa ChaCha20-Poly1305 (czyli szyfrowanie + integralność w konstrukcji typu AEAD). W praktyce, jeśli wybierasz WireGuard, to nie przełączasz się na AES w ustawieniach — wybór algorytmu jest wbudowany w projekt protokołu.

To zmienia optykę: zamiast pytać „AES czy ChaCha20?”, częściej pytasz „WireGuard czy OpenVPN/IKEv2?” oraz „czy moje urządzenie i sieć lubią WireGuard?”. Dla wielu użytkowników odpowiedź brzmi: WireGuard daje świetny stosunek szybkości do prostoty, szczególnie na mobilkach i routerach SOHO.

Mit: „WireGuard jest zawsze najszybszy”. Rzeczywistość: zwykle jest bardzo szybki, ale jeśli sieć po drodze „nie lubi” UDP (albo operator agresywnie tnie/kształtuje ruch), możesz zobaczyć losowe spadki, gorszą stabilność albo problem z zestawieniem tunelu. Wtedy nie wygrywa „inny szyfr”, tylko inny sposób transportu lub protokół, który łatwiej przejdzie przez restrykcje.

Mit: „Skoro nie mogę zmienić algorytmu w WireGuard, to mam mniejszą kontrolę i gorzej”. Rzeczywistość: mniej gałek to mniej miejsc, gdzie da się wybrać coś przestarzałego albo wolnego. Z punktu widzenia użytkownika to często plus: odpada rozkmina „AES-256-CBC czy coś innego”, zostaje decyzja praktyczna — czy ten protokół działa stabilnie w Twojej sieci i na Twoim sprzęcie.

Jeśli potrzebujesz szybkiej decyzji: na telefonie i routerze domowym WireGuard bywa pierwszym strzałem właśnie dlatego, że ChaCha20-Poly1305 jest lekki dla CPU i nie wymaga akceleracji. Gdy widzisz, że VPN na routerze dobija do 100% CPU, a Wi‑Fi „udaje, że jest szybkie”, przejście z OpenVPN na WireGuard potrafi zrobić większą różnicę niż jakiekolwiek żonglowanie długością klucza AES. Z drugiej strony, w sieciach firmowych i hotelowych, gdzie wszystko przechodzi przez jedną bramkę i polityki, stabilniejszy może być IKEv2/IPsec albo OpenVPN na porcie, który nie rzuca się w oczy.

OpenVPN: tu faktycznie grzebiesz w AES/ChaCha20, ale płacisz narzutem

OpenVPN daje najwięcej „pokręteł” i dlatego dostarcza najwięcej mitów. Da się wybrać AES (często GCM) albo ChaCha20 (najczęściej jako ChaCha20-Poly1305), czasem do tego TCP/UDP, porty, dodatkowe opcje. To przydatne, gdy musisz się przecisnąć przez dziwne sieci albo specyficzne firewalle — OpenVPN bywa wtedy jak scyzoryk.

Cena jest prosta: większy narzut i większa zależność od implementacji. Na słabszych urządzeniach OpenVPN potrafi być wąskim gardłem nawet wtedy, gdy „algorytm brzmi nowocześnie”. Jeśli ktoś obiecuje „wystarczy przełączyć OpenVPN na AES-256 i będzie rakieta”, to zwykle życzeniowe myślenie — częściej pomaga zmiana na UDP, poprawienie MTU albo przesiadka na WireGuard/IKEv2.

IKEv2/IPsec: AES jest tu typowym wyborem, a stabilność bywa mocną stroną

W IKEv2/IPsec w praktyce najczęściej spotkasz pakiety oparte o AES (często AES-GCM), a sam protokół jest dobrze wspierany przez systemy mobilne. To jeden z powodów, dla których IKEv2 bywa „nudno stabilny” na telefonie: szybkie ponowne łączenie, sensowne zachowanie przy zmianach sieci (Wi‑Fi ↔ LTE) i solidna integracja z OS.

Mit: „IKEv2 jest wolny, bo ma AES”. Rzeczywistość: jeśli urządzenie ma sprzętową akcelerację i sensowną implementację, IKEv2 potrafi działać bardzo sprawnie. Gdy jest wolno, winny bywa raczej serwer, trasa albo przeciążenie/brak akceleracji na urządzeniu brzegowym (np. routerze), a nie sama etykieta „AES”.

Inne opcje, które realnie zmieniają bezpieczeństwo (często bardziej niż AES vs ChaCha20)

Najpierw uwierzytelnianie i PFS, dopiero potem „jaki szyfr”

Jeśli masz wybór w ustawieniach, większą robotę robi zwykle wymiana kluczy i to, czy sesje mają PFS (Perfect Forward Secrecy). To ona decyduje, czy przejęcie jednego klucza w przyszłości pozwoli komuś odtworzyć stary ruch. Różnice między „dobrym AES” i „dobrym ChaCha20” są realne, ale przy poprawnej konfiguracji obie opcje są daleko od pierwszej linii ryzyka dla typowego użytkownika.

Tryb pracy robi różnicę: AES-GCM kontra AES-CBC (i dlaczego „AES to AES” to skrót)

Jeśli gdziekolwiek w ustawieniach widzisz tylko „AES”, to w praktyce brakuje najważniejszego doprecyzowania: w jakim trybie ten AES pracuje. Dla użytkownika VPN ma to znaczenie nie dlatego, że musisz znać kryptografię, tylko dlatego, że niektóre kombinacje są zwyczajnie bardziej nowoczesne i mniej problematyczne.

AES-GCM to najczęstszy „dobry domyślny wybór”, bo łączy szyfrowanie z kontrolą integralności w jednej konstrukcji (AEAD). AES-CBC to starszy tryb, który sam z siebie nie zapewnia integralności — trzeba go poprawnie „dopiąć” osobnym mechanizmem (np. HMAC). Da się to zrobić bezpiecznie, ale rośnie liczba miejsc, gdzie implementacja może być słabsza, a narzut CPU bywa większy.

Mit: „AES-CBC jest zawsze niebezpieczny”. Rzeczywistość: potrafi być bezpieczny w poprawnie złożonym pakiecie, ale w VPN łatwiej i czyściej celować w GCM (albo ChaCha20-Poly1305), jeśli masz wybór. To nie fetysz „nowe = lepsze”, tylko pragmatyka: mniej klocków do źle poskładania.

Integralność i „MAC”: Poly1305 vs HMAC, czyli co pilnuje, żeby pakiety nie były podmieniane

VPN to nie tylko „tajność”. Równie ważne jest, żeby ktoś po drodze nie mógł podmienić pakietu i żeby druga strona to wykryła. W praktyce spotkasz dwa popularne podejścia:

  • AEAD (np. AES-GCM, ChaCha20-Poly1305) – szyfrowanie i integralność są „w jednym zestawie”.
  • Osobny MAC (np. HMAC-SHA256) – często w starszych konfiguracjach, gdzie szyfrowanie i integralność są rozdzielone.

W WireGuard integralność zapewnia Poly1305 razem z ChaCha20 (stąd nazwa zestawu). W wielu konfiguracjach IPsec i OpenVPN spotkasz HMAC ze SHA-2. Z punktu widzenia użytkownika nie chodzi o to, by wybierać „najmocniejszą nazwę”, tylko by unikać archaicznych składników (np. MD5/SHA-1) i mieszanek, które brzmią jak z instrukcji sprzed dekady.

Pułapki w menu ustawień: gdzie łatwo „wygrać liczbą”, a przegrać w praktyce

„AES-256” jako hasło marketingowe: co jest ukryte drobnym drukiem

Samo „AES-256” nie mówi, czy dostajesz nowoczesne AEAD, jak wygląda wymiana kluczy, czy sesje mają PFS, ani czy implementacja nie jest przypadkiem ustawiona pod kompatybilność z bardzo starymi klientami. Zdarza się, że dwie aplikacje chwalą się tym samym szyfrem, a jedna działa płynnie, a druga zjada CPU i gubi pakiety — bo różni je protokół, biblioteka, tryb pracy i masa detali „pod spodem”.

Mit: „Jak jest 256, to już wszystko jest premium”. Rzeczywistość: w typowym VPN różnicę jakości częściej robi GCM vs CBC, sensowny handshake i implementacja, a nie sama długość klucza. „256” bywa po prostu łatwe do sprzedania.

Mylenie szyfrowania z protokołem: „ustawiłem ChaCha20 w OpenVPN, więc mam WireGuard”

ChaCha20 w OpenVPN nie zmienia OpenVPN w WireGuard. Nadal zostaje ten sam silnik połączenia, narzut, sposób transportu i zachowanie w sieci. Jeśli Twoim problemem jest niestabilność w sieci hotelowej albo blokady, to czasem pomoże OpenVPN po TCP/443 niezależnie od szyfru. Jeśli problemem jest CPU na routerze — wtedy prędzej pomoże zmiana protokołu na WireGuard niż sama zamiana AES ↔ ChaCha20 w ramach OpenVPN.

TCP w tunelu: gdy „wolno” nie jest winą szyfru, tylko podwójnej kontroli retransmisji

Jeden z klasycznych scenariuszy: użytkownik ustawia OpenVPN na TCP, bo „TCP jest bardziej niezawodne”, a potem narzeka na lagi i rwanie wideokonferencji. Jeśli w tunelu masz TCP, a w środku leci kolejny TCP (czyli prawie zawsze, bo WWW), to w razie strat pakietów oba poziomy próbują „naprawiać” to samo. Efekt: opóźnienia, szarpanie, wrażenie „zamulenia”. Szyfr może być idealny, a i tak będzie źle.

Tu nie wygrywa „AES-128 zamiast AES-256”. Wygrywa zwykle UDP (WireGuard / IKEv2 / OpenVPN-UDP) albo rozwiązanie, które lepiej pasuje do warunków sieciowych.

Jak sprawdzić, czy AES ma u Ciebie przyspieszenie sprzętowe (i kiedy to w ogóle ma sens)

Komputer: szybka weryfikacja bez polowania na specyfikację

Na PC/laptopie największą różnicę robi wsparcie typu AES-NI. Jeśli jest, AES potrafi być bardzo szybki i energooszczędny. Jak to sprawdzić praktycznie?

  • Windows: w praktyce na większości nowszych CPU AES-NI jest, ale najpewniejsze jest sprawdzenie narzędziem typu CPU-Z albo w informacjach o CPU (funkcje/instrukcje). Jeśli VPN „nie grzeje” CPU przy transferze, to też często znak, że akceleracja działa.
  • Linux: grep -m1 -o aes /proc/cpuinfo (jeśli zwróci „aes”, CPU deklaruje instrukcje AES).
  • macOS (Apple Silicon): AES ma wsparcie sprzętowe; w praktyce i AES, i ChaCha20 potrafią działać bardzo dobrze, a wybór protokołu częściej przebija wybór szyfru.

Jeśli masz nowy laptop i szybkie łącze, a VPN i tak jest wolny, to podejrzenie numer jeden zwykle nie brzmi „zły algorytm”, tylko: serwer VPN, trasa, przeciążenie, MTU albo Wi‑Fi.

Telefon i tablet: tu częściej liczy się implementacja i „koszt na wat”

W mobilkach wsparcie sprzętowe dla AES często istnieje, ale realny wynik zależy od systemu, biblioteki kryptograficznej i tego, jak aplikacja VPN robi I/O. Dlatego na jednym telefonie IKEv2 z AES-GCM będzie świetne, a na innym WireGuard z ChaCha20 będzie po prostu bardziej stabilny i mniej prądożerny.

Kobieta pracuje na laptopie z ikoną VPN na ekranie
Źródło: Pexels | Autor: Dan Nelson

Najprostszy test „użytkowy”: jeśli przy dłuższym transferze przez VPN telefon wyraźnie się nagrzewa i szybciej traci baterię, a po zmianie protokołu robi się chłodniej — to zwykle znak, że trafiłeś w bardziej pasujący zestaw (niekoniecznie tylko algorytm).

Router/NAS: CPU i brak akceleracji potrafią zabić każdy „ładny szyfr”

W sprzęcie SOHO najczęściej problem jest brutalnie prosty: mały CPU + dużo ruchu. Jeśli router ma robić VPN dla całego domu, to nawet „bezpieczna konfiguracja” może być nieużywalna wydajnościowo. Tu decyzja bywa bardziej inżynierska niż ideologiczna:

  • gdy jest opcja, WireGuard często daje najlepszy stosunek prędkości do obciążenia,
  • jeśli musisz zostać przy OpenVPN, poluj na UDP i AES-GCM oraz unikaj zbędnych dodatków,
  • jeśli IPsec jest sprzętowo wspierany przez router (częste w niektórych platformach), IKEv2/IPsec potrafi być zaskakująco sprawny.

Decyzja w 5 minut: co wybrać, gdy zależy Ci na prędkości, stabilności i braku wpadek

Scenariusze, które faktycznie rozstrzygają „AES czy ChaCha20”

To nie jest konkurs piękności algorytmów. Najczęściej chodzi o dopasowanie do sprzętu i warunków sieci:

  • Router lub starszy NAS jako klient VPN: najpierw sprawdź WireGuard (ChaCha20-Poly1305). Jeśli odpada przez sieć/polityki, dopiero wtedy kombinuj z OpenVPN/IKEv2.
  • Nowy laptop/PC z AES-NI: AES (zwłaszcza GCM) zwykle nie będzie Twoim bottleneckiem; wybieraj protokół pod stabilność i przechodzenie przez sieci (często IKEv2 albo WireGuard).
  • Telefon w ciągłym ruchu (Wi‑Fi ↔ LTE): IKEv2 bywa „nudno stabilny”, WireGuard często jest bardzo szybki — wybór zależy od tego, czy w Twoich sieciach UDP przechodzi bez problemów.
  • Słabe Wi‑Fi / sieci z restrykcjami: czasem wygra OpenVPN, nawet jeśli jest cięższy, bo po prostu działa tam, gdzie inne protokoły są przycinane.

Mit: „Najlepszy algorytm da najlepszy ping”. Rzeczywistość: opóźnienia najczęściej rosną przez dystans do serwera, jitter w sieci i retransmisje, a nie dlatego, że wybrałeś AES-256 zamiast ChaCha20.

Mini-checklista: zanim zaczniesz przełączać szyfry w ciemno

  • Jeśli masz problem z prędkością: sprawdź obciążenie CPU na urządzeniu (router/telefon/serwer). Gdy dobija do sufitu, zmiana protokołu (np. na WireGuard) zwykle daje więcej niż zmiana AES-256 → AES-128.
  • Jeśli masz problem ze stabilnością: przetestuj inny protokół/transport (UDP vs TCP, inny port), zanim uznasz, że „szyfr jest zły”.
  • Jeśli widzisz AES-CBC i masz możliwość przejścia na AES-GCM albo ChaCha20-Poly1305, to jest to sensowny ruch w stronę nowocześniejszego pakietu.
  • Jeśli konfiguracja pozwala na przestarzałe skróty (MD5/SHA-1) lub dziwne „kompatybilności”, odpuść je nawet wtedy, gdy obiecują minimalny zysk wydajności.
  • Gdy wszystko jest „teoretycznie idealne”, a i tak jest wolno: zmień serwer/lokalizację, sprawdź MTU i jakość łącza — algorytm szyfrowania bywa wtedy najmniej winny.

Nie wpadnij w „szyfromanie”: kiedy dłubanie przy AES/ChaCha20 jest stratą czasu

Najłatwiej stracić godzinę na przełączanie „AES-256 ↔ AES-128 ↔ ChaCha20”, gdy prawdziwy problem siedzi gdzie indziej. Dwie rzeczy, które najczęściej udają „winę algorytmu”, to przeciążony serwer i zła ścieżka sieciowa (routing, peering, Wi‑Fi). Jeśli bez VPN masz stabilny ping, a z VPN ping skacze i raz jest dobrze, raz fatalnie — to częściej brzmi jak obciążenie serwera lub jitter, nie jak „zły szyfr”.

Mit: „Jak zmienię z AES na ChaCha20, to VPN nagle przestanie się przycinać”. Rzeczywistość: jeśli gubisz pakiety na Wi‑Fi albo siedzisz daleko od lokalizacji serwera, różnica między dobrymi szyframi bywa kosmetyczna, a opóźnienia robi sieć.

Tryb szyfrowania ma znaczenie: AES-GCM kontra AES-CBC (i czemu CBC potrafi boleć)

Jeśli gdziekolwiek masz wybór w stylu AES-GCM vs AES-CBC, to zwykle jest bardziej „realna” decyzja niż 128 vs 256 bitów. GCM to nowoczesny tryb AEAD — ma szyfrowanie i integralność w jednym, zwykle lepiej się skaluje i jest prostszy w bezpiecznym użyciu. CBC to starsza szkoła: działa, ale wymaga dodatkowych elementów (MAC), jest bardziej podatny na błędy konfiguracji i w praktyce potrafi kosztować więcej CPU przy dużej liczbie pakietów.

Mit: „CBC jest równie dobre, bo to dalej AES”. Rzeczywistość: AES to klocki, a tryb to instrukcja składania. Zły zestaw (np. CBC + stare HMAC/ustawienia kompatybilności) potrafi przynieść więcej ryzyka niż jakiekolwiek rozważania, czy ChaCha20 jest „nowsze”.

Jeśli widzisz w panelu opcje typu AES-256-CBC i AES-256-GCM, to najczęściej GCM jest sensowniejszym wyborem (o ile druga strona go wspiera i nie psuje tego reszta konfiguracji).

Co jeszcze w „pakiecie” wpływa na bezpieczeństwo bardziej niż AES vs ChaCha20

Wymiana kluczy i PFS: bez tego „mocny szyfr” jest tylko plakatem

To, co boli w praktyce, to nie „czy AES jest bezpieczny”, tylko czy sesje są zestawiane w nowoczesny sposób. Szukaj oznak typu ECDHE / PFS (Perfect Forward Secrecy). Dzięki temu nawet jeśli kiedyś wycieknie długoterminowy klucz/hasło, nie da się masowo odszyfrować starych nagrań ruchu.

Mit: „Mam AES-256, więc nawet jak ktoś nagra ruch, to i tak nic nie zrobi”. Rzeczywistość: bez właściwej wymiany kluczy i PFS ryzyko przesuwa się w stronę „kiedyś to odszyfrują” albo „złamali klucz i czytają historię”. Szyfr to tylko element układanki.

Uwierzytelnianie serwera: certyfikaty, pinning, nie „klikaj akceptuj”

W wielu problematycznych konfiguracjach użytkownik przegrywa nie przez algorytm, tylko przez zbyt luźne weryfikowanie serwera. Jeśli aplikacja pozwala „zaakceptować nowy certyfikat, bo się zmienił” bez jasnego powodu, to prosisz się o ataki typu MITM w niepewnych sieciach.

To też moment, w którym marketing o szyfrze odwraca uwagę: można mieć ChaCha20-Poly1305 i jednocześnie kiepsko rozwiązaną warstwę zaufania.

Stare skróty i „kompatybilność”: SHA-1/MD5 jako czerwone flagi

Jeśli w ustawieniach przewijają się MD5 albo SHA-1, traktuj to jak lampkę ostrzegawczą. Dla użytkownika to prosta heurystyka: skoro ktoś trzyma stare składniki, to często trzyma też inne „muzealne” decyzje (tryby, negocjacje, ustawienia zgodności), które mogą odbić się i na bezpieczeństwie, i na stabilności.

Opóźnienia i „responsywność” VPN: gdzie algorytm może mieć wpływ, a gdzie prawie nigdy

Algorytm szyfrowania może dorzucić kilka milisekund, gdy urządzenie jest słabe albo gdy jedziesz na limicie CPU (typowo routery, małe VPS-y, stare telefony). Ale większość „lagi w grze” i „czkawki w rozmowie” to efekt:

  • odległości do serwera i liczby przeskoków po drodze,
  • jitteru w LTE/5G albo zatkanego Wi‑Fi,
  • retransmisji (zwłaszcza gdy ktoś upiera się na TCP tam, gdzie powinno być UDP),
  • złego MTU (fragmentacja, czarne dziury PMTU) i ogólnie problemów z pakietami.

Praktyczna obserwacja: jeśli speedtest „jakoś leci”, ale strony otwierają się z opóźnieniem, a czat w aplikacji łapie pauzy — to brzmi bardziej jak MTU/jitter niż „AES vs ChaCha20”. W takiej sytuacji często pomaga zmiana serwera na bliższy, inny protokół (np. IKEv2 ↔ WireGuard) albo dopracowanie MTU, a nie pogoń za szyfrem.

Inne algorytmy, które możesz zobaczyć — i jak je czytać po ludzku

W panelach i plikach konfiguracyjnych przewijają się nazwy, które wyglądają groźnie, ale da się je „z grubsza” sklasyfikować bez doktoratu:

  • ChaCha20-Poly1305 – nowoczesny zestaw AEAD, standard w WireGuard; zwykle dobry wybór, zwłaszcza na słabszym sprzęcie lub tam, gdzie implementacja jest dopracowana.
  • AES-128/256-GCM – nowoczesny zestaw AEAD; świetny na CPU z akceleracją AES, często spotykany w IPsec i OpenVPN.
  • AES-128/256-CBC + HMAC-SHA256 – starsze podejście, które nadal działa, ale ma więcej miejsc, gdzie można coś sknocić; jeśli masz alternatywę w AEAD, zwykle lepiej ją wybrać.
  • SHA-256/SHA-384 – to zwykle skróty do integralności/podpisów, nie „szyfrowanie danych”; sama obecność SHA-2 to nic złego, ale nie myl tego z tajnością.

Mit: „Im więcej nazw w konfiguracji, tym bezpieczniej”. Rzeczywistość: im dłuższa lista „obsługiwanych” rzeczy, tym częściej to znak, że trzymana jest kompatybilność wstecz. A kompatybilność bywa wygodna, ale potrafi też wpuścić stare, gorsze wybory do negocjacji.

Praktyczny finał: jak wybrać bez wchodzenia w kryptografię

Jeśli chcesz decyzji, która działa „w większości normalnych przypadków”, trzymaj się krótkich zasad:

  • Najpierw protokół, potem algorytm: jeśli możesz, testuj WireGuard albo IKEv2 zanim zaczniesz żonglować AES-128/AES-256 w OpenVPN.
  • W OpenVPN/IPsec celuj w AEAD: AES-GCM albo ChaCha20-Poly1305, zamiast CBC.
  • Nie płać wydajnością za „256”, jeśli nie musisz: AES-128-GCM jest w praktyce bardzo mocny; częściej ogranicza Cię CPU/serwer/sieć niż „za krótkie klucze”.
  • Jeśli sprzęt jest słaby (router/NAS), wybór „lżejszego” zestawu i protokołu zrobi różnicę szybciej niż kosmetyka w parametrach.
  • Jeśli coś „magicznie” obiecuje ogromny zysk tylko po zmianie szyfru, sprawdź czerwone flagi: TCP w tunelu, odległa lokalizacja serwera, przeciążenie, MTU, stare składniki (SHA-1/MD5).

Źródła informacji

  • FIPS PUB 197: Advanced Encryption Standard (AES). National Institute of Standards and Technology (NIST) (2001) – Oficjalna specyfikacja AES; podstawy bezpieczeństwa i parametry algorytmu.
  • RFC 8439: ChaCha20 and Poly1305 for IETF Protocols. Internet Engineering Task Force (IETF) (2018) – Standard ChaCha20-Poly1305 (AEAD); opis konstrukcji i użycia w protokołach.
  • WireGuard: Protocol and Cryptographic Specification. WireGuard – Opis zestawu kryptograficznego WireGuard (m.in. ChaCha20-Poly1305) i założeń.