Ochrona sieci, bezpieczeństwo systemów komputerowych - securitymag.pl
March 30, 2012, 1:33 pm

Routing cebulowy

1 Star2 Stars3 Stars4 Stars5 Stars (1 głosów, średnia: 5,00 / 5)
Loading ... Loading ...

Anonimowość, czy raczej anonimizacja, jest jednym z najprostszych sposobów zapewnienia sobie dozy prywatności. Co więcej – sama anonimizacja jest w Polsce działaniem w pełni zgodnym z prawem – choć tak się składa, że szczególną dbałość o swoją anonimowość wykazują osoby, które z prawem mają stosunkowo mało wspólnego.

Author: Maciej Szmit

Source: Hakin9 03/2008

Tak czy inaczej zacząć warto od paru podstawowych kwestii. Przede wszystkim, co rozumiemy pod pojęciem anonimowości? Odpowiedniej definicji nie ma niestety w normach poświęconych bezpieczeństwu informacji (choć czujemy, że poczucie bycia anonimowym jakoś zwiększa nasze poczucie bezpieczeństwa, czasami aż za bardzo). Zazwyczaj mówi się, że anonimowość (ang. anonymity) to cecha uniemożliwiająca identyfikację podmiotu – tożsamości osoby lub systemu – oraz uniemożliwiająca przypisanie kilku różnych działań temu samemu podmiotowi. W tym sensie byłaby więc anonimowość zaprzeczeniem znanej (choćby z normy ISO/IEC 17799) cechy rozliczalności. Czasami wyróżnia się pojęcie pseudonymity, które oznacza, że jakkolwiek niemożliwe jest określenie tożsamości działającego, można przyporządkować różne działania tej samej osobie. Na przykład możemy otrzymać dwa niepodpisane listy, z których treści wnosimy, że były wysłane przez tego samego – jednak wciąż nam nieznanego – nadawcę. Oczywiście nasze działania w Internecie nie są anonimowe. Wszyscy – począwszy od administratora pierwszego routera łączącego nas z siecią, a skończywszy na administratorze serwera WWW, którego strony przeglądamy – są w stanie odczytać adres IP, spod którego następuje połączenie, spora część protokołów sieciowych wykorzystuje informacje przesyłane otwartym tekstem, zaś przeglądarki internetowe informują szeroko odwiedzane serwery nie tylko o tym, z jakiej wersji (także językowej) systemu operacyjnego właśnie korzystamy, ale również na przykład o tym, z jakiej strony trafiliśmy na bieżący serwer. Oczywiście również administrator DNSa, z którego usług korzystamy, może bez trudu dowiedzieć się, jakie adresy były nam potrzebne (o ile oczywiście nie posługujemy się stale czystymi, numerycznymi adresami IP). Ponieważ anonimowość jest albo pełna, albo w ogóle jej nie ma, musimy zadbać o ukrycie informacji zarówno na poziomie sieci lokalnej, jak i odwiedzanych serwerów (a także wszystkich pośredników). Oczywiście, w sieci lokalnej nie uda się nam udawać na przykład braku aktywności (coś tam wysyłamy i ściągamy, jakkolwiek możemy ukryć, co to mianowicie jest), natomiast na odwiedzanych serwerach nie ukryjemy, co zostało pobrane (ale możemy nie powiedzieć, przez kogo). Zapewnienie sobie anonimowości powinno zatem polegać na przynajmniej trzech rzeczach:

• przekonaniu naszego lokalnego systemu (w tym: przeglądarki WWW, programu pocztowego, czytnika grup news itd., a także systemu operacyjnego), żeby nie zdradzał zbyt wielu informacji o sobie.

• wykorzystaniu połączeń szyfrowanych w celu uniemożliwienia skutecznego podsłuchu.

• wykorzystaniu anonimowego pośrednika (ang. anonymous proxy), albo – jeszcze lepiej – systemu anonimowych pośredników dla ukrycia naszego adresu IP.

Na szczęście współczesne metody szyfrowania umożliwiają nam zestawienie bezpiecznego, tj. zaszyfrowanego, połączenia pomiędzy naszą maszyną (klientem) a pośrednikiem sieciowym. Pytanie tylko, skąd wziąć zaufanego pośrednika, co do którego będziemy mieli pewność, że sam nas nie podgląda? I tu właśnie z pomocą przychodzi nam TOR.

Rysunek 1. Ruch sieciowy przechwycony podczas przęglądania programem Mozilla

Rysunek 1. Ruch sieciowy przechwycony podczas przęglądania programem Mozilla

Pora na TORa

TOR (ang. The Onion Router) jest zespołem pośredników służących do tzw. trasowania cebulowego, które umożliwia użytkownikom anonimowy dostęp do zasobów Internetu. TOR pozwala również na przeglądanie stron blokowanych przez lokalną cenzurę i dostawców sieci przy pomocy tzw. ukrytych usług, które pozwalają na udostępnianie usług (np. stron WWW) bez potrzeby ujawniania fizycznej lokalizacji serwera.

