Traffic Confirmation Attacks w Torze: jak analizować wzorce ruchu bez łamania szyfrowania
Informatyka

Traffic Confirmation Attacks w Torze: jak analizować wzorce ruchu bez łamania szyfrowania

Traffic Confirmation Attacks w Torze: jak analizować wzorce ruchu bez łamania szyfrowania

Sieć Tor jest jednym z najbardziej znanych mechanizmów ochrony anonimowości w Internecie. Jej podstawowym zadaniem jest oddzielenie tożsamości użytkownika od celu komunikacji poprzez wielowarstwowe trasowanie ruchu.

Nie oznacza to jednak, że wszystkie informacje o komunikacji znikają.

Nawet jeśli przeciwnik nie zna treści przesyłanych danych, może próbować analizować metadane i charakterystykę ruchu:

  • czas transmisji,
  • rozmiar pakietów,
  • kierunek komunikacji,
  • częstotliwość pakietów,
  • długość sesji,
  • liczbę burstów,
  • wzorce aktywności.

Właśnie na tym opierają się między innymi Traffic Confirmation Attacks oraz Website Fingerprinting.

To ważne zagadnienie, ponieważ pokazuje fundamentalne ograniczenie sieci anonimowych:

Szyfrowanie treści nie oznacza automatycznego ukrycia charakterystyki komunikacji.

W poprzednim artykule serii analizowaliśmy ataki Sybil w sieci Tor. Teraz przechodzimy do kolejnego poziomu: co się dzieje, gdy przeciwnik nie próbuje przejąć tożsamości użytkownika bezpośrednio, ale zaczyna porównywać wzorce ruchu obserwowane w różnych punktach sieci?


Tor ukrywa treść, ale ruch nadal ma swoją charakterystykę

Najprostszy model komunikacji wygląda tak:

Użytkownik
    ↓
Guard
    ↓
Middle
    ↓
Exit
    ↓
Serwer

Dane są wielowarstwowo szyfrowane, a poszczególne elementy infrastruktury nie powinny posiadać kompletnej informacji o komunikacji.

Jednak pakiety nadal muszą:

  • zostać wysłane,
  • dotrzeć do kolejnego węzła,
  • zostać przekazane dalej,
  • wrócić do użytkownika.

W konsekwencji powstaje pewien wzorzec czasowy i objętościowy.

Można go przedstawić bardzo uproszczonym modelem:

czas →

↑
│      ██
│ ██   ██       ███
│ ██ █ ██  ██   ███
└────────────────────→

To nie jest treść komunikacji.

To kształt ruchu.

I właśnie ten kształt może być przedmiotem analizy.

Netbe opisuje podobne zagadnienia w materiale Monitoring ruchu w sieci Tor.


Czym jest Traffic Confirmation Attack?

Traffic Confirmation Attack można w uproszczeniu opisać jako próbę potwierdzenia, że:

ruch A

oraz

ruch B

są częściami tej samej komunikacji.

Przeciwnik nie musi więc od razu wiedzieć:

„To jest Marek i odwiedza konkretną stronę”.

Może zacząć od znacznie bardziej ograniczonego pytania:

„Czy te dwa obserwowane strumienie ruchu prawdopodobnie pochodzą z tej samej sesji?”

Schemat:

Punkt obserwacyjny A
        ↓
   Traffic Pattern
        ↓
      ??????
        ↑
   Traffic Pattern
        ↑
Punkt obserwacyjny B

Jeżeli wzorce są wystarczająco charakterystyczne, przeciwnik może próbować je skorelować.


To nie jest odszyfrowanie

To rozróżnienie jest niezwykle ważne.

Załóżmy:

Packet #1 → 1480 bytes
Packet #2 → 1480 bytes
Packet #3 → 820 bytes
Packet #4 → 1480 bytes

Przeciwnik może nie wiedzieć, co znajduje się w środku.

Może jednak wiedzieć:

size
time
direction
sequence
duration

Czyli:

CONTENT = hidden
METADATA = partially observable

