Cyberbezpieczeństwo

zmiany w Tor: aktualizacja CGO, czyli jak kryptografia z 2025 roku miażdży standardy z 2002

Tor Project wdraża Counter Galois Onion (CGO). To nie tylko łatka, to fundamentalna zmiana architektury szyfrowania. Wyjaśniamy, dlaczego stary AES-CTR musiał odejść, jak CGO osiąga 3-krotny wzrost wydajności na końcówkach i dlaczego ataki tagowania stają się matematycznie niemożliwe.

zmiany w Tor: aktualizacja CGO, czyli jak kryptografia z 2025 roku miażdży standardy z 2002

Zmiana algorytmu szyfrowania przekaźników (relay encryption) z wysłużonego "tor1" na Counter Galois Onion (CGO) to kawał fascynującej inżynierii.

Oto co dokładnie się zmienia i dlaczego powinniście się tym ekscytować (lub przynajmniej czuć bezpieczniej).

Dlaczego "tor1" musiał umrzeć?

Stary protokół, któremu twórcy dopiero teraz nadali nazwę "tor1" (żeby mieć co wpisać w dokumentacji przy jego wycofywaniu), powstał w okolicach 2002 roku. Opierał się on na szyfrze strumieniowym AES-128-CTR.

Głównym problemem była tzw. kowalność (malleability) szyfru strumieniowego. W trybie licznikowym (CTR) szyfrogram ($C$) powstaje przez zxorowanie strumienia klucza ($S$) z tekstem jawnym ($P$), czyli $C = S \oplus P$. To matematyka na poziomie podstawówki, która była gwoździem do trumny anonimowości:

  • Jeśli atakujący (Pan Ciekawski) przechwyci zaszyfrowaną paczkę i zxoruje ją z własnym wzorcem ($M$), to po odszyfrowaniu przez ofiarę, tekst jawny również będzie zawierał ten wzorzec.
  • Atakujący może więc "oznaczyć" ruch na wejściu do sieci i nasłuchiwać, gdzie ten uszkodzony wzorzec wypłynie na wyjściu.
  • Efekt? Całkowita deanonimizacja obwodu, zanim jeszcze prześlemy jakiekolwiek dane.

Co gorsza, użytkownicy często mylili efekty tych ataków (zrywane połączenia) z atakami DDoS, co powodowało fałszywe alarmy w logach klientów Tor.

CGO: Kryptograficzne "Wszystko albo Nic"

Nowy standard, Counter Galois Onion (CGO), oparty jest na konstrukcji UIV+ i koncepcji Rugged Pseudorandom Permutation (RPRP). Zamiast prostego strumienia, mamy tu do czynienia z szyfrowaniem szerokoblokowym (wide-block cipher design), które jest odporne na kowalność.

Jak to działa w praktyce?

  1. Efekt domina: Każda komórka jest szyfrowana w taki sposób, że zależy od poprzednich. CGO wykorzystuje 16-bajtowy znacznik $T$, który jest przekazywany ("chained") do następnej komórki jako $T'$.
  2. Destrukcja zamiast modyfikacji: Jeśli atakujący zmieni choćby jeden bit w przesyłanym pakiecie, algorytm deszyfrujący "wybuchnie". Cała wiadomość, oraz wszystkie kolejne w tym obwodzie, staną się niemożliwe do odczytania. Atakujący nie może już "dorysować kropki" – może co najwyżej spalić paczkę, co jest łatwe do wykrycia i nie zdradza tożsamości nadawcy.
  3. Forward Secrecy (Utajnianie z wyprzedzeniem): W "tor1" klucze AES żyły przez całe życie obwodu. W CGO, przy każdym wysłaniu lub odebraniu komórki, klucze są aktualizowane przez funkcję Update. Jeśli ktoś ukradnie klucz w 5 minucie połączenia, nie odszyfrowuje tego, co działo się w 4 minucie.

Wydajność: Gdzie zyskujemy, a gdzie tracimy?

To chyba największe zaskoczenie. Zazwyczaj "bezpieczniej" znaczy "wolniej". Tutaj mamy ciekawą anomalię. Stary protokół używał SHA-1 do weryfikacji integralności. SHA-1 jest powolne. CGO eliminuje ten narzut.

Badania (przeprowadzone na procesorach Intel Cascade Lake) pokazują następujące wyniki:

  • Węzły końcowe (Klient/Proxy i Exit Node): Tutaj CGO jest 3-krotnie szybsze od starego Tora!. To ogromna ulga dla obciążonych węzłów wyjściowych.
  • Węzły pośrednie (Relay): Tutaj mamy spowolnienie rzędu 20-50%. Wynika to z faktu, że stary Tor na środkowych węzłach robił tylko bardzo szybkie AES-CTR, a teraz musi wykonać nieco bardziej skomplikowaną matematykę CGO.

Twórcy jednak uspokajają – zysk na krańcach sieci jest ważniejszy, a nowoczesne procesory z instrukcjami AES-NI i PCLMUL (używanymi do optymalizacji CGO) poradzą sobie z narzutem na węzłach pośrednich.

Infografika przedstawiająca aktualizację szyfrowania Tor: CGO (Counter Galois Onion) - nowy mechanizm szyfrowania eliminujący ataki tagowania i zwiększający bezpieczeństwo sieci anonimizującej

Co dalej?

Implementacja CGO jest już gotowa w Arti (klient Tora napisany w Rust) oraz w klasycznej implementacji C. Następne kroki to włączenie CGO domyślnie w Arti oraz wdrożenie negocjacji CGO dla usług cebulowych (onion services).

To fascynujący moment, w którym widzimy, jak akademicka kryptografia (badania Degabriele, Melloni, Münch, Stam) realnie naprawia internet.

Czytaj więcej: Dlaczego VPN to za mało? - Kompleksowa analiza anonimowości, gdzie omawiamy zalety i ograniczenia sieci Tor w kontekście współczesnych zagrożeń.

Aleksander

Źródła:

AutorAleksander Zębrowski

Czytaj dalej

Podobne artykuły

Chcesz sprawdzić, czy to dotyczy Twojej firmy?

Bezpłatna konsultacja z naszym ekspertem — bez zobowiązań, w pełnej poufności.

Porozmawiajmy