Tor (software)

Da Wikipedia, l'enciclopedia libera.
Tor
Logo di Tor (software)
Sviluppatore Roger Dingledine
Nick Mathewson
Ultima versione 0.2.3.25 (19 novembre 2012)
Ultima beta 0.2.4.14 alpha (18 giugno 2013)
Sistema operativo Multipiattaforma
Linguaggio C
Genere Sicurezza informatica
Licenza Licenza BSD
(Licenza libera)
Sito web www.torproject.org

Tor (The Onion Router) è un sistema di comunicazione anonima per Internet basato sulla seconda generazione del protocollo di onion routing.

Tor protegge gli utenti dall'analisi del traffico attraverso una rete di onion router (detti anche relay), gestiti da volontari, che permettono il traffico anonimo in uscita e la realizzazione di servizi anonimi nascosti. Originariamente sponsorizzato dalla US Naval Research Laboratory, è stato un progetto della Electronic Frontier Foundation ed ora è gestito da The Tor Project, una associazione senza scopo di lucro.

Panoramica[modifica | modifica sorgente]

Lo scopo di Tor è quello di rendere difficile l'analisi del traffico e proteggere così la privacy, la riservatezza delle comunicazioni, l'accessibilità dei servizi. Il funzionamento della rete Tor è concettualmente semplice: i dati che appartengono ad una qualsiasi comunicazione non transitano direttamente dal client al server, ma passano attraverso i server Tor che agiscono da router costruendo un circuito virtuale crittografato a strati.

Le comunicazioni via Tor sono a bassa latenza e questo lo rende adatto alla navigazione web, alla posta, instant messaging, SSH, IRC ecc. Tor supporta esclusivamente il protocollo TCP.

La rete Tor fornisce essenzialmente due servizi:

  1. Connessioni anonime in uscita
  2. Fornitura di servizi nascosti

Connessioni anonime[modifica | modifica sorgente]

Gli utenti della rete Tor eseguono il software Tor sulla loro macchina. Questo software periodicamente negozia un circuito virtuale attraverso più nodi Tor, fino alla destinazione finale. L'uso della crittografia a strati (per analogia con onion, che in inglese significa cipolla), garantisce la PFS (Perfect forward secrecy): ciò vuol dire che un eventuale malintenzionato, derivando la chiave principale di sessione al tempo t non potrebbe trarre alcuna informazione riguardo alle chiavi temporanee che da essa sono state derivate fino al tempo t-1 (ovviamente tutte quelle successive sarebbero compromesse). Si tratta di una caratteristica molto apprezzata per chiare ragioni di sicurezza. Più in particolare, ogni onion router decide a quale nodo della rete spedire i pacchetti e negozia una coppia di chiavi crittografiche per spedire i dati in modo sicuro, cifrandoli. In questo modo, nessun osservatore posto in un punto qualsiasi del circuito, è in grado di conoscere l'origine o la destinazione della connessione.

Le comunicazioni tra i nodi Tor del circuito sono cifrate, tranne il tratto tra l'ultimo nodo Tor (detto exit node) e la destinazione finale, che è normalmente in chiaro. Se la destinazione è a sua volta un relay Tor, l'intera comunicazione è cifrata e sfugge all'analisi di un eventuale osservatore posto nella tratta finale del circuito.

Il software Tor fornisce un'interfaccia SOCKS tramite la quale qualsiasi software di rete che la supporti (browser web, client IRC...) può comunicare in forma anonima, attraverso un proxy SOCKS locale configurato ad hoc, come Polipo o Privoxy.

Servizi nascosti (hidden services)[modifica | modifica sorgente]

Anche se la funzionalità più popolare di Tor è quella di fornire anonimato ai client, può anche fornire anonimato ai server. Usando la rete Tor, è possibile ospitare dei server in modo che la loro localizzazione nella rete sia sconosciuta. Un servizio nascosto può essere ospitato da qualsiasi nodo della rete Tor, non importa che esso sia un relay o solo un client, per accedere ad un servizio nascosto, però, è necessario l'uso di Tor da parte del client. In altre parole, è possibile offrire un servizio (ad esempio un sito web) in modo totalmente anonimo, come hidden service Tor.