Dlatego można prowadzić analizę ruchu bez łamania szyfrowania.


Dlaczego timing jest tak istotny?

Wyobraźmy sobie dwa punkty obserwacyjne.

Pierwszy rejestruje:

10:00:01.12
10:00:01.17
10:00:01.31
10:00:01.35
10:00:01.92

Drugi:

10:00:01.29
10:00:01.34
10:00:01.48
10:00:01.52
10:00:02.09

W rzeczywistym Torze sytuacja jest oczywiście bardziej skomplikowana, ponieważ występują opóźnienia, kolejkowanie, padding, zmiany ścieżki i inne czynniki.

Ale sam mechanizm jest ważny:

INPUT
 ↓
pattern
 ↓
Tor
 ↓
OUTPUT
 ↓
similar pattern

Jeżeli wzorzec jest wystarczająco charakterystyczny, można próbować szukać korelacji.


Traffic Confirmation kontra Traffic Correlation

Terminy te bywają stosowane zamiennie, ale warto je rozdzielić koncepcyjnie.

Traffic correlation oznacza analizowanie podobieństwa dwóch strumieni.

Traffic confirmation idzie krok dalej:

przeciwnik posiada dodatkową hipotezę i próbuje ją potwierdzić za pomocą obserwowanego ruchu.

Przykładowo:

Hipoteza:
Użytkownik X ↔ Usługa Y

        ↓

Obserwacja ruchu

        ↓

Porównanie wzorców

        ↓

Confidence Score

Nie musi to oznaczać stuprocentowego dowodu.

Może oznaczać jedynie:

Probability ↑

A w analizie anonimowości właśnie to może mieć znaczenie.


Website Fingerprinting – cyfrowy „kształt” strony

Jeszcze ciekawszym problemem jest Website Fingerprinting.

Wyobraźmy sobie, że przeciwnik zna charakterystykę ruchu generowanego podczas odwiedzania określonych stron.

Może wcześniej zebrać dane:

Website A
→ pattern A

Website B
→ pattern B

Website C
→ pattern C

Następnie obserwuje anonimowego użytkownika:

Unknown User
→ pattern X

i próbuje odpowiedzieć:

X ≈ A ?
X ≈ B ?
X ≈ C ?

Nie musi więc odczytywać adresu URL bezpośrednio.

Może próbować wnioskować, dokąd użytkownik się udał.


Dlaczego strony mogą mieć różne fingerprinty?

Każda strona generuje inny zestaw zasobów:

  • HTML,
  • CSS,
  • JavaScript,
  • obrazy,
  • fonty,
  • API,
  • reklamy,
  • dodatkowe requesty,
  • multimedia.

W rezultacie powstaje charakterystyczny ruch:

HTML
 ↓
CSS
 ↓
JS
 ↓
Image
 ↓
API
 ↓
Image
 ↓
Font

Inna strona może wygenerować:

HTML
 ↓
JS
 ↓
API
 ↓
API

W efekcie obie sesje mogą mieć różną charakterystykę.


Fingerprint nie musi zawierać adresu strony

To bardzo ważna różnica.

Przeciwnik może nie zobaczyć:

https://example.com/private-page

Może natomiast zobaczyć coś w rodzaju:

Packet sequence:
↑ ↓ ↑ ↑ ↓ ↓ ↑

Burst:
████████

Idle:
───

Burst:
████████████

I porównać ten wzorzec z wcześniej zgromadzonymi próbkami.


Closed-world i open-world

W badaniach Website Fingerprinting często rozróżnia się dwa modele.

Closed-world

Przeciwnik zna ograniczony zestaw możliwych stron:

A
B
C
D
E

i próbuje ustalić:

Unknown → A/B/C/D/E

To stosunkowo łatwiejszy problem.

Open-world

Rzeczywisty Internet zawiera ogromną liczbę możliwych celów.

Wtedy przeciwnik musi odpowiedzieć:

Czy ten fingerprint
pasuje do którejś
z obserwowanych stron?

