Next: Wrażliwość na ataki typu
Up: Analiza bezpieczeństwa protokołu
Previous: Analiza bezpieczeństwa protokołu
  Spis treści
Ten rodzaj ataku został oryginalnie opracowany dla protokołu Crowds
przez jego autorów [Reiter98], a następnie rozszerzony na całą klasę protokołów
(w tym Onion Routing) przez Wrighta [Wright02]. Atak ten wykorzystuje fakt, że
podczas komunikacji pomiędzy pewnymi końcowymi stronami komunikacji
(na przykład klientem i serwerem WWW) może dojść do wielokrotnej zmiany
trasy, po której przesyłane są pakiety. Okres pomiędzy takimi zmianami
jest nazywany rundą. Generalnie protokoły takie jak Crowds
i Onion Router używają stałych tras dla połączeń, lecz przewidują
mechanizmy ich zmian. W przypadku Crowds następują one co określony
okres czasu, w Onion Router trasy są ustalane na czas życia pojedynczego
połączenia TCP. Czas potrzebny do przeprowadzenia tego ataku jest funkcją
liczby rund (krótszy dla większej liczby rund). W prezentowanym tu protokole
każdy pakiet jest przesyłany inną trasą (liczba rund równa się liczbie przesłanych
komunikatów), co sugeruje szczególną wrażliwość na tego typu ataki.
Przeciwnikiem w tym ataku jest grupa nieuczciwych serwerów pośredniczących.
Od atakowanego protokołu wymagane są następujące cechy:
- komunikaty przesyłane są przez pewną liczbę serwerów pośredniczących
w określonym porządku;
- trasa opisana w poprzednim punkcie jest okresowo zmieniana;
- serwery pośredniczące na trasie są wybierane losowo spośród wszystkich
dostępnych.
Podczas każdej z rund do przesłania wiadomości wykorzystuje się pewną liczbę
nadawców. Wśród tych nadawców zawsze musi się znaleźć pierwotny nadawca
wiadomości (inicjator). Ponieważ komputery pośredniczące są wybierane losowo,
inicjator ma większe prawdopodobieństwo znalezienia się na trasie komunikacji.
Najprościej atak taki przeprowadzić w przypadku protokołu Crowds.
Charakteryzuje się on tym, że każdy komputer pośredniczący zna jawny
tekst komunikacji. Atakujący serwer pośredniczący stara się ustalić,
który z inicjatorów komunikuje się z odbiorcą . W tym celu
podczas każdej rundy, w której przesyła żądanie dotyczące zapamiętuje
od kogo je otrzymał (czyli poprzednika na trasie). W każdej z rund
ustala jako podejrzanego o bycie inicjatorem serwer, który był
zapamiętany najwięcej razy. Prawdopodobieństwo poprawnego wytypowania
zbiega do 1 ze wzrostem liczby rund. Wynika to z przestawionego
wcześniej faktu, że inicjator będzie pojawiał się na ścieżce częściej niż
jakikolwiek inny serwer pośredniczący.
Działanie tego ataku w przypadku protokołu Onion Router jest bardziej
skomplikowane. W tym wypadku tylko ostatni serwer pośredniczący jest
w stanie ustalić odbiorcę . W związku z tym do przeprowadzenia ataku
potrzebne są co najmniej dwa współpracujące serwery pośredniczące.
Gdy jeden z takich serwerów otrzyma komunikat do , wszystkie pozostałe
zapamiętują serwer będący nadawcą tego komunikatu. Problemem w tym wypadku
jest ustalenie powiązania pomiędzy komunikatami przesyłanymi przez
atakujące serwery. Autorzy opracowania [Wright02] sugerują w tym celu
zastosowanie analizy czasu przesłania.
Zastosowanie opisanej wyżej metody ataku do zaprezentowanego w niniejszej pracy
protokołu mogłoby być podobne do przypadku Onion Router. Nie jest jasne
jednak, w jaki sposób powiązać komunikaty przesyłane przez atakujące miksy.
Analiza czasu przesłania nie wydaje się tu być możliwa ze względu na
jednorazowe wykorzystywanie każdej ścieżki oraz używanie odrębnych ścieżek
powrotnych.
Next: Wrażliwość na ataki typu
Up: Analiza bezpieczeństwa protokołu
Previous: Analiza bezpieczeństwa protokołu
  Spis treści
Michal Szafranski
2003-11-13