– Tempo di lettura: 9 minuti-
Ciao, benvenuto/a in questo nuovo articolo. Come avrai capito dal titolo, oggi ti parlerò di Tor. Molto probabilmente ne avrai già sentito parlare: il Tor browser è molto conosciuto per il fatto che permette di accedere al famigerato Dark web. Se ti interessa l’argomento, ti consiglio un articolo che ho scritto dove ho sfatato alcuni falsi miti a riguardo. Nonostante in quest’ultimo abbia anticipato il concetto, oggi ti presenterò nel dettaglio quali sono i meccanismi sui quali si basano Tor browser e la rete Tor.
Internet e l’anonimato
Tor, acronimo di “The Onion Routing” è una vera e propria infrastruttura di rete creata per garantire l’anonimato sul web. Devi sapere infatti che, se navighi con gli strumenti tradizionali, purtroppo non sei minimamente anonimo. Infatti, la rete Internet di per sé ci rende completamente rintracciabili: è sempre possibile attribuire a te una qualunque azione che compi. Questo perché tutto il traffico che fai, passa sempre per il tuo ISP1. Quest’ultimo è quello che si occupa di farti raggiungere i siti web di tuo interesse, di conseguenza sa esattamente chi sei, quali siti visiti e quando li visiti. Inoltre, esso ti assegna un indirizzo IP pubblico che ti porterai appresso per ogni tua richiesta ad un servizio web. Se non sai cos’è un indirizzo IP, immaginalo semplicemente come un valore che ti identifica sul web: qualunque sito riceverà una tua richiesta vedrà tale indirizzo come “mittente”. Se vuoi, puoi verificare in autonomia qual’è il tuo indirizzo pubblico e quali sono le informazioni collegate a quest’ultimo cercando sul tuo motore di ricerca “Qual’è il mio IP?”. Molto probabilmente tra i risultati troverai vari siti web che ti indicheranno non solo il tuo IP ma anche il nome del tuo ISP e la tua zona di residenza. Ti basterà osservare i risultati forniti da questi siti per convincerti del fatto che è abbastanza semplice risalire a te per ogni cosa che fai.
VPN e l’anonimato
A questo punto potresti chiederti se usare una VPN possa risolvere questo problema e garantirti l’anonimato. La risposta è: DIPENDE. Quando ti colleghi ad una VPN, per farla breve, tutto il tuo traffico viene reindirizzato verso i server della VPN che si occuperanno di inoltrare le richieste al posto tuo. Quindi sì è vero che il tuo ISP non potrà più vedere il tuo traffico e che i siti web che visiterai vedranno le tue richieste come provenienti da una posizione geografica diversa. Il problema è che, il gestore della tua VPN potrà vedere a questo punto tutto quello che prima vedeva il tuo ISP. Saprà esattamente chi sei, quali siti visiti e quando li visiti. Certo, spesso i VPN provider dicono di attuare una politica di no-logging, in altri termini dicono di non salvare alcun dato dei loro utenti. Purtroppo non c’è nulla che tu possa fare per assicurarti che ciò sia vero e devi solo fidarti della loro parola. Con Tor invece non c’è bisogno di fidarsi di qualcuno: il suo meccanismo è completamente trasparente e verificabile. Con Tor nessuno saprà chi sei, quali siti visiti e quando li visiti. Inoltre il suo meccanismo di sicurezza è difficilissimo da rompere, rappresentando così una delle poche strade che puoi percorrere attualmente per ottenere un vero anonimato su Internet.
Tor: The Onion Routing
Per capire bene perché Tor è un’ottima soluzione per l’anonimato dovrai comprendere come esso funziona. Vediamo dunque cosa succede quando si naviga usando tale infrastruttura:
Quando un utente si collega ad un normale sito web mediante la rete Tor, viene instaurato un circuito anonimo verso il server di destinazione. Un classico circuito Tor coinvolge in genere tre nodi chiamati rispettivamente entry guard, middle relay e exit relay. Questi nodi non sono altro che dei computer che si occupano far transitare i pacchetti2 e di indirizzarli verso il server web di destinazione. Ad esempio, un pacchetto creato dall’utente passerà prima per l’entry guard che lo spedirà al middle relay che a sua volta lo spedirà all’exit relay il quale si occuperà di inoltrarlo al server finale. Tale circuito non è fisso, entry guard, middle relay e exit relay vengono scelti periodicamente da una lista di nodi Tor noti: in genere non si utilizzerà mai lo stesso circuito per troppo tempo.
Scelti tali nodi, per creare tale circuito, si utilizzeranno tre chiavi simmetriche k1, k2 e k3, ognuna delle quali servirà per la comunicazione sicura tra l’utente ed uno dei tre nodi. Non voglio introdurti troppi concetti di crittografia che complicherebbero inutilmente l’articolo. Devi solo sapere che una chiave simmetrica è ciò che serve a due entità per cifrare le loro comunicazioni. Se ad esempio l’utente, chiamiamolo Bob, vuole comunicare con l’entry Guard sfruttando la chiave k1, egli cifrerà ogni suo messaggio con tale chiave prima di spedirlo sulla rete, dal lato suo l’entry guard userà la stessa chiave k1 per decifrare il messaggio. Sulla rete viaggerà solo il messaggio cifrato e sarà necessario avere la chiave k1 per decifrarlo. Dunque, se k1 è posseduta solo da Bob e dall’entry guard, nessun altro potrà leggere le loro conversazioni.
Ma come vengono fuse le cifrature relative alle chiavi k1, k2 e k3? Vediamo passo dopo passo cosa succede ogni volta che Bob vorrà spedire un pacchetto verso il server del sito web al quale vuole accedere :
- Il messaggio di partenza m3 sarà innanzitutto cifrato con la chiave k3, ottenendo c3. c3 potrà essere compreso solo da Bob e dall’exit node poiché loro sono gli unici a possedere k3.
- A questo punto k2 viene usata per cifrare c3, ottenendo c2. c2 potrà essere compreso solo da Bob e dal middle relay, poiché sono gli unici a possedere k2.
- Infine k1 viene usata per cifrare c2, ottenendo c1. c1 potrà essere compreso solo da Bob e dall’entry node.
In altri termini, prima di spedirlo sulla rete, si incapsula il messaggio m di partenza in una serie di “strati crittografici” creando una sorta di cipolla e da qui il termine “Onion routing” (onion in inglese significa cipolla).
Dunque, dopo aver cifrato il messaggio m così come appena descritto, Bob otterrà c1. c1 sarà spedito all’entry guard il quale decifrerà con la sua chiave k1 il primo strato, ottenendo c2. Fermiamoci un attimo su questo primo passaggio e riflettiamo: grazie a c2 l’entry guard potrà rompere l’anonimato di Bob? La risposta ovviamente è NO. Infatti l’entry Guard non potrà decriptare ulteriormente c2 perché gli servirebbe la chiave k2 per farlo. L’ unica informazione che possiede è che quel c2 gli è stato inviato da Bob. Dunque l’entry guard sa che Bob sta utilizzando un circuito Tor ma non conosce nulla della sua destinazione finale.
Non potendo fare altro, l’entry guard spedirà c2 al prossimo nodo del circuito: il middle relay. Quest’ultimo, partendo da c2, potrà a sua volta eliminare uno strato di cifratura con la sua chiave k2 ottenendo c3. Analogamente al caso precedente però c3 non darà alcuna informazione al middle relay. Infatti, quest’ultimo non saprà che il mittente è Bob poiché il messaggio gli è arrivato dall’entry guard e non saprà nemmeno qual’è la destinazione finale poiché senza la chiave k3 non potrà decifrare c3.
Come avrai già capito, a questo punto il middle relay spedirà c3 all’exit node, il quale potrà decifrarlo ed ottenere m. Ovviamente, avendo ricevuto c3 dal middle node, l’exit node non saprà che m è stato formulato da Bob. Potendo leggere m, però, saprà che esso deve essere spedito al server di destinazione. Dunque, l’exit node sa che qualcuno in questo momento sta contattando quel determinato sito web ma non sa minimamente chi sia questo qualcuno. In conclusione, per finire il lavoro, spedirà m verso la sua destinazione. A questo punto m raggiungerà finalmente il sito web di destinazione. Anche quest’ultimo non saprà nulla di Bob: egli ha ricevuto il messaggio m dall’exit node e non sa nulla del vero mittente.
Se sei riuscito a seguirmi nel ragionamento, immagino avrai capito che grossa protezione riesce a dare questo strumento. Mediante questo meccanismo dei circuiti, tanto affascinante quanto contorto, Tor riesce a garantire il pieno anonimato degli utenti che lo utilizzano. Il resto dipende da come lo utilizzano gli utenti stessi: banalmente se Bob, usando Tor, pubblicasse un articolo scrivendo il suo nome, cognome e indirizzo di casa, tutta la crittografia dell’Onion routing servirebbe a poco e l’anonimato si annullerebbe completamente.
Ovviamente, per utilizzare Tor non c’è bisogno di registrazioni, non c’è bisogno di comunicare a nessuno le tue informazioni e non c’è bisogno nemmeno che ti preoccupi di far funzionare tutto questo meccanismo. L’unica cosa che ti servirà sarà il Tor browser che puoi scaricare gratuitamente dal sito ufficiale. Tutto il funzionamento che ti ho spiegato avviene di nascosto quando ti colleghi alla rete Tor proprio mediante il Tor browser. E’ il browser stesso che sceglie i nodi Tor da contattare, instaura il circuito mediante essi e inoltra la richiesta. Da utente la navigazione è pressappoco identica a quella che faresti con un normale browser web come Firefox, Chrome, Safari ecc. L’unica differenza percepita sta nella lentezza del caricamento delle pagine (più che giustificabile vista l’applicazione dei diversi strati crittografici).
Prima di concludere, devi sapere che è possibile ottenere lo stesso livello di anonimato anche dalla parte server. Se ad esempio Bob volesse creare un suo sito web ma volesse rimanere anonimo, come potrebbe fare? Anche in questo caso potrebbe sfruttare Tor e creare un cosiddetto hidden service ma di questo ne parleremo in un articolo dedicato. Per oggi è tutto, ti ringrazio per aver letto fino a qui, un saluto!
1 Con ISP (Internet Service Provider) si intende la società alla quale ti sei affidato per la tua connessione ad Internet. ↩
2 Un pacchetto è un’unità fondamentale di trasmissione dati nel contesto delle reti di computer e dell’Internet. Ogni volta che ti colleghi ad un sito web il tuo computer gli invia messaggi sotto forma di pacchetti di rete. ↩
3 m rappresenta il vero e proprio pacchetto di rete da spedire, ricorda che esso contiene anche l’indirizzo web del sito finale.↩