To znacznie trudniejsze.


Dlaczego Darknet jest interesującym przypadkiem?

W przypadku usług .onion sytuacja jest szczególna.

Adres usługi nie działa jak klasyczna domena WWW.

Architektura Onion Services została zaprojektowana właśnie po to, aby ukrywać lokalizację serwera.

Netbe omawia ten mechanizm w artykule Jak działa mechanizm Onion Services – usługi .onion od strony technicznej.

Jednak również tutaj ruch może posiadać określone właściwości.

To oznacza:

Hidden IP
    ≠
Hidden traffic characteristics

To bardzo ważne rozróżnienie.


Czy można fingerprintować usługę .onion?

W sensie koncepcyjnym tak.

Jeżeli przeciwnik posiada odpowiednio dużo danych treningowych, może próbować rozpoznawać charakterystyczne wzorce aktywności.

Może interesować go:

request size
response size
timing
burst patterns
session length
direction changes

Nie oznacza to jednak automatycznie identyfikacji serwera.

Fingerprinting jest mechanizmem wnioskowania, a nie magicznym sposobem poznania ukrytego IP.


Sybil + Traffic Confirmation

Tutaj pojawia się bezpośrednie połączenie z poprzednim artykułem.

Sybil może zwiększać możliwość obserwowania określonych fragmentów infrastruktury.

Traffic Confirmation pozwala następnie próbować odpowiedzieć:

Czy ruch obserwowany tutaj
jest tym samym ruchem,
który widzę tam?

Model może wyglądać następująco:

             Attacker
            /        \
           /          \
      Observation A   Observation B
           \          /
            \        /
             Correlation
                 ↓
             Hypothesis

Właśnie dlatego te dwa zagadnienia powinny być analizowane razem.


Globalny przeciwnik to zupełnie inna klasa zagrożenia

Najbardziej wymagającym modelem jest przeciwnik posiadający możliwość obserwowania dużych fragmentów Internetu.

Przykładowo:

ISP
 |
Internet Exchange
 |
Backbone
 |
Data Center
 |
Tor infrastructure

Taki przeciwnik może mieć znacznie więcej danych niż operator pojedynczego relay’a.

Nie oznacza to automatycznie możliwości deanonymizacji każdego użytkownika.

Oznacza jednak większy potencjał analityczny.


Dlaczego Tor nie może po prostu „ukryć wszystkiego”?

Ponieważ sieć musi dostarczać dane.

Jeżeli użytkownik pobiera:

10 MB

serwer musi ostatecznie wysłać odpowiednią ilość informacji przez sieć.

Można próbować:

  • dodawać padding,
  • opóźniać pakiety,
  • generować ruch pozorny,
  • normalizować rozmiary,
  • zmieniać sposób transmisji.

Ale wszystko to ma koszt.

More Privacy
      ↓
More Overhead
      ↓
Lower Efficiency

To jeden z podstawowych kompromisów projektowych sieci anonimowych.


Traffic Obfuscation jako odpowiedź

Jedną z metod ograniczania tego problemu jest Traffic Obfuscation.

Celem jest sprawienie, aby rzeczywisty ruch był mniej charakterystyczny.

Zamiast:

A:
██ ██ ███ █████ ██

można próbować uzyskać wzorzec bardziej zbliżony do:

A:
████ ███ ████ ███ ███

Tak, aby trudniej było powiedzieć:

Pattern A = Website X

Netbe analizuje ten temat w artykule Jak działa ukrywanie metadanych w ruchu sieciowym – Traffic Obfuscation.


Padding

Jednym z podstawowych mechanizmów jest padding.

Jeżeli prawdziwa wiadomość ma:

820 bytes

system może przesłać większą strukturę:

1500 bytes

zawierającą dodatkowe dane niewnoszące informacji dla odbiorcy.

Celem jest zmniejszenie ilości informacji wynikającej z rozmiaru transmisji.

Ale padding kosztuje:

Bandwidth ↑
Latency ↑
Processing ↑