Tabela 1. Co i gdzie komu ujawniamy

Tabela 1. Co i gdzie komu ujawniamy

Klient podczas łączenia się z siecią TOR pobiera listę węzłów od serwera katalogowego, a następnie buduje sieć pośredników, której struktura jest dodatkowo dynamicznie przebudowywana co kilka minut. W ten sposób wysyłane informacje, zanim dojdą do celu, przechodzą przez kolejne warstwy cebuli – serwery pośredniczące, na których przepakowywane są w pakiety, opatrywane nowymi adresami pochodzenia i dodatkowo szyfrowane. Sieć pośredników zbudowana jest tak, że każdy z przekaźników po drodze zna tylko przekaźnik, z którego otrzymał dane i przekaźnik, któremu dane wysyła (dla każdego skoku w obwodzie używana jest osobna para kluczy, żaden z węzłów połączenia nie jest w stanie odtworzyć trasy pakietu). Co więcej, wstawienie w którejś z warstw wrogiego (podsłuchującego) węzła nie umożliwi zazwyczaj identyfikacji użytkownika (chyba, że będzie to akurat pierwszy węzeł, połączony bezpośrednio z pechowym użytkownikiem). TOR ma oczywiście swoje ograniczenia. Przede wszystkim szyfrowana jest komunikacja TCP, natomiast nie jest to możliwe dla ruchu UDP. Jak się można spodziewać, po UDP zazwyczaj przesyłane są komunikaty DNS (choć można to zmienić), więc cała anonimowość staje pod znakiem zapytania – przynajmniej, dopóki nie użyjemy dodatkowego oprogramowania, na przykład narzędzia Privoxy, które zresztą wchodzi w skład pakietu dystrybucyjnego TORa. Po wtóre – z oczywistych względów – szyfrowanie nie dotyczy komunikacji pomiędzy ostatnim z pośredników (zwanym węzłem wyjściowym TORa) a serwerem, z którego usług chcemy skorzystać. Zwykły serwer bowiem dostarcza usługi wyłącznie w postaci jawnej (nieszyfrowanej), nie mając pojęcia, czy zgłosił się do niego węzeł wyjściowy TORa, czy zwykły użytkownik. Nieco inaczej wygląda to w przypadku serwerów usług ukrytych, które dostępne są w sieci TOR i szyfrują swoją komunikację od początku do końca. Sytuacja taka powoduje, że nie możemy mówić o zapewnieniu pełnej anonimowości. Odpowiednie instytucje mogą monitorować aktywność całej sieci, w tym serwera, a także ruch wychodzący z podejrzanych węzłów TORa i próbować skorelować go ze sobą (tzw. atak end-to-end timing). Wielki Brat musi być w tym wypadku rzeczywiście całkiem spory, najlepiej bowiem byłoby, żeby mógł monitorować ruch w całej sieci (albo na przykład w całym państwie). Co więcej – wrogi węzeł wyjściowy może skierować komunikację do niewłaściwego (podstawionego) serwera. Oczywiście, ponieważ – jak już wspomniano – trasa jest dobierana według specjalnego algorytmu i okresowo zmieniana, zaś lista węzłów pobierana jest z serwera katalogowego, prawdopodobieństwo takiego zdarzenia jest stosunkowo niewielkie – należy jednak zachować ostrożność. Na szczęście TOR umożliwia również ręczne skonfigurowanie węzła wyjściowego.

Rysunek 2. Ruch sieciowy Torpachem

Rysunek 2. Ruch sieciowy Torpachem

Rysunek 3. Różnice między routerem a pośrednikiem

Rysunek 3. Różnice między routerem a pośrednikiem

TOR dla opornych

