How TOR works

Perché scaricare torrent da Tor non è una buona idea

Questo post è la traduzione di un post del 30 aprile 2010 intitolato “Bittorrent over Tor isn’t a good idea” di arma dal blog del progetto TOR.


Un numero crescente di persone ci stanno chiedendo informazioni riguardo un recente articolo scientifico prodotto da dei ricercatori dell’INRIA in Francia riguardante BitTorrent ed alcuni metodi di attacco alla privacy degli utenti. Questo post cerca di spiegare gli attacchi e cosa implicano.

L’attacco è composto da tre parti (o, alternativamente, esistono tre attacchi separati che possono essere combinati tra loro).

Il primo attacco colpisce gli utenti che configurano la loro applicazione BitTorrent per utilizzare TOR come proxy per il tracker BitTorrent (ovvero, per fare passare il generato dall’applicazione verso il tracker BitTorrent attraverso la rete TOR). In questo modo, gli utenti sperano di mantenere segreto il proprio indirizzo IP da potenziali “guardoni” che vanno a leggere la lista dei peer dal tracker. Il problema è che diversi client BitTorrent molto diffusi (gli autori dell’articolo menzionano in particolare uTorrent, e penso che anche Vuze lo faccia) non fanno altro che ignorare le impostazioni dei proxy SOCKS in questo caso. La scelta di ignorare le impostazioni dei proxy è comprensibile, dal momento che i tracker moderni utilizzano il protocollo UDP per le comunicazioni, e i proxy SOCKS, come TOR supportano solamente il protocollo TCP – in altre parole, il problema nasce dal fatto che gli sviluppatori di queste applicazioni hanno dovuto scegliere tra sviluppare un’applicazione che “funziona anche quando l’utente imposta un proxy che non può essere utilizzato” o “produrre un errore misterioso e causare frustrazione all’utente”. Il risultato è che le applicazioni BitTorrent fanno delle scelte di sicurezza diverse rispetto a quanto alcuni previsto dall’utente, e questa differenza ora è un pericolo per gli utenti.

L’attacco è anche peggiore di così: a quanto pare in alcuni casi uTorrent, BitSpirit, e libTorrent scrivono l’indirizzo IP dell’utente direttamente tra le informazioni trasmesse al tracker e/o agli altri peer. TOR sta facendo il suo lavoro: TOR sta inviando anonimamente il vostro indirizzo IP al tracker o ai peer. Nessuno sa da dove lo si state inviando, ma probabilmente non è un’informazione che vorreste che il vostro client BitTorrent invii.

Questo era il primo attacco. Il secondo attacco si basa sul primo e colpisce gli utenti BitTorrent che proxano anche il resto del loro traffico BitTorrent attraverso TOR: lo scopo dell’attacco è permettere a un peer attaccante (invece che al tracker) di identificare l’utente. Il protocollo BitTorrent, almeno per com’è implementato da queste applicazioni BitTorrent molto diffuse, sceglie una porta casuale sulla quale si mette in ascolto e comunica questa porta casuale al tracker così come ad ogni peer con il quale interagisce. Grazie al primo attacco di cui sopra, il tracker è a conoscenza sia dell’indirizzo IP reale dell’utente e anche della porta casuale che il vostro client ha scelto. Quindi se il client uTorrent sceglie 50344 come porta, e comunica in forma anonima (via TOR) con altri peer, allora questi altri peer possono consultare il tracker e cercare tra tutti i peer quello che ha comunicato al tracker la 50344 come porta di ascolto (con un’alta probabilità ce ne sarà solo uno), et voilà, in questo modo il peer scopre il vostro indirizzo IP reale. C’è un ulteriore “bonus”, se le comunicazioni con i peer BitTorrent non sono criptate, il nodo di uscita TOR che avete scelto può anche osservare il traffico ed eseguire l’attacco.

Questo era il secondo attacco. Insieme, questi due attacchi forniscono già una serie di motivi per cui eseguere una qualsiasi applicazione BitTorrent attraverso TOR non vi permetterà di ottenere la privacy che vorreste.

Quindi qual è la soluzione? Abbiamo due risposte da dare. La prima è “non usate BitTorrent su TOR”. [Come sviluppatori di TOR, ndt] abbiamo detto per anni di non usare BitTorrent attraverso TOR, perché la rete TOR non è in grado di gestire il carico generato; forse questi attacchi convinceranno più persone ad ascoltare il nostro appello. La seconda risposta è che se volete che il vostro client Bittorrent mantenga effettivamente la vostra privacy quando utilizzate un proxy è necessario richiedere agli sviluppatori di queste applicazioni e di questi protocolli di risolvere i problemi di sicurezza. TOR non può tenervi al sicuro se le applicazioni che usate fanno trapelare la vostra identità.

