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
7
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ń.

Poprzedni artykułJak mądrze zgłaszać błędy bezpieczeństwa w projektach open source i nie zrazić do siebie maintainerów
Magdalena Suwalski
Magdalena Suwalski na Noonu.pl skupia się na tym, jak korzystać z technologii w sposób bezpieczny i świadomy, nawet jeśli nie jest się ekspertem. Przygotowuje przystępne poradniki dotyczące konfiguracji urządzeń, ustawień prywatności w popularnych usługach oraz zarządzania kontami online. W pracy redakcyjnej opiera się na własnych testach, konsultacjach z praktykami branży IT oraz oficjalnych wytycznych instytucji zajmujących się ochroną danych. Jej celem jest tworzenie treści, które krok po kroku prowadzą użytkownika przez proces zmian, tłumacząc nie tylko „jak”, ale też „dlaczego” warto zadbać o swoje bezpieczeństwo cyfrowe.