Tor: Protokół Usług Ukrytych


Tor umożliwia użytkownikom ukrywanie swojego miejsca pobytu podczas oferowania różnych rodzajów usług, jak publikowanie w sieci czy serwer wiadomości. Korzystając z "punktów spotkania" Tora, inni użytkownicy Tora mogą łączyć się z tymi usługami i żadna ze stron nie będzie znała tożsamości sieciowej drugiej strony. Ta strona opisuje techniczne szczegóły protokołu spotkania. Bardziej bezpośrednie jak-to-zrobić znajduje się na naszej stronie konfiguracji usług ukrytych.

Usługa ukryta musi ogłosić swoje istnienie w sieci Tora zanim klienci będą mogli się z nią skontaktować. W tym celu usługa wybiera losowo kilka przekaźników sieci, tworzy do nich obwody i prosi, by stały się one punktami przedstawiającymi ją, poprzez przekazanie im swojego klucza publicznego. Na poniższych obrazkach linki zielone to linki obwodu, a nie połączenia bezpośrednie. Używanie pełnych obwodów Tora utrudnia komukolwiek powiązanie punktów przedstawiających z adresem IP usługi ukrytej.Podczas gdy punktom przedstawiającym i innym przekazywana jest tożsamość usługi ukrytej (klucz publiczny), nie chcemy, by znały tożsamość serwera tej usługi (adresu IP).

Usługi ukryte Tora, krok 1

Krok drugi: usługa ukryta tworzy deskryptor usługi ukrytej, zawierający podsumowanie jej punktów przedstawiających i jej klucz publiczny, oraz podpisuje go swoim kluczem prywatnym. Deskryptor ten jest wysyłany do kilku serwerów katalogowych, ponownie z użyciem obwodu ukrywającego powiązanie między zapisywaniem deskryptora a adresem IP usługi ukrytej. Deskryptor ten będzie znajdowany przez klientów żądających połączenia z XYZ.onion, gdzie XYZ jest składającą się z 16 znaków nazwą w sposób jednoznaczny otrzymaną z klucza publicznego usługi ukrytej. Po wykonaniu tego kroku, usługa ukryta jest uruchomiona.

Mimo iż używanie nazwy wygenerowanej automatycznie wydaje się niepraktyczne, ma to ważny cel: wszyscy -- łącznie z punktami przedstawiającymi, serwerami katalogowymi, i oczywiście klientami -- mogą sprawdzić, że faktycznie łączą się z tą usługą ukrytą. Przeczytaj też Domniemanie Zooko mówiące, że spośród Zdecentralizowanego, Bezpiecznego i Czytelnego-dla-ludzi można uzyskać co najwyżej dwa. Może jednego dnia ktoś zaimplementuje projekt Petname dla nazw usług ukrytych?

Usługi ukryte Tora, krok 2

Krok trzeci: Klient chcący połączyć się z usługą ukrytą musi najpierw poznać jej adres onion. Po zrobieniu tego, klient może zacząć połączenie od pobrania deskryptora z serwerów katalogowych. Jeśli istnieje deskryptor dla XYZ.onion (usługa ukryta może być offline, dawno nieaktualna lub może być błąd w adresie), klient zna zestaw punktów przedstawiających i klucz publiczny, którego ma używać. W tym czasie klient tworzy obwód do innego losowo wybranego przekaźnika i prosi go, by stał się punktem spotkania, przekazując mu jednorazowy klucz.

Usługi ukryte Tora, krok 3

Kork czwarty: Gdy deskryptor jest obecny i punkt spotkania jest gotowy, klient tworzy wiadomość początkową (zaszyfrowaną kluczem publicznym usługi ukrytej), zawierającą adres punku spotkania i ten sam klucz jednorazowy. Klient wysyła tę wiadomość do jednego z punktów przedstawiających z prośbą o dostarczenie jej do usługi ukrytej. Tu także cała komunikacja odbywa się przez obwody Tora: nikt nie może powiązać wysłania wiadomości początkowej do adresu IP klienta, więc klient pozostaje anonimowy.

Usługi ukryte Tora, krok 4

Krok piąty: Usługa ukryta odszyfrowuje wiadomość początkową klienta i znajduje adres punktu spotkania wraz z kluczem jednorazowym. Usługa tworzy obwód do punktu spotkania i wysyła do niego klucz jednorazowy w wiadomości spotkania.

W tym momencie ważny jest fakt, że usługa ukryta trzyma się ciągle tych samych wejściowych węzłów-strażników w czasie tworzenia nowych obwodów. W innym przypadku napastnik mógłby prowadzić własny przekaźnik sieci i zmusić usługę ukrytą do tworzenia dowolnej liczby obwodów z nadzieją, że jego przekaźnik zostałby wybrany na punkt wejścia i poznałby adres IP usługi ukrytej poprzez analizę czasów. Ten atak został opisany przez Øverlier'a i Syversona w ich dokumencie pod tytułem Znajdowanie Usług Ukrytych (Locating Hidden Services).

Usługi ukryte Tora, krok 5

W ostatnim kroku punkt spotkania powiadamia klienta o pomyślnym nawiązaniu połączenia. Po tym fakcie zarówno klient, jak i usługa ukryta mogą używać swoich obwodów do punktu spotkania do łączności między sobą. Punkt spotkań po prostu przekazuje wiadomości (zaszyfrowane na całej trasie od odbiorcy do nadawcy) od klienta do usługi ukrytej i na odwrót.

Jednym z powodów niekorzystania z obwodu przedstawiającego do właściwego połączenia jest to, że żaden węzeł nie powinien wydawać się być odpowiedzialnym za daną usługę ukrytą. To dlatego punkty spotkania nigdy nie poznają tożsamości usługi ukrytej.

W ogólnym przypadku, połączenia między klientem a usługą ukrytą składa się z 6 przekaźników: 3 z nich zostały wybrane przez klienta, przy czym trzeci jest punktem spotkania, a pozostałe 3 zostały wybrane przez usługę ukrytą.

Usługi ukryte Tora, krok 6

Istnieją bardziej szczegółowe opisy protokołu usług ukrytych niż ta strona. Przeczytaj dokument projektowy Tora zawierający dogłębny opis projektu, oraz specyfikację spotkań (rendezvous), zawierającą formaty wiadomości.

Webmaster - Ostatnio zmodyfikowane: Wed Oct 1 19:26:28 2008 - Ostatnio wygenerowane: Thu Jan 8 06:05:04 2009

"Tor" i "Onion Logo" (logo cebuli) są zarejestrowanymi znakami handlowymi The Tor Project, Inc.
Poza miejscami, gdzie napisano inaczej, zawartość tej strony jest pod licencją Creative Commons Attribution 3.0 United States License. Creative Commons Attribution 3.0 United States License

Ta strona jest także dostępna w następujących językach: Deutsch, English, français, Italiano.
Jak ustawić domyślny język dokumentu.

Deweloperzy Tora nie sprawdzili tłumaczenia tej strony pod względem dokładności i poprawności. Tłumaczenie może być przestarzałe lub niepoprawne. Oficjalna strona Tora jest po angielsku, pod adresem https://www.torproject.org/.