Dlatego nie można bez końca zwiększać ilości sztucznego ruchu.


Burst patterns

Szczególnie interesujące są bursty, czyli krótkie okresy intensywnej transmisji.

Przykład:

Idle
 ↓
██████████
 ↓
Idle
 ↓
████
 ↓
Idle
 ↓
██████████████

Taki wzorzec może być charakterystyczny dla określonej aplikacji lub strony.

Dlatego analiza samych średnich wartości:

Average bandwidth

może być niewystarczająca.

Liczy się również:

temporal structure

czyli struktura ruchu w czasie.


Directionality

Kolejną cechą jest kierunek ruchu.

Przykład:

Client → Server
↑↑↑↑↑

Server → Client
↓↓↓↓↓↓↓↓↓↓

Strona może najpierw wysłać duży dokument, potem kilka odpowiedzi API, a następnie obrazy.

Powstaje określona sekwencja:

↑ ↑ ↓ ↓ ↓ ↑ ↓

Taki wzorzec może być wykorzystany jako jedna z cech fingerprintu.


Session length

Również czas trwania sesji może być interesujący.

Przykładowo:

Website A
≈ 2.4 s

Website B
≈ 17.8 s

Website C
≈ 63 s

Sam czas oczywiście nie wystarczy.

Ale w połączeniu z:

size
timing
direction
bursts

może tworzyć bardziej charakterystyczny profil.


Machine Learning zmienia skalę problemu

Klasyczne fingerprinting może wykorzystywać ręcznie zdefiniowane cechy.

Nowoczesne modele mogą natomiast analizować ogromne ilości próbek.

Schemat:

Thousands of sessions
        ↓
Feature extraction
        ↓
Training
        ↓
Classifier
        ↓
Unknown session
        ↓
Prediction

Model może wykorzystywać kombinację wielu cech zamiast pojedynczego parametru.


Ale model ML nie jest magiczny

Machine Learning ma również ograniczenia.

Jeżeli dane treningowe:

≠
real-world traffic

model może działać znacznie gorzej.

Problemem są między innymi:

  • różne urządzenia,
  • różne wersje przeglądarki,
  • zmiany strony,
  • CDN,
  • reklamy,
  • cache,
  • dynamiczny JavaScript,
  • zmiany sieci,
  • packet loss,
  • opóźnienia.

Fingerprint może więc z czasem przestać być stabilny.


Dynamiczne strony utrudniają fingerprinting

Załóżmy, że dzisiaj strona generuje:

Pattern A

a po aktualizacji:

Pattern B

Model uczony na Pattern A może mieć problem.

To prowadzi do kolejnego ważnego problemu:

fingerprinting musi być aktualizowany.

Przeciwnik potrzebuje więc nie tylko danych, ale również aktualnego modelu środowiska.


CDN i cache dodatkowo komplikują analizę

Nowoczesna strona internetowa może korzystać z:

CDN
+
Cache
+
API
+
Dynamic content

Dwóch użytkowników może więc uzyskać różne wzorce ruchu podczas odwiedzania tego samego adresu.

Przykład:

User A → Cache HIT
User B → Cache MISS

A to może oznaczać zupełnie inną sekwencję transmisji.


Czy Tor jest wobec tego bezbronny?

Nie.

Tor został zaprojektowany z uwzględnieniem tego, że anonimowość jest problemem wielowarstwowym.

Nie istnieje jednak jeden mechanizm, który rozwiązuje wszystkie możliwe modele przeciwnika.

Możemy przedstawić sytuację tak:

Tor
 ↓
reduces direct observability
 ↓
reduces identity linkage
 ↓
reduces path visibility

ale:

Tor
 ≠
perfect protection against every traffic analysis attack

To zasadnicza różnica.


Anonimowość jest właściwością całego systemu

Użytkownik może mieć:

Tor
+
VPN
+
Tails

a mimo to popełnić błąd:

login with personal account

Wtedy anonimowość może zostać osłabiona niezależnie od jakości routingu.