Con il terzo attacco documentato nell’articolo le cose si fanno più interessanti. Per motivi di efficienza, TOR utilizza lo stesso circuito per più flussi delle applicazioni. Questo approccio migliora l’efficienza, perché non è necessario perdere tempo e introdurre la complessità necessaria a generare un nuovo circuito per ogni immagine che potreste trovare sulla prima pagina aol.com e, inoltre, migliora l’anonimato perché ogni volta che si genera un nuovo percorso attraverso la rete Tor, si aumenta la probabilità che uno dei percorsi costruiti sia osservabile da un attaccante. Ma lo svantaggio è che i nodi di uscita possono costruire brevi istantanee del profilo dell’utente basate su tutti i flussi che vedono uscire da un dato circuito. Se uno di tali flussi identifica l’utente, il nodo di uscita sa che anche il resto di tali flussi appartengono a quell’utente.

Qual è il risultato? Se si sta usando BitTorrent via TOR e si sta anche navigando sul web allo stesso tempo (sempre via TOR), allora gli attacchi precedenti consentono ad un nodo di uscita malevolo di costruire un attacco che neutralizza l’anonimato del proprio traffico web.

Qual è la soluzione? Le stesse due di prima: non usare BitTorrent via Tor, e/o richiedere agli sviluppatori BitTorrent di correggere i problemi di sicurezza delle loro applicazioni.

Ma a noi, come gli sviluppatori di Tor, questo attacco fornisce l’opportunità per una nuova, terza soluzione. C’è qualche modo in cui noi (ovvero TOR) siamo in grado di ridurre i danni che gli utenti possono fare a se stessi quando utilizzano applicazioni non sicure via TOR? Non possiamo risolvere il problema che l’utente si tiri la zappa sui piedi se usa BitTorrent via TOR, ma forse possiamo ancora salvarle il resto della gamba.

Un approccio per affrontare questo problema all’interno del design di TOR è quello di fare in modo che ogni applicazione utente utilizzi un circuito separato. In Linux e Unix, probabilmente possiamo mettere insieme qualcosa di simile — ci sono dei modi per cercare il PID (Process ID, identificativo del processo) dell’applicazione che si connette al socket. Tuttavia, sospetto sia più difficile farlo in Windows. Diventa anche più difficile perché molte applicazioni TOR utilizzano un proxy http intermedio, come Polipo o Privoxy, e quindi sarebbe necessario anche fare in modo che questi e altri proxy possano distinguere tra diverse applicazioni e quindi passare questa informazione a TOR.

Un’altra risposta è quella di tenere separati i flussi in base alla porta di destinazione. Quindi, tutti i flussi diretti alla porta 80 finiscono su un circuito e un flusso che va ad una porta di destinazione diversa potrebbe va su un altro circuito. Quest’idea circola da molto tempo, ma non l’abbiamo ancora implementata proprio per colpa di BitTorrent: se un client BT ci chiede di fare 50 flussi a 50 porte di destinazione diverse, non vogliano che il client TOR cerchi di aprire 50 circuiti diversi. Questo processo introdurrebbe troppo carico sulla rete. Credo che potremmo trattare in modo speciale il traffico web separando la porta “80” da tutto ciò che “non è 80”, ma non sono sicuro di quanto questo possa essere efficace in pratica, in primo luogo per il fatto che molte altre porte (IM, SSH, ecc) dovrebbero essere trattate in modo speciale, ed in secondo luogo perché i firewall stanno facendo in modo che una parte sempre maggiore del traffico Internet viaggi sulla porta 80 di questi tempi.

Dobbiamo continuare a scambiarci delle idee sui modi per proteggere gli utenti anche quando le loro applicazioni inviano le loro informazioni sensibili. Ma nel frattempo, penso che sia fantastico che questi ricercatori pubblichino i loro risultati e permettano a tutti di valutare la gravità di questi attacchi. (Se sei un ricercatore che lavora sugli attacchi o difese alla rete TOR, consula la nostra nuova pagina dedicata alle risorse per la ricerca. Gli attacchi descritti in questo articolo sono attacchi gravi per tutti gli utente BitTorrent che desiderano godere di un po’ di privacy.