Agli hidden services si accede attraverso uno pseudo-dominio di primo livello .onion. La rete Tor capisce la richiesta e apre una connessione con il server desiderato. In genere si preferisce configurare un servizio nascosto in modo che sia accessibile esclusivamente da un'interfaccia di rete non pubblica. I servizi a cui si accede sia attraverso Tor che la rete pubblica sono suscettibili ad attacchi a correlazione.

Un altro vantaggio dei servizi nascosti di Tor è che non richiedono indirizzi IP pubblici per funzionare e possono quindi essere ospitati dietro dei firewall e dei NAT.

Tipi di nodi Tor[modifica | modifica sorgente]

L'utente può decidere in che modo usare la rete Tor ed in che modo contribuire, se lo desidera, alla crescita della rete Tor. I principali modi d'uso sono:

Tor-onion-network.png

Client[modifica | modifica sorgente]

In questa configurazione normale di base, Tor gestisce unicamente le connessioni dell'utente permettendogli di collegarsi alla rete Tor.

Middleman relay[modifica | modifica sorgente]

È un nodo Tor che gestisce traffico di terzi da e per la rete Tor, senza collegarsi direttamente all'esterno. Nel caso funga anche da client, esso gestisce anche le connessioni dell'utente, garantendo un maggiore anonimato. Tutti i relay sono pubblicamente noti, per scelta progettuale.

Exit relay[modifica | modifica sorgente]

È un nodo Tor che gestisce traffico di terzi da e per la rete Tor, e verso l'esterno. È possibile definire una exit policy sulle connessioni in uscita all'esterno della rete Tor. Come il caso precedente, offre una protezione maggiore all'utente che lo usi per le proprie connessioni. Come tutti i relay Tor, essi sono pubblicamente noti.

Bridge relay[modifica | modifica sorgente]

I bridge relay sono dei nodi semi-pubblici di tipo sperimentale, studiati per permettere di collegarsi alla rete Tor anche in presenza di un filtraggio efficace contro Tor (come in Cina, Iran ecc.). Non compaiono nelle liste pubbliche dei nodi noti ma devono venire richiesti esplicitamente.

Problemi[modifica | modifica sorgente]

L'8 settembre 2006, comincia una serie di sequestri[1] di server Tor in Germania da parte delle autorità per controllare l'eventuale presenza di materiale illegale, contenuto presumibilmente in alcuni servizi nascosti. Questo fatto costituisce il primo vero test per l'intera rete Tor.

Etiquette e abuso[modifica | modifica sorgente]

Gli eventuali abusi della rete Tor vengono mitigati dalla possibilità, per ciascun nodo Tor di uscita (exit node), di definire una politica d'uscita (exit policy) che definisca quale tipo di traffico può uscire o meno attraverso l'exit node. Usando una combinazione di indirizzi e porte, è possibile combattere la maggior parte degli abusi. I potenziali abusi includono:

Esaurimento della banda
È considerato scortese e improprio trasferire grandi quantità di dati attraverso la rete Tor, ad esempio con software peer to peer, dato che gli onion router sono mantenuti da volontari che donano la propria banda.
E-mail
L'uso anonimo del protocollo SMTP (per esempio: l'email), può portare allo Spam. Di conseguenza, la politica di uscita di default dei nodi Tor rifiuta le connessioni in uscita verso la porta 25, cioè quella usata per SMTP.
Vandalismo
Sicuri del fatto di non poter essere rintracciati, alcuni utenti Tor scrivono messaggi ritenuti impropri su Forum, wiki, o chatroom. Come risultato, molti grandi provider di questi servizi impediscono agli utenti anonimizzati di utilizzare i propri servizi. Wikipedia, ad esempio, inibisce la modifica delle proprie pagine agli utenti anonimi che si collegano via Tor tramite un'estensione chiamata TorBlock. L'uso da parte di utenti registrati resta comunque soggetto a dei limiti.

