hidden service bg
– Tempo di lettura: 9 minuti-

E’ possibile creare un sito web rimanendo anonimi? La risposta è sì. Nell’articolo “Navigare in modo anonimo: come funziona Tor” ti ho spiegato come sia possibile sfruttare Tor per navigare sul web nel pieno anonimato. Se non sai già cos’è Tor, ti consiglio di recuperartelo perché sarà di fondamentale importanza per comprendere l’articolo odierno. Devi sapere, infatti, che puoi sfruttare Tor, oltre che per la semplice navigazione, anche creare un tuo sito web rimanendo completamente anonimo. Oggi scoprirai proprio il meccanismo che c’è dietro quest’altra sua modalità di utilizzo. 

Per essere più chiaro nella spiegazione, partirò da un esempio richiamando in causa il nostro amico Bob. Supponiamo che Bob voglia offrire un servizio agli altri ma che non voglia essere identificato. Se Bob utilizzasse un normale server web, sarebbe semplice rintracciarlo. Su Internet infatti, così come tutti gli utenti hanno un indirizzo IP pubblico, anche i server ne posseggono uno. Questo indirizzo è di fondamentale importanza poiché è l’unico modo che si ha per raggiungere un qualsiasi sito web. Ad esempio, anche se in questo momento ti sei connesso al mio blog tramite l’indirizzo “www.hack-blog.com”, c’è tutto un meccanismo nascosto che trasforma tale stringa di testo nell’indirizzo IP del server sul quale gira il servizio. E’ grazie a quell’IP che il tuo computer è riuscito a contattare il server del mio blog e a ricevere questo articolo. Grazie a questo indirizzo però è possibile ottenere la posizione fisica del server stesso e, di conseguenza, chi ha il potere di indagare può identificarmi come proprietario. Tornando a Bob, lui non vuole essere identificato. Precisiamolo, non è detto che Bob voglia nascondersi perché vuole fare qualcosa di cattivo. Ci sono altri motivi per i quali potrebbe volere questo anonimato. Forse Bob vive in delle aree in cui la libertà di espressione è minacciata o censurata e vuole creare un canale per l’espressione delle sue idee senza temere censure o ritorsioni. In ogni caso, per risolvere questo problema e tutelare la propria privacy, Bob potrebbe sfruttare la rete Tor e creare un cosiddetto hidden service (chiamato anche, con una notazione più moderna, onion service).

Banalmente, potremmo vedere un hidden service come un normale sito web ma che viene offerto solo tramite la rete Tor. Come potrai intuire, un hidden service non è raggiungibile direttamente mediante un indirizzo IP pubblico così come avviene invece per i normali siti web. Attenzione, ciò non significa che il server di Bob non avrà un indirizzo IP. Quest’ultimo è infatti necessario e di fondamentale importanza. Senza indirizzo IP, fisicamente il traffico non potrebbe mai raggiungere la destinazione. Ciò che cambia è che questo indirizzo IP non è reso visibile pubblicamente e, dunque, un qualunque utente non potrà più basarsi su quest’ultimo per contattare il server. Egli avrà a disposizione un’altra tipologia di indirizzo: un indirizzo .onion. Quest’ultimo è un indirizzo completamente anonimo e che non rivela nulla sull’identità dell’hidden service. Dunque, se l’utente non ha nessun indirizzo IP ma solo questo indirizzo .onion, come potrà contattare fisicamente questo hidden service? Come farà Bob a rendere disponibile il suo servizio agli altri?  Vediamo come funziona il tutto:

Abbiamo detto che Bob vuole creare il suo hidden service, deve dunque fare in modo che il suo servizio sia raggiungibile dall’esterno ma, allo stesso tempo, che nessuno sappia chi è lui e dove è collocato il suo server. Per farlo, Bob contatta un certo numero di nodi della rete Tor, stabilisce un circuito con questi ultimi e li dichiara suoi introduction points. Un introduction point non è altro che un intermediario per l’accesso all’hidden service. In altre parole, gli utenti per raggiungere il servizio di Bob non potranno contattare direttamente il vero server ma solo uno di questi intermediari. Saranno questi ultimi che si occuperanno poi di metterli in contatto con il vero server. Infatti, come ti ho appena detto, in partenza Bob ha stabilito un circuito verso tutti gli introduction point. Sarà grazie a quello stesso circuito che questi ultimi potranno contattare il server di Bob pur senza conoscerne la posizione. Ti faccio notare infatti che, essendo basato tutto su circuiti Tor, nessuno conoscerà l’identità di nessuno: l’hidden service non conoscerà l’identità degli utenti, gli utenti non conosceranno l’identità dell’hidden service e nemmeno gli introduction point conosceranno la vera identità degli utenti o del server. Inoltre, osservando dall’esterno tutto il traffico, non si noterà differenza tra le varie connessioni. Ciò che intendo dire è che, paradossalmente, il server di Bob sembrerà dall’esterno un normale utente che sta usando la rete. In effetti dall’esterno un hidden service non è nient’altro che un client che apre connessioni verso altri nodi della rete.

Ma come faranno quindi gli utenti a sapere quali sono gli introduction point da contattare per raggiungere il sito di Bob? Qui entra in gioco l’indirizzo .onion di cui ti parlavo. Quest’ultimo, infatti, gli permetterà di scoprire proprio i loro IP. Nota bene che questo non rappresenta un problema per la privacy: gli introduction point possono essere pubblicizzati tranquillamente, sono infatti semplici nodi Tor e non c’è alcun motivo per nascondere il loro indirizzo IP perché è già conosciuto da tutti.

