Traffic Analysis w Tor: jak analizować zaszyfrowany ruch i gdzie kończy się anonimowość
Traffic Analysis w Tor: jak analizować zaszyfrowany ruch i gdzie kończy się anonimowość
Szyfrowanie ruchu nie oznacza, że ruch staje się całkowicie niewidoczny.
To jedna z najważniejszych zasad współczesnego bezpieczeństwa sieciowego.
W przypadku sieci Tor sytuacja jest jeszcze ciekawsza. Treść komunikacji jest chroniona, trasa jest rozdzielana pomiędzy kolejne przekaźniki, a pojedynczy węzeł nie powinien posiadać pełnego obrazu połączenia. Mimo tego obserwator może nadal analizować metadane transmisji.
Może interesować go między innymi:
- kiedy rozpoczyna się transmisja,
- jak długo trwa,
- ile danych jest przesyłanych,
- w jakich odstępach pojawiają się pakiety,
- jaki jest kierunek ruchu,
- jak zmienia się intensywność transmisji.
To właśnie obszar Traffic Analysis.
Na Netbe podstawy architektury opisuje artykuł Jak działa sieć Tor? – anonimowość, routing cebulowy i zagrożenia. Tutaj skupimy się na znacznie bardziej zaawansowanym problemie: czy można wyciągnąć informacje z zaszyfrowanego ruchu bez odczytywania jego treści?
Szyfrowanie nie ukrywa wszystkiego
Załóżmy, że użytkownik korzysta z Tora.
Obserwator nie powinien zobaczyć:
Użytkownik → konkretna-strona.example
Może jednak zobaczyć coś w rodzaju:
11:41:03 12 KB
11:41:04 47 KB
11:41:05 8 KB
11:41:06 91 KB
11:41:07 14 KB
Nie zna treści.
Ale zna charakterystykę transmisji.
I właśnie ta informacja może być interesująca.
Czym dokładnie jest Traffic Analysis?
Traffic Analysis to analiza właściwości ruchu sieciowego w celu wyciągnięcia informacji, które nie wymagają odszyfrowania samej komunikacji.
Analizowane mogą być:
- timing,
- rozmiary transmisji,
- kierunek ruchu,
- częstotliwość pakietów,
- długość sesji,
- bursty danych,
- przerwy między transmisjami,
- charakterystyczne wzorce komunikacji.
Można więc mieć:
Encrypted Content
+
Visible Traffic Metadata
i nadal uzyskać informacje o zachowaniu komunikacji.
Dlaczego Tor nie może po prostu ukryć całego ruchu?
Ponieważ sieć musi działać.
Pakiety muszą zostać:
- przesłane,
- buforowane,
- przekazane dalej,
- dostarczone do następnego węzła.
Gdyby Tor całkowicie eliminował wszystkie różnice czasowe i wszystkie charakterystyki transmisji, musiałby wprowadzić ogromne ilości dodatkowego ruchu, opóźnień i paddingu.
Powstałby problem:
Więcej ochrony
↓
Więcej paddingu
↓
Więcej danych
↓
Większe opóźnienia
↓
Gorsza użyteczność
Dlatego systemy anonimowości zawsze muszą balansować pomiędzy:
anonimowością, wydajnością i użytecznością.
Timing Analysis – kiedy wysłano dane?
Jedną z najważniejszych technik jest analiza czasu.
Wyobraźmy sobie:
A: 100 ms → 200 ms → 300 ms → 450 ms
i drugi strumień:
B: 105 ms → 205 ms → 305 ms → 455 ms
Jeżeli obserwator ma dostęp do odpowiednich punktów sieci, może sprawdzać podobieństwo takich wzorców.
Nie musi znać zawartości.
Interesuje go czas.
Traffic Correlation Attack
Traffic correlation jest jednym z najważniejszych problemów dla sieci anonimowych.
Atakujący próbuje obserwować ruch:
WEJŚCIE
↓
Tor Network
↓
WYJŚCIE
Następnie porównuje charakterystykę transmisji po obu stronach.
Przykładowo:
Ingress:
████ ██ ███████ ███
Egress:
████ ██ ███████ ███
Jeżeli wzorce są wystarczająco podobne, może pojawić się możliwość korelacji.
Netbe opisuje ten problem również w artykule Czy Tor jest naprawdę anonimowy?.
Nie trzeba kontrolować całej sieci Tor
To ważne.
Atak korelacyjny nie musi oznaczać:
„Atakujący przejął Tor.”
Wystarczy odpowiedni poziom obserwacji.
Jeżeli przeciwnik może obserwować ruch w odpowiednich punktach infrastruktury, może próbować porównywać:
źródło ruchu
+
charakterystyka transmisji
+
punkt docelowy
To zupełnie inny model zagrożenia niż klasyczne przejęcie serwera.
Global Observer
Najbardziej interesującym przeciwnikiem jest tzw. global observer.
To model atakującego posiadającego bardzo szeroki zakres obserwacji infrastruktury sieciowej.
Nie musi znać treści.
Może zbierać:
- czas,
- wolumen,
- kierunek,
- wzorce transmisji.
Następnie może próbować korelować ogromne ilości danych.
Problem polega na skali.
Im więcej punktów obserwacyjnych posiada przeciwnik, tym więcej potencjalnych zależności może analizować.
Dlaczego pojedynczy relay nie wystarcza?
Architektura Tora została zaprojektowana właśnie po to, aby pojedynczy relay nie posiadał pełnego obrazu.
W uproszczeniu:
Entry Guard
↓
Middle Relay
↓
Exit Relay
Entry Guard zna użytkownika, ale nie powinien znać celu.
Exit zna cel klasycznego połączenia, ale nie powinien znać bezpośredniego IP użytkownika.
Middle Relay znajduje się pomiędzy nimi.
Podstawy tego mechanizmu opisuje Jak działa routing cebulowy (onion routing).
Problem pojawia się wtedy, gdy przeciwnik uzyskuje informacje z więcej niż jednego miejsca.
Traffic Analysis nie musi odszyfrowywać pakietów
To fundamentalna różnica.
Klasyczny atak na szyfrowanie może próbować odpowiedzieć:
„Co znajduje się w tym pakiecie?”
Traffic Analysis może pytać:
„Do jakiego rodzaju komunikacji ten pakiet należy?”
To dwie zupełnie różne klasy analizy.
Można więc mieć:
Payload:
████████████████
Nieczytelny
Metadata:
Timestamp
Size
Direction
Duration
i to właśnie druga część może być analizowana.
Fingerprinting ruchu
Jeszcze ciekawszym problemem jest traffic fingerprinting.
Niektóre aplikacje i strony generują charakterystyczne wzorce ruchu.
Przykładowo strona może powodować:
Request
↓
HTML
↓
CSS
↓
JavaScript
↓
Images
↓
Additional Requests
Każdy etap generuje określoną charakterystykę transmisji.
Jeżeli wzorzec jest wystarczająco stabilny, można próbować stworzyć jego fingerprint.
Website Fingerprinting
Website Fingerprinting to technika polegająca na próbie określenia odwiedzanej strony na podstawie charakterystyki ruchu.
Nie trzeba widzieć:
example.com
Można próbować rozpoznać:
Site A → Pattern X
Site B → Pattern Y
Site C → Pattern Z
a następnie porównać obserwowany ruch z wcześniej zebranymi wzorcami.
Machine Learning zmienia skalę analizy
W prostym modelu analityk może ręcznie porównywać wzorce.
W bardziej zaawansowanym modelu można wykorzystać machine learning.
Model otrzymuje cechy ruchu:
Packet timing
Packet size
Direction
Burst length
Session duration
i próbuje przypisać transmisję do określonej klasy.
Schemat może wyglądać tak:
Captured Traffic
↓
Feature Extraction
↓
ML Model
↓
Classification
Nie oznacza to automatycznie skutecznej identyfikacji.
Jakość modelu zależy od danych treningowych, warunków sieciowych i wielu innych czynników.
Problem zmienności sieci
Traffic Analysis nie jest prosty właśnie dlatego, że sieci są dynamiczne.
Na wzorzec wpływają:
- opóźnienia,
- przeciążenie,
- routing,
- liczba żądań,
- cache,
- wersja strony,
- urządzenie,
- szybkość połączenia.
Ten sam użytkownik może wygenerować różne profile ruchu w różnych momentach.
Dlatego analiza statystyczna musi uwzględniać niepewność.
Padding i obfuskacja
Jedną z metod utrudniania analizy jest dodawanie dodatkowych danych lub zmiana charakterystyki transmisji.
Celem jest stworzenie sytuacji:
Real Traffic
↓
Padding / Obfuscation
↓
Less Predictable Pattern
Netbe opisuje ten obszar w Jak działa ukrywanie metadanych w ruchu sieciowym – traffic obfuscation.
Dlaczego padding kosztuje?
Dodatkowe dane oznaczają dodatkowy ruch.
Jeżeli system przesyła:
100 MB real data
i dodaje:
50 MB padding
otrzymujemy:
150 MB total traffic
Większy padding może zwiększać ochronę przed określonymi analizami, ale jednocześnie zwiększa koszt transmisji.
Opóźnienia również mogą pomagać
Można próbować wprowadzać opóźnienia:
Packet A
↓
Delay
↓
Packet B
↓
Delay
↓
Packet C
Wtedy timing staje się mniej przewidywalny.
Ale ponownie pojawia się kompromis:
More Delay
↓
Harder Correlation
↓
Slower Communication
Użytkownik chce natomiast odwrotności:
Low Latency
High Throughput
Dlaczego Tor nie może „spowolnić wszystkiego”?
Bo Tor jest używany nie tylko do prostego przeglądania stron.
Sieć musi obsługiwać różne rodzaje komunikacji.
Zbyt agresywna obfuskacja oznaczałaby:
- większe opóźnienia,
- większe zużycie przepustowości,
- gorsze doświadczenie użytkownika,
- mniejszą skalowalność.
Dlatego anonimowość w praktyce zawsze jest kompromisem.
Ruch do Onion Services jest jeszcze ciekawszy
W przypadku klasycznego Internetu Tor może korzystać z exit node.
W przypadku .onion sytuacja wygląda inaczej.
Komunikacja pozostaje wewnątrz infrastruktury Tor.
Netbe szczegółowo opisuje ten model w Jak działa mechanizm Onion Services od strony technicznej.
To oznacza, że analiza ruchu musi uwzględniać zupełnie inną topologię.
Rendezvous Point
W Onion Services klient i usługa wykorzystują mechanizm rendezvous.
W uproszczeniu:
Client
↓
Tor Circuit
↓
Rendezvous Point
↑
Tor Circuit
↑
Onion Service
Punkt spotkania nie powinien znać pełnej tożsamości obu stron.
Ale z perspektywy Traffic Analysis nadal interesująca może być charakterystyka całej komunikacji.
Korelacja czasowa w Onion Services
Jeżeli przeciwnik posiada szeroki zakres obserwacji, może próbować badać:
Client-side traffic
↕
Service-side traffic
i szukać podobieństw.
To nie jest prosty proces.
Wymaga odpowiednich danych i możliwości obserwacyjnych.
Ale właśnie dlatego traffic correlation pozostaje jednym z ważnych modeli zagrożeń dla sieci anonimowych.
Entry Guards i stabilność ścieżki
Tor nie wybiera całkowicie przypadkowego pierwszego węzła przy każdym połączeniu.
Mechanizm Entry Guards ma znaczenie zarówno dla bezpieczeństwa, jak i odporności na określone ataki.
Netbe omawia również wybór węzłów w artykule Jak działa routing losowy i czy naprawdę zwiększa anonimowość.
W systemach anonimowych „więcej losowości” nie zawsze oznacza automatycznie „więcej bezpieczeństwa”.
Dlaczego losowość nie rozwiązuje Traffic Analysis?
Załóżmy, że trasa jest:
A → B → C
a następnie:
D → E → F
Sama zmiana przekaźników nie eliminuje informacji o:
- czasie transmisji,
- wolumenie,
- długości sesji,
- kierunku ruchu.
Jeżeli przeciwnik obserwuje odpowiednie punkty, może nadal szukać korelacji.
Czas jest często ważniejszy niż treść
To bardzo ciekawa właściwość analizy ruchu.
Wyobraźmy sobie:
User A:
09:14:01
09:14:02
09:14:03
09:14:05
i:
Destination:
09:14:01
09:14:02
09:14:03
09:14:05
Jeżeli podobieństwo jest statystycznie istotne, timing może dostarczyć informacji nawet wtedy, gdy wszystkie dane są zaszyfrowane.
Wolumen również zdradza informacje
Niektóre operacje powodują duży transfer:
Small request
↓
Large response
Inne:
Small request
↓
Small response
Jeszcze inne generują serię wielu małych transmisji.
Można więc analizować:
Total bytes
Bytes per burst
Burst frequency
Upload/download ratio
Directionality
Istotny jest również kierunek.
Na przykład:
↑ ↑ ↓ ↓ ↓ ↓
może oznaczać zupełnie inny rodzaj komunikacji niż:
↑ ↓ ↑ ↓ ↑ ↓
Nawet jeśli treść obu transmisji pozostaje całkowicie nieczytelna.
Session Duration
Długość sesji również jest cechą.
Przykładowo:
10 seconds
może reprezentować prostą operację.
Natomiast:
3 hours
może sugerować długotrwałą komunikację.
Sama długość nie pozwala oczywiście stwierdzić, co dokładnie robi użytkownik.
Może jednak być kolejnym elementem modelu klasyfikacyjnego.
Metadata + metadata + metadata
Pojedynczy sygnał może być niewiele wart.
Ale wiele słabych sygnałów może stworzyć mocny profil.
Timing
+
Volume
+
Direction
+
Duration
+
Fingerprint
=
Traffic Profile
To jedna z najważniejszych zasad analizy ruchu.