Dlatego Netbe słusznie rozdziela w materiałach temat technologii od OPSEC i zachowania użytkownika. Warto zobaczyć również Anonimowość w Darknecie – metody, narzędzia i ich skuteczność.


Traffic Isolation

Kolejnym ważnym mechanizmem jest izolacja aktywności.

Jeżeli różne działania są odpowiednio rozdzielone:

Activity A
   ↓
Circuit A

Activity B
   ↓
Circuit B

zmniejsza się ryzyko przypadkowego łączenia aktywności.

Traffic Isolation nie eliminuje jednak wszystkich problemów związanych z analizą ruchu.

To raczej kolejna warstwa ochronna.

Więcej informacji znajduje się w Jak działa separacja ruchu (Traffic Isolation) w sieciach anonimowych.


Tor Browser i standaryzacja fingerprintu

Istotnym elementem ochrony prywatności jest ograniczanie różnic pomiędzy użytkownikami.

Jeżeli każdy użytkownik posiadałby unikalny zestaw:

screen resolution
fonts
plugins
browser APIs
JavaScript behavior

powstałby bardzo silny fingerprint przeglądarki.

Tor Browser stara się więc ograniczać możliwość takiego indywidualnego rozpoznania.

To inny rodzaj fingerprintingu niż Website Fingerprinting, ale oba problemy mogą się wzajemnie uzupełniać.


Dwa różne fingerprinty

Warto je rozdzielić.

Browser Fingerprinting

Pytanie:

„Czy to ten sam użytkownik/urządzenie?”

Website Fingerprinting

Pytanie:

„Dokąd prawdopodobnie udał się użytkownik?”

Możemy więc mieć:

Browser Fingerprint
        +
Traffic Fingerprint
        ↓
Stronger inference

To pokazuje, dlaczego anonimowość wymaga ochrony na wielu poziomach.

 

Traffic Confirmation Attacks w Torze: jak analizować wzorce ruchu bez łamania szyfrowania
Traffic Confirmation Attacks w Torze: jak analizować wzorce ruchu bez łamania szyfrowania

Onion Services i brak klasycznego Exit Node

W przypadku usług .onion nie występuje klasyczny Exit Node prowadzący do publicznego Internetu.

To ogranicza niektóre klasy obserwacji.

Jednocześnie pojawia się bardziej złożona topologia komunikacji.

W uproszczeniu:

Client
 ↓
Tor circuit
 ↓
Rendezvous
 ↑
Tor circuit
 ↑
Onion Service

To kolejny powód, dla którego analiza ruchu w Onion Services jest ciekawym zagadnieniem badawczym.


Alternatywy dla Tora

Traffic analysis nie jest problemem wyłącznie Tora.

Dotyczy również innych sieci anonimowych.

Netbe analizuje m.in. alternatywne sieci anonimowe – I2P, Freenet i inne rozwiązania.

Każdy system musi odpowiedzieć na podobne pytania:

Co ukrywamy?
Przed kim?
Jak długo?
Jakim kosztem?

Różne architektury podejmują inne kompromisy pomiędzy:

privacy
performance
latency
scalability

Najbardziej interesujące jest połączenie kilku technik

Zaawansowany przeciwnik może teoretycznie łączyć:

Sybil infrastructure
        +
Relay observation
        +
Traffic fingerprinting
        +
Timing analysis
        +
External network telemetry
        +
OSINT

Każdy element osobno może być niewystarczający.

Razem mogą jednak zwiększać confidence określonej hipotezy.

To jest bardzo ważna zasada współczesnej analizy bezpieczeństwa:

Nie zawsze trzeba znaleźć jeden dowód. Czasami wystarczy połączyć wiele słabych sygnałów.


Czy użytkownik może całkowicie wyeliminować ten problem?

Nie.

Może natomiast ograniczać ilość informacji, którą generuje.