Limiti[modifica | modifica sorgente]

Richieste DNS[modifica | modifica sorgente]

È importante notare che molti software continuano a effettuare richieste DNS dirette, senza usare il proxy Tor. Ciò compromette l'anonimato perché rivela ad un osservatore le richieste DNS fatte, e quindi le destinazioni delle connessioni. Possibili soluzioni a questo problema sono l'uso di Privoxy, o del comando 'tor-resolve' fornito con Tor. In più, le applicazioni che usano Socks 4a (quindi supportano le richieste basate sul nome al proxy) possono veicolare le richieste DNS attraverso la rete anonima, e ottenere che le richieste vengano fatte dal nodo di uscita ottenendo così lo stesso livello di anonimizzazione del resto del traffico Tor.

Analisi del traffico[modifica | modifica sorgente]

Il modello di rischio in cui Tor offre anonimato prevede un osservatore in grado di osservare una piccola parte delle connessioni nella rete Internet, come può essere un ISP, un governo locale, un server di destinazione. Tor non offre protezione contro un ipotetico avversario globale, in grado di osservare tutte le connessioni della rete: poiché Tor è un servizio a bassa latenza sarebbe possibile correlare una connessione cifrata di partenza con una connessione in chiaro di destinazione.

Inoltre, sarebbero possibili altri attacchi all'anonimato di Tor (ma non l'identità dell'utente di partenza) anche ad un osservatore parziale della rete[2].

Exit node ostili[modifica | modifica sorgente]

L'ultimo nodo di un circuito Tor trasmette la connessione così com'è (non cifrata da Tor) alla destinazione finale. Se la connessione finale avviene in chiaro, l'exit node potrebbe spiare i dati trasmessi, ricavandone ad esempio password e altre informazioni. Se la connessione è di tipo cifrato (SSL, SSH) non è possibile spiare direttamente i dati trasmessi, mentre sono comunque possibili attacchi di tipo Man in the middle riconoscibili dal cambiamento dei certificati crittografici del server di destinazione.

Lo scenario di sicurezza in un exit node è molto simile all'uso di una connessione pubblica wireless, che può essere sorvegliata o manipolata facilmente da un osservatore locale. La protezione consiste nell'usare sempre protocolli sicuri cifrati quando si trasmettono informazioni sensibili; è bene inoltre verificare i certificati crittografici (SSL, SSH) del server a cui ci si collega.

ISP ostile[modifica | modifica sorgente]

Alcuni ipotizzano che un Internet Service Provider ostile potrebbe costruire una propria rete Tor privata e ridirigere lì il traffico dei propri utenti Tor sorvegliandone interamente il traffico. Per evitare questo scenario di attacco tuttavia il software Tor dell'utente contiene cablate di default le credenziali (l'indirizzo e le chiavi crittografiche) dei 7 directory authority della rete Tor[3][4]; al primo tentativo di collegamento in questa rete ostile l'utente avrebbe un errore di autenticazione crittografica e non potrebbe proseguire. In questo scenario di attacco quindi l'ISP dovrebbe anche distribuire agli utenti una propria versione modificata del software Tor, con le credenziali delle proprie directory authority ostili. Per questo motivo il software Tor viene distribuito tramite diversi canali (il sito web ufficiale, siti web mirror, per email) e si raccomanda la verifica dell'integrità del software tramite le firme crittografiche dei rilasci.

Piattaforme[modifica | modifica sorgente]

Tor è disponibile per Windows, Linux/BSD/Unix, Mac OS X ed è software libero basato sulla licenza BSD. È anche disponibile un'interfaccia di gestione: Vidalia.

Note[modifica | modifica sorgente]

  1. ^ Germania, crackdown contro la rete Tor da Punto Informatico
  2. ^ Low-Cost Traffic Analysis of Tor (PDF), 19 gennaio 2006. URL consultato il 21 maggio 2007.
  3. ^ Tor FAQ: Key management
  4. ^ Tor directory protocol, version 3

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]