Projekt Tor oferuje potężną kolekcję narzędzi służących do ochrony naszej prywatności w Internecie. W niniejszym artykule zaprezentujemy podstawy Tora i pokażemy, jak rozpocząć pracę z przeglądarką Tor.
Użytkownicy komputerów zostawiają po sobie w Internecie wiele śladów. Odwiedzane strony WWW, interakcje, zakupy, często używane hasła itp., nawet jeśli jesteśmy ostrożni, to wszystko, co robimy online, może zostać zarejestrowane i w najgorszym przypadku wykorzystane przeciwko nam. Na szczęście istnieje coraz więcej aplikacji służących do przywracania utraconej prywatności i bezpieczeństwa w sieci WWW, przy czym najbardziej dojrzałą z nich jest Przeglądarka Tor [1] (Rysunek 1).
Tor (skrót od The Onion Router) to zmodyfikowana wersja Firefoksa zaprojektowana do ukrywania naszych śladów w Internecie. Tor ukrywa nasz elektroniczny ślad, przekierowując nasze interakcje przez kilka serwerów i na każdym etapie szyfrując przesyłane dane. Sieć serwerów Tora jest zdecentralizowana, co jeszcze bardziej utrudnia śledzenie naszej komunikacji. W ciągu ostatnich dwóch dekad do podstawowej przeglądarki dodano kilka funkcji, które zapewniają głęboką ochronę przed intruzami w zakresie prywatności i bezpieczeństwa.
Koncepcja tzw. routingu cebulowego została pierwotnie opracowana przez Marynarkę Wojenną Stanów Zjednoczonych w latach 90. XX wieku jako sposób zabezpieczenia komunikacji przez Internet. Projekt Tor został uruchomiony w 2002 roku. W 2004 roku Marynarka Wojenna udostępniła kod na warunkach wolnej licencji, a fundacja EFF (Electronic Frontier Foundation) już na wczesnym etapie wspierała projekt finansowo. W dzisiejszym świecie użytkownicy mieszkający w krajach demokratycznych myślą o prywatności jako o ochronie przed śledzeniem przez reklamodawców i agregacją dużych zbiorów danych, ale pierwotna wizja Tora była bardziej związana z ideą zapewnienia bezpiecznej komunikacji dla dysydentów w krajach autorytarnych. Projekt Tor jest dumny ze swojego wkładu i wsparcia dla ruchu Arabskiej Wiosny w 2010 roku; z Tora korzystało też wielu znanych demaskatorów nadużyć władz, takich jak Eric Snowden czy Julian Assange. Różne grupy humanitarne, w tym Human Rights Watch i Biuro Demokracji, Praw Człowieka i Pracy rządu USA, wspierają projekt Tor ze względu na to, że znacznie zwiększa wolność słowa użytkowników mieszkających w krajach o reżimach autorytarnych.
Ponieważ wbudowane w Tora mechanizmy zapewniające anonimowość i prywatność są wyjątkowo potężne, nie powinno nikogo dziwić, że jest on wykorzystywany również przez przestępców. Szantażyści przeprowadzający ataki ransomware często wykorzystują sieć Tor do płacenia okupu; tor jest też wykorzystywany przez użytkowników tzw. Darknetu, gdzie sprzedawane są wszelkiego rodzaju nielegalne towary, od numerów skradzionych kart kredytowych po substancje psychoaktywne. Twórcy Tora przyznają, że niektórzy przestępcy używają stworzonej przez nich technologii do nielegalnych celów, ale twierdzą, że „większość naszych użytkowników używa Tora w odpowiedzialny sposób”.
Niektórzy używają Tora ze względu na wyznawane zasady: uważają, że każdy ma prawo sam kontrolować dostęp do swoich danych. Inni chcą uniknąć profilowania bądź ataków ze względu na wyznawane poglądy. Jeszcze inni chcą ominąć cenzurę wprowadzoną przez władze danego kraju. Zdarzają się też ofiary nadużyć i informatorzy ujawniający korupcję w korporacjach lub rządach. Na witrynie Tora znajdziemy stronę szczegółowo opisującą rosnącą listę uzasadnionych powodów, by korzystać z Tora [2], przy czym na czoło wysuwa się prywatność i bezpieczeństwo – i są to problemy, z którymi popularne systemy operacyjne kiepsko sobie radzą, a niektóre dodatkowo je pogłębiają, śledząc wszelkie poczynania użytkowników. Celem Tora jest poprawienie tej sytuacji i zapewnienie użytkownikom większego bezpieczeństwa.
Routing w Torze
Sieć Tor to zbiór serwerów z oprogramowaniem, które pozwala im uczestniczyć w tzw. routingu cebulowym. Routing cebulowy istnieje dłużej niż sieć Tor i jest terminem bardziej ogólnym – sieć Tor zawiera określony zestaw protokołów opartych na koncepcji routingu cebulowego.
Szczegóły są dość złożone, ale zasadniczo chodzi o to, że system klienta przeglądarki Tor (zwany inicjatorem) kieruje wiadomość przez szereg przekaźników Tora (patrz Rysunek 2). Wiadomość jest szyfrowana warstwami, dzięki czemu każdy przekaźnik wie tylko dwie rzeczy: który węzeł wysłał wiadomość i gdzie przekazać ją dalej. Przekaźnik nie zna treści wiadomości ani jej źródła. Węzeł wyjściowy na końcu trasy zna ostateczne miejsce docelowe pakietu, ale nie zna źródła. Węzeł wejściowy na początku trasy zna źródło, ale nie miejsce docelowe.
Jak widać na Rysunku 2, kluczem do działania tego procesu jest przygotowanie wiadomości, która pozwoliłaby każdemu węzłowi na ścieżce wiedzieć tylko to, co musi wiedzieć – nic więcej. Klient Tora konstruuje tę wiadomość, korzystając z warstw (Rysunek 3), które „obiera się” krok po kroku jak warstwy cebuli – stąd nazwa „routing cebulowy”.
Aby zbudować tę wielowarstwową wiadomość (zwaną „cebulą”), klient Tora musi uzyskać symetryczny klucz sesji od każdego węzła trasy. Klucze te są uzyskiwane przez serię połączeń między węzłami trasy wykorzystujących klucz publiczny (Diffie-Hellman), po czym zaszyfrowane klucze sesji są przekazywane z powrotem do klienta.
Klient szyfruje wiadomość, którą zamierza wysłać do serwera docelowego w kluczu sesji dla węzła 3. Ta zaszyfrowana wiadomość jest następnie szyfrowana kluczem sesji dla węzła 2, a ta wiadomość jest z kolei szyfrowana kluczem dla węzła 1. Gdy węzeł 1 odbiera wiadomość, zna nadawcę, ale nie wie, czy nadawca jest prawdziwym nadawcą, czy tylko kolejnym ogniwem w łańcuchu. Węzeł 1 odszyfrowuje zewnętrzną wiadomość za pomocą klucza sesji węzła 1 i dowiaduje się, że ma wysłać wiadomość do węzła 2, chociaż nie widzi ani zawartości, ani ostatecznego miejsca docelowego. Węzeł 2 z kolei odszyfrowuje wiadomość kluczem sesji węzła 2 i dowiaduje się, że powinien wysłać wiadomość do węzła 3. Węzeł 3 odszyfrowuje ostatnią warstwę i dowiaduje się, że musi wysłać wiadomość do serwera docelowego. Węzeł 3 nie wie, kto jest autorem wiadomości, ale wie, że otrzymał wiadomość z węzła 2 i pamięta ten fakt, więc będzie wiedział, jak przekazać odpowiedź z powrotem z serwera.
W odpowiedzi serwera z powrotem do klienta zachodzi podobny proces, tyle że w odwrotnej kolejności. Każdy węzeł dodaje warstwę szyfrowania, zasłaniając źródło odpowiedzi, a klient na końcu łańcucha rozpakowuje wszystkie warstwy, korzystając z uzyskanych wcześniej kluczy sesji.
Jak widać, proces ten wymaga wielu kroków i obliczeń, więc sieć Tor jest znacznie wolniejsza niż zwykły ruch internetowy.
Instalacja Tora
Tor jest dostępny w większości dystrybucji. Jednak z wyjątkiem stale aktualizowanych dystrybucji, wersja znajdująca się w repozytorium prawdopodobnie nie jest najnowsza i dlatego może nie być bezpieczna. W przeszłości niektóre dystrybucje (zwłaszcza Ubuntu) pozostawały tak daleko w tyle za najnowszą wersją, że twórcy projektu Tor zaczęli ostrzegać przed używaniem pakietów dystrybucyjnych. Jeśli więc korzystamy z Ubuntu i inne pochodnych Debiana, bezpieczniej jest skonfigurować repozytorium Debiana utrzymywane w ramach projektu Tor [3].
Bez względu na rodzaj dystrybucji możemy pobrać Tora bezpośrednio z witryny projektu [4]. Oprócz Linuksa dostępne są też pakiety dla systemów Android, macOS, Windows oraz kod źródłowy, obsługiwanych jest też 36 języków innych niż angielski (Rysunek 4), w tym oczywiście polski. Plik bez kompresji ma nazwę tor-browser_JĘZYK, na przykład tor-browser_pl-PL dla wersji w języku polskim. Po rozpakowaniu pliku przechodzimy do nowo utworzonego katalogu i klikamy start-tor-browser.desktop. Możemy też zarejestrować Tora jako część środowiska graficznego za pomocą polecenia:
./start-tor-browser.desktop --register-app
Aby Tor był dostępny dla całego systemu, rozpakowujemy pobrane pliki w katalogu /opt, w razie potrzeby odpowiednio modyfikując prawa dostępu.
Kliknięcie start-tor-browser.desktop otworzy launchera Tora (Rysunek 5). Jeśli chcemy, możemy włączyć automatyczne łączenie się z siecią Tor w przyszłości. Kiedy po raz pierwszy klikniemy przycisku Połącz, nawiązanie połączenia nastąpi za 15–30 sekund, ale później zajmie to tylko kilka sekund. Zacznijmy od przejrzenia pomocy online w lewym górnym rogu, gdzie możemy też między innymi dostosować domyślne ustawienia prywatności i bezpieczeństwa (Rysunek 6). Jak to zwykle bywa, musimy zdecydować się na pewien kompromis między bezpieczeństwem i prywatnością a wygodą. Ustawienia, z którymi da się w miarę wygodnie pracować, znajdziemy metodą prób i błędów. Choć dysponujemy zmodyfikowaną wersją przeglądarki Firefox, pamiętajmy, by nie dodawać żadnych rozszerzeń, które nie są jawnie wspierane przez Projekt Tor, ponieważ mogą one zagrozić zachowaniu bezpieczeństwa i prywatności. Rozszerzenia Firefoksa są bardzo przydatne i wygodne, ale jest ich po prostu zbyt wiele, by dało się je wszystkie sprawdzić, zwłaszcza że wystarczy jedna aktualizacja, by dane rozszerzenie przestało być bezpieczne. Z tego powodu nie powinniśmy zmieniać domyślnych ustawień konfiguracyjnych, które zostały starannie przygotowane.
Po podłączeniu z przeglądarki Tor można korzystać jak z każdej innej wersji Firefoksa. Możemy ją skonfigurować tak, aby automatycznie używała ukrytych witryn .onion, jeśli są dostępne. Do anonimizacji wyszukiwań, w tym wyszukiwań w Google, używany jest DuckDuckGo. Aby zapewnić sobie optymalny poziom ochrony, należy często sprawdzać dostępność aktualizacji.
Funkcje specyficzne dla Tora
Podczas korzystania z przeglądarki Tor powinieneś zdawać sobie sprawę z jej unikatowych funkcji znajdujących się w prawym górnym rogu okna. Tuż obok pola do wprowadzania adresów URL znajduje się przycisk do regulacji poziomu bezpieczeństwa, korzystający z tego samego okna, które jest dostępne w pomocy launchera Tora. Znajdująca się obok ikona miotły uruchamia ponownie Tora, przyznając nam nową tożsamość tymczasową. Trzeci przycisk to standardowe menu Firefoksa, zmodyfikowane pod kątem Tora. W sekcji Dodatki i motywy znajdziemy dodatki współpracujące z Torem. HTTPS Everywhere (Rysunek 7) to efekt współpracy Projektu Tor z EFF, który w miarę możliwości wymusza wyświetlanie stron za pomocą szyfrowanego protokołu HTTPS, a nie niezaszyfrowanego HTTP. Drugi dodatek, NoScript (Rysunek 8), umożliwia ustawienie sposobu i czasu uruchamiania JavaScriptu, zarówno ogólnie, jak i na poszczególnych stronach. Oba dodatki są niezbędnymi elementami funkcjonalności przeglądarki Tor. Obecnie są to jedyne dodatki, których powinniśmy używać z przeglądarką Tor.
Jeśli przeglądamy starą dokumentację, możemy natknąć się na odniesienia do „TorButtona”. TorButton to przestarzała funkcja, która pozwalała wyłączyć przeglądarkę Tor, pozostawiając tylko funkcje Firefoksa. Chociaż dla niektórych użytkowników jest to wygodne rozwiązanie, TorButton został usunięty, ponieważ projekt Tor nie ma wystarczających zasobów, by móc nadążać za ciągłym strumieniem wydań Firefoksa. Jeśli znajdziemy wersję Tora, która zawiera TorButton, oznacza to, że mamy przestarzałe wydanie i powinniśmy je natychmiast zaktualizować.
Zauważmy też, że ponieważ nasza tożsamość zmienia się przy każdym uruchomieniu przeglądarki Tor, będziemy częściej widywać powiadomienia o plikach cookie (Rysunek 9). Nie ma przy tym znaczenia, które opcje wybierzemy, ponieważ po zamknięciu przeglądarki Tor usunie wszystkie zebrane pliki cookie.
Zza parawanu
Jeśli używamy Tora zgodnie z zaleceniami, umożliwia on anonimowe przeglądanie WWW. Jednak Tor jest ściśle skoncentrowany na określonym celu i nie kontroluje systemu, na którym jest zainstalowany. Jeśli system zawiera luki związane z prywatnością lub bezpieczeństwem, Tor nas przed nimi nie ochroni. Jeśli więc zależy nam na większej gwarancji prywatności lub bezpieczeństwa, powinniśmy rozważyć użycie dystrybucji Tails (The Amnesic Incognito Live System), jednego z głównych podprojektów Tora i jedynego wspieranego przez Edwarda Snowdena. Jak sugeruje pełna nazwa, Tails pozwala przeglądać WWW anonimowo i bez przechowywania jakichkolwiek stałych informacji.
Tails to dystrybucja zaprojektowana z myślą o uruchamianiu przeglądarki Tor z zewnętrznego dysku. Ponieważ Tails jest oddzielnym systemem operacyjnym, który sam w sobie jest bezpieczny, nie mają na niego wpływu luki w żadnym systemie operacyjnym zainstalowanym już na dysku; nie pozostawia również śladu po wyłączeniu. Co więcej, Tails jest przenośną dystrybucją, można go więc używać na dowolnym komputerze (po ewentualnej zmianie ustawień w BIOS-ie, by umożliwiał rozruch z zewnętrznego dysku). Ponadto Tails zawiera szczegółową dokumentację, z której można się wiele dowiedzieć na temat zagadnień związanych z prywatnością i bezpieczeństwem.
Przekaźniki
Jak można wywnioskować z architektury sieci Tor, węzły przekaźnikowe są samym sercem systemu. Im większą liczbą węzłów przekaźnikowych dysponujemy, tym mniejsze obciążenie sieci, a co za tym idzie – szybszy ruch. Poza tym, im więcej węzłów, tym całość jest bardziej odporna na awarie i ataki.
Możemy korzystać z przeglądarki Tor, nie będąc częścią systemu przekaźników. Jednak sieć Tor zawsze szuka wolontariuszy, którzy chcieliby zostać operatorami przekaźników; na witrynie projektu znajdziemy stronę internetową z przydatnymi zasobami dla operatorów przekaźników. Aby uruchomić przekaźnik, będziemy potrzebować podstawowych umiejętności z zakresu administrowania systemem, a także wystarczającej przepustowości. Według twórców Tora przekaźnik niebędący węzłem końcowym powinien móc obsłużyć co najmniej 7000 jednoczesnych połączeń, czyli zdecydowanie za dużo dla większości routerów klasy konsumenckiej. Natomiast przekaźniki zapewniające szybkie wyjście (>=100 Mbit/s) zwykle muszą obsługiwać dużo więcej jednoczesnych połączeń (>100 000).
Ukryte usługi
Sieć Tor umożliwia klientom i przekaźnikom Tora oferowanie tzw. ukrytych usług, które są widoczne tylko w sieci Tor. Innymi słowy, możemy uruchomić własny serwer WWW, serwer SSH lub inną usługę bez ujawniania swojego adresu IP. Usługi ukryte Tora mają pseudodomenę najwyższego poziomu .onion.
Tak zwany Darknet („ciemna sieć”) to w istocie zbiór serwerów internetowych używających funkcji ukrytych usług Tora. Dysydenci w represyjnych krajach używają ukrytych serwerów internetowych do prowadzenia blogów i udostępniania informacji wolnych od cenzury. Więcej informacji na temat konfigurowania i uruchamiania usługi ukrytej znajdziemy na witrynie projektu Tor.
Ograniczenia
Przeglądarka Tor jest potężnym narzędziem zapewniającym anonimowość w sieci, ma jednak pewne ograniczenia, o których użytkownicy powinni wiedzieć. Dwa oczywiste sposoby na złamanie zabezpieczeń sieci Tor to:
- Złamanie szyfrowania (co nie jest wcale łatwe, jeśli szyfrowanie jest wykonane prawidłowo przy użyciu najnowszych technik).
- Wykorzystanie luki w jednym z komponentów systemu. Na przykład przeglądarka Tor jest oparta na Firefoksie, który czasami zawiera luki wymagające poprawek i aktualizacji.
Poza tymi potencjalnymi atakami istnieje szereg innych problemów, które są mniej oczywiste, zwłaszcza dla osób niebędących ekspertami. Badacze zajmujący się bezpieczeństwem cały czas starają się znaleźć luki i błędy w sieci Tor, a projekt Tor szybko naprawia znalezione problemy.
Innego typu ataki na sieć Tor przeprowadzają rządy różnych krajów, którym z różnych powodów zależy na osłabieniu sieci. Z oczywistych względów wyniki tych ataków nie są publikowane i do użytkowników trafiają tylko cząstkowe informacje, na bazie których nie jest łatwo ustalić, co naprawdę zaszło i który komponent okazał się wadliwy. Na przykład w 2014 r. koalicja agencji rządowych przejęła kontrolę nad kilkoma węzłami przekaźnikowymi sieci Tor, co doprowadziło do usunięcia kilku witryn z Darknetu, w tym Silk Road 2.0. Nikt w tamtym czasie, łącznie z programistami Tora, nie wiedział dokładnie, w jaki sposób agencje przeprowadziły ten atak (znany jako Operation Onymous), ale programiści Tora opublikowali post na blogu z pewnymi przypuszczeniami na temat tego, co faktycznie mogło się wydarzyć, sugerując takie scenariusze, jak:
- Błędy związane z bezpieczeństwem operacyjnym: skradzione hasła i nieuczciwi użytkownicy (czyli typowy scenariusz ataku na serwery w Internecie).
- Błędy w aplikacji internetowej, które mogły doprowadzić do wstrzyknięcia SQL lub innych podobnych ataków.
- Deanonimizacja przez bitcoiny: podczas transakcji z użyciem bitcoinów mogą zostać ujawnione informacje, które mogą pomóc w ustaleniu tożsamości użytkownika Tora.
- Ataki na samą sieć Tor.
Ataki na sieć Tora mogą przybierać różne formy. W raporcie po operacji Onymous twórcy Tora stwierdzili: „Kilka miesięcy temu ktoś przeprowadził nieukierunkowane ataki deanonimizacyjne na działającą sieć Tor. Podejrzewa się, że te ataki te zostały przeprowadzone przez badaczy z CERT. Choć błąd został naprawiony, poprawka zaś szybko rozprzestrzeniła się w sieci, możliwe, że w ramach ataku udało im się zdeanonimizować niektóre z ukrytych usług” [5].
Wiele ataków na anonimowości sieci Tor koncentruje się na węzłach wejściowych i wyjściowych. Możemy nie wiedzieć, co dzieje się w sieci, ale obserwując węzeł wyjściowy, możemy uzyskać wgląd w ruch sieciowy. Twórcy Tora ostrzegają, że użytkownicy nie są chronieni przed tak zwanymi atakami czasowymi (end-to-end timing attack). „Jeśli atakujący jest w stanie obserwować ruch wychodzący z danego komputera i równocześnie ruch docierający do wybranego serwera, może użyć analizy statystycznej, aby sprawdzić, czy istnieje połączenie między tymi dwoma hostami” [6].
Tego typu skomplikowane ataki, które wymagają ciągłego monitorowania wszystkich możliwych węzłów wejściowych i wyjściowych, infiltracji przekaźników Tora lub analizy statystycznej losowych węzłów w Internecie, łączą się ze zużyciem ogromnych zasobów, więc jeśli używamy Tora tylko dlatego, by uniknąć profilowania, prawdopodobnie jesteśmy bezpieczni. Jeśli jednak korzystamy z Tora np. w krajach, których rządy potrafią surowo karać za publikowanie określonych treści, powinniśmy zdawać sobie sprawę z ograniczeń sieci Tor i potencjalnych zagrożeń.
Można zaryzykować twierdzenie, że pomimo zdarzających się od czasu do czasu udanych ataków, takich jak Operation Onimous, sieć Tor nadal zapewnia anonimowość ogromnej większości swoich użytkowników.
Podsumowanie
Twórcy Tora postrzegają prywatność jako podstawowe prawo każdego człowieka: powinna być dostępna dla wszystkich i z zasady chroniona. Projekt kładzie duży nacisk na bezpieczeństwo jego użytkowników. Twórcy przyznają, że niektórzy użytkownicy Tora korzystają z tej platformy w nielegalnych celach, twierdzą jednak, że większość użytkowników ma uzasadnione powody. Tor jest narzędziem i jak każde inne narzędzie można go wykorzystać w dobrym i złym celu. Można dokonać przestępstwa, wykorzystując w tym celu samochód, broń czy Internet, jednak wszystkie te narzędzia mają również legalne zastosowanie.
Jeśli jesteśmy świadomi zagrożeń związanych z prywatnością i zmęczyła nas już ciągła zabawa w kotka i myszkę z wszędobylskimi skryptami śledzącymi, być może nadszedł czas, by zaprzyjaźnić się z Torem. W świecie, w którym prywatność i bezpieczeństwo są coraz bardziej zagrożone, narzędzia do śledzenia użytkowników zaś coraz bardziej wyrafinowane, platformy takie jak Tor i Tails zyskują na znaczeniu.
Źródła:
[1] Przeglądarka Tor: https://www.torproject.org
[2] Powody, by korzystać z Tora: https://2019.www.torproject.org/about/torusers.html.en
[3] Tor na Ubuntu i Debianie: https://support.torproject.org/apt/
[4] Pobieranie Tora: https://www.torproject.org/download/
[5] Ataki na sieć Tor: https://blog.torproject.org/ Thoughts-and-Concerns-about-operation-onymous/
[6] Podstawowe informacje na temat Tora: https://2019.www.torproject.org/about/overview.html.en#stayinganonymous