Tor – wirtualna sieć komputerowa implementująca trasowanie cebulowe drugiej generacji. Sieć zapobiega analizie ruchu sieciowego i w konsekwencji zapewnia użytkownikom prawie anonimowy dostęp do zasobów Internetu. Roger Dingledine, Nick Mathewson i Paul Syverson przedstawili pracę „Tor: The Second-Generation Onion Router” na 13. sympozjum bezpieczeństwa stowarzyszenia USENIX w piątek, 13 sierpnia 2004[3]. Podobnie jak sieci Freenet, GNUnet czy MUTE, Tor może być wykorzystywany w celu ominięcia mechanizmów filtrowania treści, cenzury i innych ograniczeń komunikacyjnych.
Działanie
Tor chroni tożsamość użytkowników oraz ich działalność w sieci przed analizą ruchu. Operatorzy utrzymują wirtualną sieć złożoną z ruterów cebulowych, zapewniającą anonimowość zarówno w sensie ukrycia lokalizacji użytkownika, jak też możliwości udostępniania anonimowych ukrytych usług.
Wykorzystuje kryptografię, wielowarstwowo szyfrując przesyłane komunikaty (stąd określenie „trasowanie cebulowe”), zapewniając w ten sposób poufność przesyłania danych pomiędzy ruterami. Użytkownik musi mieć uruchomiony na swoim komputerze program, który łączy się z serwerem pośredniczącym sieci Tor[4]. Takie serwery, zwane węzłami, może uruchomić u siebie każdy, kto chce wspomóc rozwój Tora. Oprogramowanie łączące się z internetem może korzystać z Tora poprzez interfejs SOCKS.
Tor nie oferuje całkowitej anonimowości i przy założeniu dostępu do odpowiednio dużych środków technicznych możliwe jest wytropienie danego użytkownika tej sieci[5]. Tor nie może i nie próbuje chronić przed monitorowaniem ruchu na granicach sieci, tzn. pakietów wchodzących i opuszczających sieć[6]. Na przykład rząd Stanów Zjednoczonych ma możliwość monitorowania dowolnego szerokopasmowego połączenia z Internetem dzięki urządzeniom wprowadzonym na podstawie Communications Assistance for Law Enforcement Act (CALEA) i dlatego może kontrolować oba punkty końcowe połączeń Tora, wykonywanych na terytorium USA. O ile Tor chroni przed analizą ruchu, nie może zapobiec potwierdzeniu komunikacji[6].
Początkowo sponsorowany przez laboratoria badawcze Marynarki Wojennej Stanów Zjednoczonych, pod koniec 2004 r. stał się projektem firmowanym przez Electronic Frontier Foundation (EFF), która wspierała go finansowo aż do listopada 2005. Obecnie rozwojem oprogramowania Tor zajmuje się Tor Project – organizacja non-profit (niedochodowa) o charakterze badawczo-edukacyjnym, z siedzibą w Stanach Zjednoczonych. Projekt cały czas jest pośrednio sponsorowany przez Marynarkę Wojenną Stanów Zjednoczonych[1][8].
Trasa pakietu
Użytkownicy uruchamiają na swoich komputerach oprogramowanie klienckie sieci Tor, które okresowo tworzy wirtualne obwody w sieci.
Tor wielowarstwowo szyfruje przesyłane komunikaty (stąd nazwa „trasowanie cebulowe”), zapewniając doskonałą poufność przesyłania pomiędzy ruterami. Jednocześnie oprogramowanie udostępnia interfejs SOCKS klientom. Aplikacje potrafiące obsługiwać protokół SOCKS mogą być skonfigurowane tak, by łączyły się z internetem za pośrednictwem oprogramowania klienckiego Tor, pełniącego w tym wypadku funkcję proxy, które następnie multipleksuje ruch sieciowy przez wirtualny obwód sieci Tor.
Wewnątrz sieci Tor ruch jest przekazywany pomiędzy ruterami, osiągając w końcu węzeł wyjściowy, z którego niezaszyfrowany pakiet jest przekazywany do miejsca przeznaczenia. Z punktu widzenia docelowego komputera, ruch wydaje się pochodzić z wyjściowego węzła sieci Tor.
Schemat połączenia wygląda w następujący sposób. Użytkownik → węzeł1 → węzeł2 → węzeł3 → Serwer docelowy[9].
Pakiet (porcja informacji, np. post na forum) jest zaszyfrowany szyfrem, do którego klucz posiada wyłącznie węzeł 3. Dołączony do niego jest zaszyfrowany adres węzła 2 – klucz do niego posiada węzeł 1 – a także zaszyfrowany adres węzła 3 – klucz do niego posiada węzeł 2[9].
Węzeł 3 komunikuje się z serwerem docelowym, a następnie odpowiedź przekazuje analogicznie w drugą stronę[9].
Sieć Tor działa na poziomie protokołu TCP i – inaczej niż większość pozostałych sieci anonimowych – nie narzuca ograniczeń co do możliwych zastosowań. Anonimizacji przy użyciu Tora poddawane są często takie aplikacje, jak IRC, komunikatory internetowe czy przeglądanie stron WWW. W przypadku WWW Tor na ogół stosuje się w parze z Privoxy, filtrującym serwerem pośredniczącym, mającym za zadanie ochronę prywatności na poziomie aplikacji.
Ukryte usługi
Dzięki sieci Tor z anonimowości mogą korzystać także serwery, działając w formie usług o ukrytej lokalizacji. Są to klienci bądź przekaźniki Tora ze specjalnie skonfigurowanym oprogramowaniem serwerowym. Zamiast ujawniać adres IP serwera (a tym samym jego lokalizację w sieci), ukryte usługi są dostępne poprzez specyficzne dla Tora pseudodomeny najwyższego poziomu .onion
. Sieć Tor potrafi obsłużyć takie domeny najwyższego poziomu anonimowo, przesyłając dane zarówno do, jak i od ukrytej usługi. Ze względu na brak uzależnienia od publicznie dostępnego adresu, ukryte usługi mogą być świadczone zza firewalli czy z komputerów korzystających z translacji adresów sieciowych (NAT). Klient Tora jest niezbędny, żeby uzyskać dostęp do ukrytej usługi[10].
Możliwość świadczenia ukrytych usług w sieci Tor pojawiła się na początku 2004[11]. Zostały one zaprojektowane tak, by – nie licząc bazy danych przechowującej ich deskryptory – działały w sposób zdecentralizowany[12]. Dlatego nie istnieje lista, z której bezpośrednio można odczytać, jakie usługi działają w sieci. Można natomiast znaleźć niezależne serwisy, także w formie ukrytych usług, które udostępniają takie informacje.
Usługi o ukrytej lokalizacji nie są podatne na podsłuchanie przez węzły wyjściowe, ponieważ ich nie używają. Istnieje jednak szereg zagrożeń dotyczących ukrytych usług sieci Tor. Na przykład serwisy udostępniane jednocześnie w formie ukrytych usług, jak też publicznie w Internecie, są podatne na ataki korelacyjne i w związku z tym nie są do końca ukryte. Pułapką mogą się okazać też nieprawidłowo skonfigurowane usługi (np. serwer WWW w domyślnej konfiguracji może wraz z komunikatami błędów zdradzać informacje identyfikujące)[10], statystyki uptime i downtime, intersection attacks oraz błędy użytkowników.
Słabości
Wycieki zapytań DNS
Podobnie jak w przypadku wielu innych systemów do anonimowego surfowania po Internecie, część aplikacji nadal wykonuje bezpośrednie zapytania do serwerów domenowych (DNS), pomijając serwer pośredniczący Tor. Wykorzystanie Privoxy bądź polecenia „torify”, dystrybuowanego wraz z Torem, to jedne z możliwych rozwiązań tego problemu[13]. Ponadto aplikacje używające protokołu SOCKS5, który obsługuje żądania proxy oparte na nazwach, mogą przesyłać przez Tora zapytania DNS, które zrealizuje węzeł wyjściowy, zapewniając w ten sposób anonimowość analogiczną jak dla innych danych przesyłanych przez sieć Tor[14].
Od wersji 0.2.0.1-alpha Tor ma wbudowany własny resolver DNS, który przekierowuje zapytania przez sieć Tor, co powinno rozwiązać problem wycieków DNS, jak też umożliwić aplikacjom nieposługującym się protokołem SOCKS korzystanie z ukrytych usług[15].
Analiza ruchu
Jak wszystkie współczesne sieci anonimowe z niewielkimi opóźnieniami (ang. low latency), Tor jest podatny na analizę ruchu przez adwersarzy, którzy mogą obserwować oba końce połączenia użytkownika[16].
Steven J. Murdoch i George Danezis z Uniwersytetu Cambridge na sympozjum IEEE dotyczącym bezpieczeństwa i prywatności w 2005 r. zaprezentowali artykuł[17] omawiający techniki analizy ruchu, pozwalające przeciwnikowi mogącemu obserwować jedynie fragment sieci wnioskować, które węzły są używane do przekazywania strumieni anonimowej komunikacji. Te techniki w znacznym stopniu mogą zredukować anonimowość sieci Tor. Murdoch i Danezis wykazali także, że niepowiązane w inny sposób ze sobą strumienie mogą być przypisane temu samemu inicjatorowi. Jednakże ten atak nie jest w stanie zdradzić tożsamości użytkownika[17]. Murdoch pracował dla projektu Tor i był przezeń finansowany od 2006 r.
Podsłuchiwanie przez węzły wyjściowe
We wrześniu 2007 r. szwedzki konsultant ds. bezpieczeństwa Dan Egerstad ujawnił, że monitorując założone przez siebie węzły wyjściowe sieci Tor, przechwycił nazwy użytkowników i hasła do dużej liczby kont pocztowych[18]. Tor nie może i nie szyfruje danych przesyłanych pomiędzy węzłem wyjściowym a serwerem docelowym, dlatego każdy węzeł wyjściowy ma potencjalną możliwość przechwycenia dowolnych danych, które przezeń są przesyłane, a nie są zabezpieczone poprzez na przykład szyfrowanie SSL. Choć sama ta właściwość niekoniecznie łamie anonimowość źródła transmisji, zwiększa możliwość przechwycenia danych przez osoby trzecie, co z kolei znacząco zwiększa ryzyko ujawnienia wrażliwych danych przez użytkowników niedbałych bądź takich, którzy mylą anonimowość Tora z bezpieczeństwem danych[19].
Etykieta
Nieodłącznie towarzysząca sieci Tor anonimowość sprawia, że tradycyjne praktyki administracyjne, zmierzające do przeciwdziałania nadużyciom, mogą być niewystarczające dla połączeń z niej wychodzących. Tor posiada funkcję, pozwalającą zredukować ten problem zarówno z perspektywy operatorów węzłów wyjściowych, jak i witryn osób trzecich.
Węzły wyjściowe definiują swoją „politykę wyjściową”, która określa, jaki ruch jest, a jaki nie jest dopuszczalny przez ten węzeł. Większości najważniejszych nadużyć dotyczących sieci Tor można zapobiec, używając kombinacji adresu i portu. Potencjalne nadużycia obejmują:
- Zapychanie łączy
- Społeczność Tora uważa za niestosowne przesyłanie wielkich ilości danych przez sieć – rutery cebulowe są utrzymywane przez ochotników na własny koszt.
- BitTorrent
- Protokół BitTorrent nie powinien być używany z siecią Tor ze względu na duże ilości przesyłanych danych. Domyślna polityka węzłów wyjściowych blokuje standardowe porty BitTorrent. Implementacje protokołu BitTorrent wykorzystują często wysyłanie (trackerowi bądź innym uczestnikom ruchu) rzeczywistego adresu IP [20], co znacząco zmniejsza anonimowość i utrudnia działanie przez Tor typowych klientów (różnica między IP węzła wyjściowego a wysyłanego IP uczestnika).
- Spam
- Domyślna polityka wyjściowa blokuje połączenia z portem 25, zapobiegając rozsyłaniu spamu bezpośrednio z sieci Tor.
- Anonimowi użytkownicy
- Serwisy, które chcą odmiennie traktować użytkowników odwiedzających je poprzez Tor, mają taką możliwość.
Nielegalne zastosowania
Sieć Tor może być wykorzystywana do celów uznawanych za nielegalne w niektórych jurysdykcjach, jak na przykład krytykowanie przywódców państwowych, wymiana materiałów chronionych prawem autorskim bądź dystrybucja pornografii dziecięcej[21][22][23]. We wrześniu 2006 r. władze niemieckie, w trakcie operacji wymierzonej przeciwko pornografii dziecięcej, skonfiskowały sprzęt jednego z centrów danych, na którym uruchomione było oprogramowanie Tor[22][24][25].
Projekt Tor w odpowiedzi na zarzuty, że ułatwia prowadzenie działalności niezgodnej z prawem, podkreśla, że: (1) wiele osób przestrzegających prawa używa Tora w „dobrych” celach (prywatność, wolność komunikacji) i nie ma praktycznie łatwo dostępnych alternatyw, podczas gdy (2) ci, którzy zamierzają łamać prawo, i tak mają do dyspozycji bardziej efektywne sposoby zachowania anonimowości (na przykład włamania do systemów komputerowych, wynajęcie botnetu bądź kradzież telefonów komórkowych)[26]. Pada argument, że korzyści dla tych z grupy (1) przeważają nad pomocą, jaką sieć może być dla osób z grupy (2), które mają realne alternatywy dla Tora już z tego względu, że i tak zamierzają złamać prawo.
Implementacje
- Oficjalna implementacja Tora jest napisana w języku C i składa się z około 146 tys. linii kodu źródłowego[27].
- Vuze (dawniej Azureus) to klient sieci BitTorrent napisany w języku Java, z wbudowanym wsparciem dla Tora.
Zobacz też
Przypisy
- ↑ a b Tor: People. 2008-07-17. [dostęp 2012-02-19].
- ↑ The Tor Project | Privacy & Freedom Online [online], torproject.org [dostęp 2023-08-10] (ang.).strona główna serwisu
- ↑ Roger Dingledine, Nick; Syverson, Paul Mathewson: Tor: The Second-Generation Onion Router. [w:] Proc. 13th USENIX Security Symposium [on-line]. 2004-08-13. [dostęp 2008-11-17].
- ↑ Tor: MS Windows Install Instructions.
- ↑ Re: Tor horror stories (ang.).
- ↑ a b One cell is enough to break Tors anonymity. 2009-02-18. [dostęp 2009-03-18].
- ↑ Tor: Donate!. 2008-06-27. [dostęp 2008-07-17].
- ↑ a b c AnonWatch, Tor in Depth – analiza bezpieczeństwa sieci Tor.
- ↑ a b Tor: Hidden Service Configuration Instructions. 2008-02-27. [dostęp 2008-06-08].
- ↑ Lasse Øverlier, Paul Syverson: Locating Hidden Servers. 2006-06-21. [dostęp 2008-06-08]. – konferencja IEEE Symposium on Security and Privacy.
- ↑ Tor: Hidden Service Protocol, Hidden services. torproject.org. [zarchiwizowane z tego adresu (2008-04-03)].
- ↑ TheOnionRouter/TorifyHOWTO – Noreply Wiki. [dostęp 2007-04-19].
- ↑ RFC 1928 – SOCKS Proxy Protocol, Version 5. [dostęp 2008-08-04]. [zarchiwizowane z tego adresu (2008-07-31)].
- ↑ Tor Changelog. [dostęp 2007-09-11]. [zarchiwizowane z tego adresu (2007-06-26)].
- ↑ TheOnionRouter/TorFAQ. [dostęp 2007-09-18]. Cytat: Tor (like all current practical low-latency anonymity designs) fails when the attacker can see both ends of the communications channel
- ↑ a b Steven J. Murdoch, George Danezis: Low-Cost Traffic Analysis of Tor. 2006-01-19. [dostęp 2007-05-21].
- ↑ Kim Zetter: Wired: Rogue Nodes Turn Tor Anonymizer Into Eavesdropper’s Paradise. 2007-10-09. [dostęp 2007-09-16].
- ↑ Robert Lemos: Tor hack proposed to catch criminals. 2007-03-08. [dostęp 2008-02-01].
- ↑ BitTorrentSpecification - TheoryOrg [online], wiki.theory.org [dostęp 2024-10-19] .
- ↑ Cleaning up Tor on broadband.com.
- ↑ a b Anders Bylund: TOR anonymizing proxy servers seized during German child porn investigation. Ars Technica, LLC, 11 września 2006.
- ↑ Robert Jones: Internet forensics. O’Reilly, 2005, s. P133. ISBN 0-596-10006-X.
- ↑ Ed Oswald: Tor Servers Target of Porn Crackdown. BetaNews, 2006-09-11.
- ↑ German TOR Servers Seized. 11 września 2006.
- ↑ Tor Abuse FAQ.
- ↑ Tor – Ohloh.
Linki zewnętrzne