C’è da fare inoltre una precisazione. Seppur, come abbiamo anticipato, la presenza degli introduction point è di fondamentale importanza per permettere ad Alice di contattare indirettamente il server di Bob, questi ultimi dovranno essere utilizzati solo per stabilire la connessione con il server e non potranno occuparsi di gestire i trasferimenti di dati successivi. Infatti, se tutti gli utenti di Bob dovessero comunicare con il server sempre passando per gli introduction point, si creerebbe un sovraccarico su questi ultimi non indifferente. Dunque, nella pratica si sceglie come intermediario per l’effettiva comunicazione un ulteriore nodo chiamato rendezvous point.

A questo punto iniziano ad esserci in gioco parecchi elementi. Cerchiamo dunque di mettere insieme i pezzi del puzzle analizzando cosa succede, passo dopo passo, quando un utente vuole connettersi all’hidden service di Bob. Supponiamo che l’utente in questione sia la nostra amica Alice:

  1. La prima cosa che dovrà fare Alice sarà proprio quella di scegliersi, tra l’insieme dei nodi della rete Tor, un suo rendezvous point.
  2. Stabilirà a questo punto una connessione con tale nodo e stavolta però lo farà con un circuito composto solo da due nodi intermedi (il terzo nodo del circuito Tor sarà lo stesso rendevous point).
  3. Dopo aver stabilito tale circuito, Alice sceglierà una parola segreta che spedirà al rendezvous point (capirai a breve a cosa servirà).
  4. Grazie all’indirizzo .onion del sito che vuole visitare, Alice scopre quali sono gli introduction point e ne sceglie uno da contattare.
  5. A questo punto, tramite l’introduction point scelto potrà contattare l’hidden service per comunicargli il suo desiderio di connettersi ed usufruire dei suoi servizi. Per farlo gli spedirà due informazioni: l’indirizzo del nodo di rendezvous sul quale vuole essere contattata e la stessa parola segreta che Alice aveva inviato a quest’ultimo.
  6. Dunque il server di Bob, se deciderà di accettare la connessione, potrà stabilire un circuito Tor verso il nodo di rendezvous per iniziare a comunicare con Alice. Dopo averlo fatto, inoltre, spedirà la parola segreta.
  7. Il nodo di rendezvous accetterà di far passare la connessione verso Alice solo se la parola segreta ricevuta dal server di Bob corrisponderà a quella pensata da Alice all’inizio. In quel caso capirà che chi sta provando a mettersi in contatto con Alice è un server autorizzato, di conseguenza la connessione sarà  correttamente stabilita da entrambi i lati e Alice potrà tranquillamente scambiare informazioni con il server. 

Insomma, una volta stabilita la connessione, il tutto passerà sempre per il rendezvous point, evitando di sovraccaricare gli introduction points. Inoltre, la presenza del nodo di rendezvous renderà estremamente difficile alle due parti comunicanti di identificarsi a vicenda. Nemmeno il rendezvous point saprà effettivamente chi sta mettendo in contatto poiché anche esso vi è connesso mediante circuiti Tor. In totale per una singola connessione verso il server verrà così stabilito un percorso di ben 6 nodi e, grazie a questo meccanismo, tutte le parti saranno protette da un totale anonimato. 

Come avevo fatto nello scorso articolo per gli utenti, anche qui c’è da fare una precisazione simile. Se è vero che il meccanismo di Tor è estremamente difficile da rompere, un Hidden service mal configurato potrebbe esporsi al di fuori della rete Tor ed essere scoperto. Inoltre, banalmente, se Bob lasciasse in giro tracce di altro tipo, l’anonimato di Tor servirebbe a poco. Ciò che intendo dire insomma è che, se il tuo obiettivo è essere anonimo sul web, sia da semplice utente che da creatore di un onion service, devi sempre mantenere la massima attenzione. La rete Tor pone un’ottima base per il tuo anonimato, il resto dipende da te. Il fatto che Tor ti metta a disposizione strumenti molto potenti sicuramente aiuta ma non deve farti abbassare la guardia.

Sempre ricollegandomi allo scorso articolo, ora che hai tutto ciò che serve, ti vorrei far notare una cosa riguardo la differenza tra quando un utente vuole navigare tramite Tor verso un normale sito web e quando invece vuole navigare verso un Hidden service. Quando un utente si collega ad un normale sito web tramite la rete Tor, il server web al quale ci si connette non è un server configurato per funzionare con Tor. Dunque, quando il traffico raggiunge l’exit node, la connessione da quest’ultimo al server finale è una normale connessione http/https. Quando ci si collega ad un Hidden service invece, tutto il traffico passa sempre sotto la “nuvola di Tor”. Ciò che voglio dire è che tutto viaggia sempre seguendo il protocollo a cipolla, senza interruzione. Questo è il motivo principale per il quale non è possibile contattare un server del genere con strumenti tradizionali ma c’è la necessità di scaricarsi programmi come Tor browser. Per definizione dunque, gli Hidden service costituiscono una porzione di quella parte del web non accessibile tramite strumenti tradizionali chiamata “Dark web”. Se non ne hai mai sentito parlare ti consiglio un articolo che ho scritto a riguardo dove spiego le differenze tra Clear, Deep e Dark web. Se invece già conosci questa zona della rete, ti consiglio comunque di visitare il mio articolo poiché sfaterò alcuni falsi miti che potresti conoscere a riguardo. Un altro paragone che volevo fare è sulla velocità: visto che il meccanismo per la connessione ad un Hidden service è molto più complesso, la velocità di trasferimento dati è molto più lenta rispetto a quella che si avrebbe collegandosi ad un normale sito web tramite Tor.

Con questo e lo scorso articolo credo di aver coperto tutte le cose fondamentali che dovevi sapere riguardo Tor. Spero tu abbia imparato ad apprezzare la potenza di questo strumento, grazie per aver letto fino a qui, un saluto!