Najważniejsze zasady to:

  1. korzystać z aktualnego Tor Browser,
  2. nie modyfikować go bez potrzeby,
  3. nie instalować dodatkowych rozszerzeń,
  4. nie mieszać anonimowych i osobistych aktywności,
  5. unikać logowania do kont związanych z prawdziwą tożsamością,
  6. pamiętać, że VPN nie jest magiczną warstwą anonimowości,
  7. rozumieć ograniczenia Tor względem globalnego przeciwnika,
  8. stosować izolację aktywności,
  9. traktować pobierane pliki jako potencjalne źródło deanonymizacji,
  10. pamiętać, że anonimowość jest kombinacją technologii i OPSEC.

Dodatkowe praktyczne informacje można znaleźć w Jak uzyskać dostęp do Darknetu w sposób bezpieczny?.


Najważniejszy wniosek

Traffic Confirmation Attack pokazuje, że bezpieczeństwo sieci anonimowych nie kończy się na pytaniu:

„Czy ktoś może odszyfrować mój ruch?”

Znacznie ciekawsze pytanie brzmi:

„Czy ktoś może wywnioskować, co robię, obserwując charakterystykę mojego ruchu?”

To dwie zupełnie różne klasy problemów.

Możemy mieć:

Content
████████████████
ENCRYPTED

ale jednocześnie:

Timing
████████████████

Size
████████████████

Direction
████████████████

Bursts
████████████████

Jeżeli przeciwnik posiada odpowiednią widoczność, te informacje mogą zostać wykorzystane do budowania hipotez.

Nie oznacza to, że Tor przestaje działać.

Oznacza to, że anonimowość jest probabilistyczną właściwością całego systemu, a nie prostym skutkiem zastosowania szyfrowania.


Podsumowanie

Traffic Confirmation Attacks i Website Fingerprinting to jedne z najciekawszych zagadnień w analizie bezpieczeństwa sieci Tor.

Najważniejsze punkty:

  • szyfrowanie nie ukrywa automatycznie wszystkich metadanych,
  • czas i rozmiar transmisji mogą tworzyć charakterystyczne wzorce,
  • Traffic Correlation próbuje znaleźć podobieństwo pomiędzy obserwowanymi strumieniami,
  • Traffic Confirmation służy do wzmacniania określonej hipotezy,
  • Website Fingerprinting może próbować rozpoznać cel komunikacji na podstawie charakterystyki ruchu,
  • Sybil może zwiększać możliwości obserwacyjne przeciwnika,
  • padding i traffic obfuscation mogą utrudniać analizę,
  • większa ochrona prywatności zwykle oznacza dodatkowy koszt wydajności,
  • Machine Learning może automatyzować klasyfikację wzorców,
  • dynamiczny charakter współczesnego Webu utrudnia stabilny fingerprinting,
  • Onion Services mają inną topologię niż klasyczny dostęp przez Exit Node,
  • OPSEC użytkownika pozostaje równie ważny jak sama technologia.

Najważniejsza lekcja jest prosta:

Tor ma ukrywać relację pomiędzy użytkownikiem a celem komunikacji, ale nie należy zakładać, że każdy aspekt ruchu sieciowego staje się niewidoczny.

Właśnie na tej granicy pomiędzy szyfrowaniem, anonimowością i analizą metadanych zaczyna się najbardziej interesująca część badań nad Darknetem.

Powiązane materiały Netbe

 

Polecane wpisy
Jak zmniejszyć rozmiar pliku PDF, JPG, MP4 lub innych?
Jak zmniejszyć rozmiar pliku PDF, JPG, MP4 lub innych?

Jak zmniejszyć rozmiar pliku PDF, JPG, MP4 lub innych? Istnieje wiele sposobów na zmniejszenie rozmiaru pliku bez utraty zbyt dużej Czytaj dalej

Rejestr systemowy Windows i naprawa błędów związanych z brakującymi wpisami DLL
Rejestr systemowy Windows i naprawa błędów związanych z brakującymi wpisami DLL

🛠 Rejestr systemowy Windows i naprawa błędów związanych z brakującymi wpisami DLL Rejestr systemowy Windows to centralna baza danych konfiguracji Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.