Najprostszą metodą skorzystania z TORa jest zainstalowanie opartej na Mozilli aplikacji XeroBank Browser (wcześniejsza nazwa Torpark), dostępnej pod adresem http://www.torrify.com. Przeglądarka ta ma wbudowanego klienta sieci TOR, którego wykorzystuje do łączenia się z odwiedzanymi stronami WWW. Co istotne, program ten anonimizuje również ruch DNS, dzięki czemu podsłuchujący widzi jedynie czysty strumień TCP skierowany od naszej maszyny do wejściowego węzła TORa. Temat deanonimizacji TORa powraca regularnie przy różnych okazjach. Na szczęście TOR jest pomyślany i zrealizowany dość porządnie, a poruszające wieści okazują się często niewypałami. No, może nie tyle niewypałami, co hakowaniem ludzi zamiast technologii. Dla przykładu: wystarczy uruchomić kilka wrogich węzłów TORa z logowaniem ruchu sieciowego, żeby po odpowiednim czasie zdobyć hasła użytkowników, którzy uwierzyli, że transmisja haseł SMTP czy FTP staje się po użyciu TORa bezpieczna. Z uwagi na sposób działania algorytmu wyboru ścieżki TORa, wrogi węzeł stanie się wcześniej czy później dla kogoś węzłem końcowym, a – jak pamiętamy – ruch od końcowego węzła do serwera nie jest szyfrowany. Choć wydaje się to dziwne, metoda ta rzeczywiście działa – w 2007 roku pewien szwedzki dziennikarz opublikował listę haseł 100 VIPów korzystających w ten sposób z TORa. Innym sposobem, wymyślonym przez H.D. Moore’a (tego od Metasploita), jest wykorzystanie rozlicznych pluginów, od których roi się w przeglądarkach: może da się jakoś przekonać oprogramowanie obsługujące JavaScript czy Flasha, żeby jednak podało prawdziwe IP przeglądarki? Oczywiście, jeśli zależy nam na anonimowości, to można (trzeba!) te wszystkie dodatki powyłączać. Istnieją też serwisy, w których można sprawdzić, co nasza przeglądarka pokazuje na zewnątrz – również w odniesieniu do obsługi skryptów. Na przykład możemy to uczynić na stronie http://www.showmyip.com/torstatus. Jeśli chcemy zanonimizować coś więcej niż tylko przeglądarkę, powinniśmy sięgnąć po wersję instalacyjną TORa. W skład pakietu instalacyjnego TORa dla Windows wchodzi (oprócz klienta sieci TOR) wspomniane już Privoxy (serwer proxy odpowiadający, oprócz wspomnianej wcześniej anonimizacji żądań DNS, za obsługę cookies, filtrowanie treści i bannerów na stronach WWW), Vidalia (odpowiadająca za konfigurację poszczególnych komponentów i dodatkowo chroniąca komputer) oraz Torbutton – dodatek do Mozilli umożliwiający łatwe włączanie i wyłączanie TORa. Wszystko razem możemy ściągnąć (oczywiście bezpłatnie) ze stron projektu TOR: http://www.torproject.org. W tym samym miejscu możemy znaleźć dokładne informacje o sposobie instalacji pakietu (po polsku i w paru innych językach). W zasadzie (jeśli nie zamierzamy sami zostawać węzłem cebuli) wszystko sprowadza się do użycia zupełnie oczywistego kreatora. Jedynym drobiazgiem jest to, że po zakończeniu instalacji i uruchomieniu TORa, Vidalii i Privoxy musimy skonfigurować aplikacje sieciowe, aby korzystały z pośrednika (czyli właśnie programu Privoxy). Na przykład w Mozilli (o ile nie zainstalowaliśmy aplikacji TORbutton) musimy wybrać z menu odpowiednio opcje: Narzędzia –> Opcje –> Zaawansowane –> Sieć –> Ustawienia –> Ręczna konfiguracja serwerów proxy i w edytorze Serwer proxy HTTP podać adres 127.0.0.1 i port 8118. Bez tego ruch sieciowy generowany przez nas nie będzie oczywiście przechodził przez TORa, pozostanie więc niezaszyfrowany i nie anonimizowany. Na koniec warto wspomnieć o podstawowym mankamencie TORa: spowalnianiu łączności. Oczywiście stopień spowolnienia zależy od tego, jakie węzły będą pośredniczyły w naszej komunikacji, niemniej wrażenie bywa przytłaczające – zwłaszcza, jeśli dysponujemy porządnym łączem internetowym. Dla przykładu, w czasie pisania tego artykułu zmierzyłem prędkość pobierania za pomocą serwisu www.numion.org dla połączenia nieanonimizowanego i anonimizowanego. Wynosiła ona odpowiednio około 30 Mbps (sieć akademicka – Fast Ethernet do sieci kampusowej i dalej światłowód do NASKu) oraz w okolicach 50 kbps. Przy mniejszych szerokościach pasma różnice nie są aż tak drastyczne, niemniej ceną za prywatność jest w tym wypadku pogorszenie komfortu pracy. Ale w informatyce jak w życiu (a może nawet bardziej) – nic za darmo.

Rysunek 4. Zasady działania sieci TOR

Rysunek 4. Zasady działania sieci TOR

Podsumowanie

TOR jest interesującym (i dość skutecznym) sposobem zapewniania prywatności poprzez anonimizację swoich działań w Sieci. Jego najsłabszymi punktami są niewątpliwie: znaczne spowolnienie prędkości transmisji danych oraz konieczność dokładnego skonfigurowania wszystkich elementów systemu, które mogłyby zdradzić tożsamość użytkownika. Na pytanie, czy konieczność myślenia jest poważnym problemem, każdy musi odpowiedzieć sobie sam.

_______________
Maciej Szmit ,
jest adiunktem w Katedrze Informatyki Stosowanej Politechniki Łódzkiej

Komentarze zablokowane.

EN
PL
FR
DE


Software Press Sp. z o.o. Sp. Komandytowa 02-682 Warszawa, ul. Bokserska 1, NIP 9512279582, REGON 141804060, KRS: 0000327578