Korelacja nie musi oznaczać identyfikacji człowieka
To bardzo ważne rozróżnienie.
Traffic Analysis może najpierw odpowiedzieć:
„Te dwa strumienie prawdopodobnie pochodzą z tej samej aktywności.”
Dopiero kolejne źródła informacji mogą odpowiedzieć:
„Ta aktywność prawdopodobnie należy do konkretnego użytkownika.”
Czyli:
Traffic Correlation
↓
Activity Link
↓
Additional Intelligence
↓
Identity Attribution
To już znacznie bardziej złożony proces.
OSINT może uzupełnić brakujące elementy
Jeżeli analiza ruchu pozwoli powiązać aktywność z określonym pseudonimem, kolejnym krokiem może być analiza informacji publicznie dostępnych.
Netbe opisuje tę dziedzinę w materiałach dotyczących OSINT i zbierania informacji z publicznie dostępnych źródeł.
W praktyce można więc zobaczyć model:
Traffic Analysis
↓
Behavioral Pattern
↓
Alias
↓
OSINT
↓
Potential Attribution
To pokazuje, że anonimowość jest właściwością całego ekosystemu, a nie tylko jednego protokołu.
Endpoint może zniszczyć całą ochronę
Najbardziej zaawansowana analiza ruchu może być zupełnie niepotrzebna, jeżeli urządzenie użytkownika jest zainfekowane.
Przykład:
Compromised Endpoint
↓
Information Collection
↓
Tor Browser
↓
Tor Network
Jeżeli dane zostaną pobrane lokalnie, anonimowość sieciowa nie rozwiąże problemu.
Dlatego Tor powinien być analizowany razem z bezpieczeństwem systemu operacyjnego i endpointu.
Fingerprinting przeglądarki i Traffic Analysis mogą się uzupełniać
To dwa różne poziomy analizy.
Browser Fingerprinting
Analizuje właściwości klienta.
Traffic Analysis
Analizuje charakterystykę transmisji.
Razem mogą tworzyć:
Client Fingerprint
+
Traffic Fingerprint
=
Stronger Profile
Netbe opisuje problem fingerprintingu w Jak przeglądarka Tor chroni przed fingerprintingiem i gdzie są jej granice.
Czy Traffic Analysis działa zawsze?
Nie.
To nie jest magiczna metoda identyfikacji.
Skuteczność zależy od:
- jakości danych,
- zakresu obserwacji,
- czasu obserwacji,
- rodzaju ruchu,
- stabilności wzorca,
- poziomu zakłóceń,
- zastosowanych mechanizmów ochronnych.
Dlatego prawidłowe pytanie brzmi:
„Jaki model obserwatora zakładamy?”
Threat Model ma kluczowe znaczenie
Dla zwykłego użytkownika przeciwnikiem może być:
ISP
Dla większej organizacji:
Corporate Monitoring
Dla badacza:
Targeted Adversary
Dla bardzo silnego przeciwnika:
Large-Scale Observer
Każdy z tych modeli ma inne możliwości.
Tor nie obiecuje ochrony przed każdym przeciwnikiem
To ważne, ponieważ marketingowe hasło:
„Tor zapewnia pełną anonimowość”
jest zbyt szerokie.
Lepsze stwierdzenie brzmi:
Tor został zaprojektowany tak, aby utrudnić powiązanie źródła komunikacji z jej celem w określonym modelu zagrożeń.
To znacznie bardziej precyzyjne.
Co można zrobić defensywnie?
Z perspektywy administratora warto rozumieć Traffic Analysis również po to, aby wiedzieć, jakie informacje mogą wyciekać z własnej infrastruktury.
Można analizować:
- nietypowe wzorce ruchu,
- anomalie czasowe,
- długotrwałe sesje,
- nieoczekiwane połączenia,
- charakterystyczne bursty,
- nietypowe proporcje upload/download.
To już obszar klasycznego network monitoring.
Network telemetry jest kluczowa
Bez danych historycznych trudno mówić o analizie anomalii.
Przydatne mogą być:
Flow records
DNS telemetry
Firewall logs
Proxy logs
Endpoint telemetry
Network sensors
Następnie można budować baseline:
Normal Traffic
↓
Baseline
↓
Deviation
↓
Investigation
Traffic Analysis a threat intelligence
Traffic Analysis może być również elementem większego systemu Threat Intelligence.
Na przykład:
External Threat
↓
Known Infrastructure
↓
Network Traffic
↓
Correlation
↓
Security Alert
Wtedy informacja o zagrożeniu nie pozostaje tylko wpisem w bazie.
Zaczyna wpływać na detekcję.
Dlaczego ten temat będzie coraz ważniejszy?
Szyfrowanie staje się standardem.
Coraz więcej komunikacji wykorzystuje:
- HTTPS,
- TLS,
- QUIC,
- szyfrowane DNS,
- komunikatory szyfrowane end-to-end.
To oznacza, że klasyczna inspekcja treści jest coraz trudniejsza.
W efekcie rośnie znaczenie:
metadata analysis.
Paradoks nowoczesnego Internetu
Im więcej szyfrowania:
Less Visible Content
tym większe znaczenie mogą mieć:
Metadata
Timing
Behavior
Patterns
To nie oznacza, że szyfrowanie jest nieskuteczne.
Wręcz przeciwnie.
Oznacza to, że przeciwnicy przesuwają się na wyższy poziom analizy.
Czy można całkowicie wyeliminować Traffic Analysis?
W praktyce byłoby to niezwykle trudne bez ogromnego kosztu.
Aby całkowicie ujednolicić ruch, należałoby bardzo agresywnie kontrolować:
- rozmiary transmisji,
- timing,
- padding,
- częstotliwość,
- opóźnienia,
- długość sesji.
To prowadziłoby do:
Maximum Obfuscation
↓
Maximum Overhead
↓
Poor Usability
Dlatego projektanci systemów anonimowych szukają kompromisu.
Najważniejsza granica anonimowości
Najważniejsza rzecz nie brzmi:
„Czy ktoś może zobaczyć mój ruch?”
Lepsze pytanie brzmi:
„Czy obserwator może połączyć informacje widoczne po obu stronach komunikacji?”
To właśnie sedno Traffic Correlation.
Podsumowanie
Traffic Analysis pokazuje, dlaczego szyfrowanie i anonimowość nie są tym samym.
Tor bardzo skutecznie rozdziela informacje pomiędzy kolejne elementy swojej architektury. Routing cebulowy ogranicza wiedzę pojedynczego przekaźnika, a Onion Services pozwalają dodatkowo ukryć infrastrukturę serwera.
Problem pojawia się na poziomie metadanych transmisji.
Obserwator może analizować:
- timing,
- wolumen,
- kierunek,
- długość sesji,
- bursty,
- fingerprint ruchu.
Następnie może próbować wykorzystać traffic correlation do powiązania dwóch obserwowanych strumieni.
Jeszcze bardziej zaawansowane scenariusze mogą łączyć:
Traffic Analysis
+
Browser Fingerprinting
+
Behavior
+
OSINT
+
Endpoint Intelligence
i dopiero wtedy próbować przypisać aktywność konkretnemu użytkownikowi.
Dlatego Tor nie powinien być traktowany jako magiczna „peleryna niewidzialności”.
To przede wszystkim system ograniczający ilość informacji dostępnych pojedynczemu obserwatorowi.
A granice anonimowości zaczynają się tam, gdzie przeciwnik może obserwować wystarczająco dużo punktów, posiada odpowiednią ilość danych i potrafi je ze sobą skorelować.
Powiązane materiały na Netbe
- Jak działa sieć Tor? – anonimowość, routing cebulowy i zagrożenia
- Jak działa routing cebulowy
- Jak działa traffic obfuscation
- Jak Tor Browser chroni przed fingerprintingiem
- Monitoring ruchu w sieci Tor
- Czy Tor jest naprawdę anonimowy?
- Jak działa mechanizm Onion Services
- Jak działa routing losowy
- OSINT – zbieranie informacji z publicznie dostępnych źródeł






