|
Problem anonimowej komunikacji w Internecie można rozwiązać poprzez opracowanie dedykowanych systemów mogących zapewnić anonimowy dostęp do Internetu. Poprzez anonimowy dostęp do Internetu rozumie się tutaj, że klient może połączyć się i komunikować z serwerem dowolnej usługi w taki sposób, że serwer nie jest w stanie rozpoznać prawdziwego adresu IP klienta, a adwersarz zainteresowany odczytaniem tożsamości obu stron komunikacji nie może poznać adresu IP zarówno klienta, jak i serwera.
Wyróżnia się przy tym dwie podstawowe koncepcje systemów zapewniania anonimowości w Internecie – oparte na pojedynczym oraz na wielu serwerach proxy.
1. Serwery pośredniczące
Serwer pośredniczący (third party proxy server) stanowi trzecią stronę pośredniczącą w pobieraniu zasobów z Internetu (patrz rysunek 1).

Rys. 1. Idea pojedynczego serwera proxy.
Anonimizujący węzeł pośredniczący (serwer proxy) pozwala na ukrywanie wszelkich informacji o kliencie przed serwerem docelowym (np. adres IP). Dodatkowo możliwe jest szyfrowanie transmisji pomiędzy klientem a serwerem pośredniczącym, dzięki czemu ukrywa się jej treść przed potencjalnymi obserwatorami.
Ze względu na funkcjonalność wyróżnia się trzy podstawowe rodzaje proxy: HTTP Proxy, SOCKS Proxy i CGI Proxy.
HTTP Proxy to najbardziej rozpowszechniony typ serwerów proxy i przyjęło się, że pod nazwą „proxy’” kryje się właśnie ten typ. Wcześniej za ich pomocą można było jedynie przeglądać strony WWW lub ściągać pliki. Obecnie korzysta z nich także szereg innych programów wykorzystujących protokół HTTP. Aby skorzystać z HTTP Proxy w dowolnej przeglądarce internetowej należy dokonać jedynie odpowiedniej modyfikacji ustawień tejże przeglądarki. Zaletą (lub wadą – w zależności od potrzeb) HTTP Proxy jest to, iż nie modyfikują pobieranej strony WWW (w przeciwieństwie do CGI Proxy).
SOCKS Proxy z kolei, umożliwiają pracę z praktycznie każdym typem informacji w Internecie (protokół TCP/IP), jakkolwiek aby używać ich w innych aplikacjach poza przeglądarkami WWW wymagane jest oczywiście zaimplementowanie ich obsługi. Warto też zwrócić uwagę na fakt, iż przy pracy z SOCKS Proxy należy sprecyzować ich wersję: SOCKS 4, SOCKS 4a lub SOCKS 5.
Tzw. proxy filtrujące (CGI Proxy) daje dodatkowo szerokie możliwości kontroli nad przesyłanymi zasobami: możliwe jest zarządzanie mechanizmem cookies oraz blokowanie niepożądanych dodatków (np. okien reklamowych), jak również usuwanie skryptów, czy programów w postaci JavaScript’ów, apletów Javy, kontrolek ActiveX. Serwer pośredniczący może dokonywać dowolnych transformacji doręczanego dokumentu. Korzystanie z CGI Proxy możliwe jest wyłącznie poprzez przeglądarkę internetową. Ten typ proxy jako jedyny nie wymaga od klienta ustawiania żadnych opcji przeglądarki, ani ścigania dodatkowego oprogramowania. Zwykle wystarczy odwiedzić stronę domową serwisu oferującego tego typu proxy (np. http://proxy.org) i w odpowiednie pole formularza wpisać URL strony WWW, którą użytkownik chce otworzyć w sposób anonimowy.
Wady serwerów pośredniczących i niedogodności w ich użytkowaniu
Ponieważ ruch na większości serwerów proxy jest logowany strony trzecie mogą się zwrócić do administratora tego serwera, aby udostępnił dane klienta łączącego się za jego pośrednictwem. Użytkownik podejmuje zatem poważne ryzyko korzystając z takiej usługi – ryzyko związane z koncentracją danych o swojej aktywności w sieci WWW w jednym miejscu. W przypadku próby wykorzystania tej możliwości przez osoby zarządzające usługą, użytkownik narażony jest na straty poważniejsze niż przy klasycznym przeglądaniu stron WWW. Co więcej, systemy takie nie zabezpieczają przed analizą ruchu wchodzącego i wychodzącego z serwera proxy. Nic nie stoi na przeszkodzie, by postronna osoba mogła obserwować natężenie ruchu na serwerze proxy, a odwołania dokonywane przez serwer pośredniczący kojarzyła z poprzedzającymi je zgłoszeniami do niego.
Pamiętać należy, iż wszystkie proxy, które nie korzystają z szyfrowania SSL nie zabezpieczają klienta przed ujawnieniem transmitowanych danych przed lokalnym ISP. Analizując ruch na lokalnej bramie można np. wyfiltrować wszelkie dane wpisane w formularzu strony WWW.
Do problemów związanych z bezpieczeństwem serwerów pośredniczących, dochodzą też niedogodności natury czysto praktycznej. Dla zwykłego użytkownika komputera trudność stanowić może odpowiednie skonfigurowanie przeglądarki internetowej lub innego programu wykorzystującego proxy. Samo ustawienie proxy często jest też w ogóle nie możliwe, ponieważ dostawca usług internetowych lub sieć (np. AOL) używa jakiegoś konkretnego proxy, którego nie można manualnie zmienić na inny. Ponadto, dużo problemów stwarza odnalezienie serwerów proxy wystarczająco szybkich, aby możliwe było komfortowe przeglądanie zawartości stron WWW. Wielokrotnie zdarzają się sytuacje timeout’ów, a serwery pośredniczące często przechodzą w stan off-line.
2. Sieci wielu węzłów pośredniczących
Główną wadą systemów opartych na idei pojedynczego serwera proxy jest centralizacja informacji o podejmowanej przez użytkownika aktywności. Mając to na uwadze naturalną koleją rzeczy jest zastąpienie jednego węzła wieloma w taki sposób, że każda wiadomość, zanim trafi do serwera docelowego, zostaje przesłana kolejno przez kilka losowo wybranych węzłów z dostępnej puli (patrz rysunek 2).

Rys. 2. Idea wielu serwerów proxy.
Dodatkowo, aby każdy z węzłów takiej sieci posiadał ograniczoną wiedzę o przekazywanych zasobach oraz aby żaden z węzłów nie wiedział jednocześnie o oryginalnym nadawcy i docelowym odbiorcy, stosuje się zazwyczaj koncepcję szyfrowania warstwowego wiadomości za pomocą kluczy publicznych kolejnych węzłów. Koncepcja ta wywodzi się z bezpośrednio z teorii mix’ów David’a Chauma dotyczącej zapewniania anonimowości przy przesyłaniu poczty elektronicznej i polega na tym, że nadawca szyfruje wiadomość n-krotnie za pomocą n różnych kluczy publicznych, tworząc w ten sposób n zagnieżdżonych warstw szyfrowania. Stosuje się przy tym kolejność szyfrowania odwrotną do kolejności węzłów w ścieżce (pierwsza warstwa jest szyfrowana kluczem publicznym węzła ostatniego). Każdy z n węzłów uczestniczących w komunikacji pomiędzy węzłami końcowymi „usuwa” (dekoduje za pomocą klucza prywatnego) jedną, właściwą sobie warstwę. Przy zastosowaniu takiego rozwiązania, jedynym węzłem, który ma do czynienia z wiadomościami w formie jawnej, jest ostatni mix ścieżki.
Oczywistym jest fakt, iż w przypadku takiego rozwiązania opóźnienia transmisji rosną wraz ze wzrostem liczby węzłów stanowiących ścieżkę, co wymaga kompromisu pomiędzy żądanym stopniem bezpieczeństwa, a akceptowalnym opóźnieniem.
Przykłady realizacji systemów zapewniania anonimowości w oparciu o sieć wielu węzłów pośredniczących to: Tor, JAP, Crowds, Cebolla itp.
Wady i niedogodności w użytkowaniu sieci wielu węzłów pośredniczących
W systemach zapewniania anonimowości działających w oparciu o sieć wielu węzłów pośredniczących nie udało się w pełni wyeliminować zagrożenia spowodowanego atakami polegającymi na analizie natężenia ruchu. Anonimowość wciąż opierana jest na istnieniu zaufanej trzeciej strony – wiedza dostępna dla pojedynczego węzła w systemie serwera pośredniczącego została jedynie rozproszona na wiele węzłów. Nie ma jednak gwarancji, że serwery te nie współpracują ze sobą. Autorzy systemów opartych na wielu węzłach pośredniczących starają się nie wspominać o tym fakcie i zazwyczaj jedynie lakonicznie nadmieniają, że poszczególne węzły powinny należeć do różnych właścicieli (firm). Skoro w procesie tworzenia profili internautów często dochodzi do współdziałania różnych, niezależnych firm, w tym wypadku może być podobnie.
W sieci wielu węzłów pośredniczących przeprowadzić można kilka innych ataków mogących prowadzić do ujawnienia tożsamość prawdziwego inicjatora komunikacji. Wśród nich wymienia się: ataki wykorzystujące słabości procesu szyfrowania wiadomości (message coding attacks); ataki polegające na obserwacji długości transmitowanych wiadomości (message volume attacks); ataki czasowe (timing attacks); ataki przez zalewanie (flooding attacks); ataki oparte na analizie behawioralnej użytkowników systemu (intersection attacks). Większości z ataków można przeciwdziałać, a tym bardziej wyrafinowanym ograniczyć zakres działania. Niemniej jednak sieci wielu węzłów pośredniczących świadczą dużo bezpieczniejsze usługi ochrony prywatności użytkownika Internetu, niż pojedynczy serwer proxy – co ma swe odzwierciedlenie w istniejących systemach anonimizujących.
Oprócz względów bezpieczeństwa istotne są również względy praktyczne. Korzystanie z sieci wielu węzłów pośredniczących jest o tyle utrudnione, że wymaga od użytkowników instalacji dodatkowego oprogramowania. Skutkiem takiego stanu rzeczy może być zmniejszenie poziomu zaufania do świadczonych usług, jako że pobierana aplikacja może stanowić np. tzw. konia trojańskiego. Niebezpieczeństwo stanowi fakt, że użytkownik nie ma możliwości sprawdzenia, co tak naprawdę jest wysyłane do serwera usługi. Wymóg instalacji dodatkowego oprogramowania oznacza również zawężenie grupy usługobiorców, ponieważ stanowi uzależnienie od konkretnej platformy sprzętowej i systemu operacyjnego.
Źródło: Sychowski, J., Nowicki, K.: Systemy zapewniania anonimowości w Internecie - implementacje, “VIII Ogólnopolska Konferencja ‘INTERNET – Wrocław 2006’”, Grudzień 2006.
|