Tor: il protocollo Hidden Service


Tor consente ai suoi utilizzatori di offrire vari servizi, come pagine web od un server di messaggistica, nascondendo la propria posizione nella rete. Usando i "rendezvous point" di Tor, gli altri utenti Tor possono utilizzare questi servizi nascosti senza che sia possibile conoscere la reciproca identità di rete. Questa pagina spiega il funzionamento tecnico di questo rendezvous protocol. Per una guida pratica, vedi la pagina come configurare un hidden service.

Affinché i client possano contattarlo, un hidden service deve anzitutto rendere nota la sua esistenza nella rete Tor. Per questo il servizio sceglie alcuni relay a caso, stabilisce dei circuiti verso di essi e chiede loro di fungere da introduction point comunicandogli la sua chiave pubblica. Nelle immagini seguenti le linee verdi rappresentano circuiti, e non connessioni dirette. Usando un circuito Tor completo è difficile che qualcuno associ un introduction point con l'indirizzo IP dell'hidden server. Mentre l'introduction point e gli altri conoscono l'identità dell'hidden service (la sua chiave pubblica), essi non devono conoscere la posizione dell'hidden server (il suo indirizzo IP).

Tor hidden service primo passo

Secondo passo: l'hidden service costruisce un hidden service descriptor, contenente la sua chiave pubblica ed un sommario degli introduction point, e firma questo descriptor con la sua chiave privata. Invia il descriptor a un gruppo di directory server, usando sempre un circuito completo Tor per celare il collegamento tra il directory server contenente il descriptor e l'indirizzo IP dell'hidden server. Il descriptor verrà trovato dai cient che richiederanno XYZ.onion,dove XYZ è un nome di 16 caratteri derivato in modo unico dalla chiave pubblica dell'hidden service. Dopo questo passo, l'hidden service è attivo.

Anche se usare un nome del servizio generato automaticamente sembra scomodo, ciò ha uno scopo importante: tutti – compresi gli introduction point, i directory server, e naturalmente i client – possono verificare di stare parlando con il giusto hidden service. Vedi anche la congettura di Zooko per cui dei tre fattori Decentrato, Sicuro ed Umanamente Comprensibile ne puoi ottenere solo due contemporaneamente. Un giorno forse qualcuno realizzerà un progetto Petname per i nomi degli hidden service?

Tor hidden service passo due

Terzo passo: quando un client desidera contattare un hidden service, deve conoscere prima il suo undirizzo onion. Dopodiché il client può iniziare a stabilire la connessione scaricandone il descrittore dai directory server. Se esiste un descrittore per XYZ.onion (l'hidden service potrebbe essere anche offline o essere scomparso da tempo, o l'indirizzo onion potrebbe contenere un refuso), il client ora conosce il gruppo di introduction point e la corretta chiave pubblica. In questo momento il client crea anche un circuito verso un altro relay scelto a caso e gli chiede di fungere da rendezvous point comunicandogli un one-time secret.

Tor hidden service passo tre

Quarto passaggio: una volta presente il descriptor e pronto il rendezvous point, il client costruisce un introduce message (cifrato con la chiave pubblica dell'hidden service) contenente l'indirizzo del rendezvous point ed il segreto monouso. Il client invia questo messaggio a uno degli introduction point, chiedendo che venga consegnato all'hidden service. La comunicazione avviene sempre tramite un circuito Tor: in questo modo nessuno può collegare l'invio dell'introduce message all'indirizzo IP del client, ed il client rimane così anonimo.

Tor hidden service passo quattro

Quinto passaggio: l'hidden service decifra l'introduce message del client e scopre l'indirizzo del rendezvous point ed il segreto monouso contenuto. Il service crea un circuito verso il rendezvous point e gli invia il segreto monouso in un rendezvous message.

At this point it is of special importance that the hidden service sticks to the same set of entry guards when creating new circuits. Otherwise an attacker could run his own relay and force a hidden service to create an arbitrary number of circuits in the hope that the corrupt relay is picked as entry node and he learns the hidden server's IP address via timing analysis. This attack was described by Øverlier and Syverson in their paper titled Locating Hidden Servers.

Tor hidden service passo cinque

Nell'ultimo passaggio, il rendezvous point notifica al client che la connessione è stata stabilita con successo. Dopodiché il client e l'hidden service possono usare i loro circuiti verso il rendezvous point per comunicare tra di loro. Il rendezvous point inoltra semplicemente i messaggi (cifrati end-to-end) dal client al service e viceversa.

Uno dei motivi per non usare l'introduction circuit per le successive comunicazioni è che nessun singolo relay deve sembrare responsabile per un certo hidden servce. Ecco perché il rendezvous point non viene mai a conoscere l'identità dell'hidden service.

In generale il collegamento completo tra client ed hidden service consiste in 6 relay: 3 di essi vengono scelti dal client, il terzo dei quali è il endezvous point, gli altri 3 vengono scelti dall'hidden service.

Tor hidden service passo sei

Ci sono descrizioni del protocollo hidden service più approfondite di questa. Vedi il Tor design paper per una descrizione dettagliata e la rendezvous specification per il formato dei messaggi.


"Tor" e l'"Onion Logo" sono marchi registrati di The Tor Project, Inc.
Il contenuto di questo sito รจ pubblicato sotto la licenza Creative Commons Attribution 3.0 United States License, tranne dove diversamente indicato.

Attenzione: Questa traduzione può essere obsoleta. L'originale inglese è alla versione 22995 mentre questa traduzione si basa sulla versione (unknown).

Questa pagina è disponibile anche nelle lingue seguenti: English, français, polski, Русский (Russkij).
Come configurare la lingua predefinita per i documenti.

Questa traduzione non è stata controllata dagli sviluppatori di Tor. Può essere obsoleta o errata. Il sito ufficiale di Tor è in inglese, all'indirizzo https://torproject.org/

Webmaster - Ultima modifica: Mon Aug 23 14:17:39 2010 - Ultima compilazione: Wed Sep 1 08:33:59 2010