next up previous contents
Next: Wrażliwość na ataki typu Up: Analiza bezpieczeństwa protokołu Previous: Analiza bezpieczeństwa protokołu   Spis treści

Ataki poprzez wykrycie poprzednika

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:

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 $A$ stara się ustalić, który z inicjatorów $I$ komunikuje się z odbiorcą $R$. W tym celu podczas każdej rundy, w której $A$ przesyła żądanie dotyczące $R$ zapamiętuje od kogo je otrzymał (czyli poprzednika na trasie). W każdej z rund $A$ ustala jako podejrzanego o bycie inicjatorem $I$ serwer, który był zapamiętany najwięcej razy. Prawdopodobieństwo poprawnego wytypowania $I$ 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ę $R$. 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 $R$, 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 up previous contents
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