Tor (software)

Da Wikipedia, l'enciclopedia libera.
Tor
Logo
Sviluppatore Roger Dingledine
Nick Mathewson
Ultima versione 5.0.3 [1] (22 settembre 2015; 4 mesi fa)
Sistema operativo Multipiattaforma
Linguaggio C
Genere Sicurezza informatica
Licenza Licenza BSD
(Licenza libera)
Sito web www.torproject.org

Tor (acronimo di The Onion Router) è un sistema di comunicazione anonima per Internet basato sulla seconda generazione del protocollo di onion routing. Tramite l'utilizzo di Tor è molto più difficile tracciare l'attività Internet dell'utente; di fatti l'uso di Tor è finalizzato a proteggere la privacy degli utenti, la loro libertà e la possibilità di condurre delle comunicazioni confidenziali senza che vengano monitorate.

Tor è disponibile per Windows, OS X e diversi sistemi operativi unix-like (principalmente le distribuzioni Lightweight Portable Security (LPS), una distro leggera che si lancia da chiavetta o CD senza installare nulla, e relizzata dal Dipartimento della Difesa US e dalla Software Protection Initiative ; oppure Tails, interamente pensata per privacy e riservatezza, in cui è già pre-installato nel browser) , è software libero e si basa sulla licenza BSD. È anche disponibile un'interfaccia di gestione: Vidalia.

Cenni storici[modifica | modifica wikitesto]

Il nucleo di Tor fu sviluppato a metà degli anni novanta dal matematico Paul Syverson e da Micheal Reed per la US Naval Research Laboratory, con lo scopo di proteggere le comunicazioni dei servizi segreti americani. Il suo sviluppo fu continuato da DARPA nel 1997. La prima versione alpha di TOR fu lanciata il 20 settembre 2002 da Syverson e altri collaboratori. Nel 2004 il codice fu rilasciato con una licenza libera e la Electronic Frontier Foundation concedeva dei fondi affinché il suo sviluppo fosse mantenuto attivo. Dingledine e Mathewson e altri 5 collaboratori che lavoravano originariamente al progetto, nel 2006 fondarono The Tor Project, un'associazione senza scopo di lucro responsabile dello sviluppo di Tor e dei progetti correlati. La EFF continua ad essere il principale sponsor del progetto.

L'8 settembre 2006 cominciò una serie di sequestri di server Tor in Germania da parte delle autorità per controllare l'eventuale presenza di materiale illegale, contenuto presumibilmente in alcuni servizi nascosti.[2]

Col documento RFC7686 dello Internet Engineering Task Force (IETF) i domini di primo livello della darknet Tor (che hanno estensione .onion) entrano in una lista ristretta di domini speciali (.local, .localhost, .example, .invalid, .test e altri), inaccessibili alla Internet pubblica e che ICANN non può assegnare a pagamento ai singoli indirizzi: i .onion sono assegnati solo dalla rete Tor, di essi si può ottenere un certificato di cifratura, e sono esclusi dal global-DNS, cioè non compaiono nel file Internet-root di zona per prevenire problemi di sicurezza e stabilità. Il protocollo RFC "istruisce" i vari software, quando l'utente cerca un indirizzo .onion, rimbalzare la richiesta non verso la Internet pubblica, ma alla rete tor.

Caratteristiche[modifica | modifica wikitesto]

Tor protegge gli utenti dall'analisi del traffico attraverso una rete di router (detti anche onion router), gestiti da volontari, che permettono il traffico anonimo in uscita e la realizzazione di servizi anonimi nascosti. 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 (per analogia con onion, che in inglese significa cipolla).

Le comunicazioni via Tor sono a bassa latenza e questo lo rende adatto alla navigazione web, alla posta, messaggeria istantanea, SSH, IRC ecc. Tor supporta esclusivamente il protocollo TCP, il browser è stato sviluppato modificando Firefox.

La rete Tor fornisce essenzialmente due servizi:

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

Indicazioni per l'anonimato in rete[modifica | modifica wikitesto]

The Guardian Project, organizzazione no-profit, ha realizzato un browser dedicato alla rete Tor, e fornito alcune raccomandazioni per garantire anonimato e sicurezza che gli utenti dovrebbero rispettare per sè e per non compromettere sicurezza e anonimato degli altri utenti connessi.

Tor Browser è un programma gratuito e a sorgente aperto, portabile: può essere lanciato da chiavetta USB, a garanzia di un maggiore annimato rispetto alle altre applicazioni che si installano sul PC, con il rischio di una tramissione di dati personali. Tor Browser blocca Java, Flash, RealPlayer, Quicktime e l'aggiunta di addon in quanto possono essere manipolati per rivelare l'indirizzo IP.
La rete Tor e il browser supportano la connessione cifrata dal proprio PC al primo nodo della rete Tor cui ci si collega, e all'interno della rete Tor, ma n on possono garantire che sia cifrata e non viaggi in chiaro l'indirizzo IP dall'ultimo nodo della rete Tor al sito finale cui ci si connette: Tor browser impone "HTTPS elsewhere" per forzare ad utilizzarla il maggiore numero di siti che supportano questa connessione cifrata.

Tor sconsiglia di usare file .torrent all'interno della rete Tor, così come di tenere aperte applicazioni che usano i .torrent mentre si sta usando Tor Browser: nella " tracker GET request" i torrent inseriscono l'indirizzo IP in chiaro.

File scaricati di tipo Word o pdf dovrebbero essere aperti quando non si è connessi a Internet, in quanto possono contenere o linkare siti Internet che vengono aperti da programmi che non usano Tor, in cui l'indirizzo IP appare in chiaro.

Wikipedia consente la visualizzazione, non la modifica delle pagine da rete Tor, salvo singole eccezioni autorizzate.

Connessioni anonime[modifica | modifica wikitesto]

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 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 ad un istante di 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 router 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[modifica | modifica wikitesto]

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 router 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 servizio nascosto Tor.

Ai servizi nascosti 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 wikitesto]

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 wikitesto]

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

Middleman router[modifica | modifica wikitesto]

È 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 router sono pubblicamente noti, per scelta progettuale.

Exit router[modifica | modifica wikitesto]

È 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 router Tor, essi sono pubblicamente noti.

Bridge router[modifica | modifica wikitesto]

I bridge router 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.

Aspetti problematici[modifica | modifica wikitesto]

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.

Richieste DNS[modifica | modifica wikitesto]

È 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 wikitesto]

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[3].

Exit node ostili[modifica | modifica wikitesto]

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 wikitesto]

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[4][5]; 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.

Hornet[modifica | modifica wikitesto]

Poiché Tor si è rivelato una rete lenta e in cui alcuni hacker sono riusciti ad entrare, ricercatori della Mellon University negli Stati Uniti, in collaborazione con Federal Institute of Technology in Zurich e University College London, hanno costruito una rete Tor, chiamata Hornet (High-speed and Onion Routing at the Network Layer)[6] che nei test di laboratorio è riuscita a raggiungere la velocità di navigazione di 93 gigabit al secondo (circa 15 gigabyte al secondo).

La rete è stata testata su un router in cui gira un software Intel e un client Hornet gestito da un programma in linguaggio Python. Il livello di sicurezza è maggiore perché un ipotetico hacker necessita di controllare una significativa percentuale degli ISP intermedi sparsi in aree geopolitiche diverse, il tutto senza essere scoperto.

The Onion Router è un software gratuito rilasciato sotto licenza BSD e implementa una crittografia end-to-end, in cui la chiave pubblica e privata sono condivise solamente fra mittente e destinatario, e i contenuti viaggiano cifrati fra i nodi intermedi, saltando da un server all'altro sparsi per il mondo (che svolge in questo caso la funzione di router) fino all'obbiettivo finale. Oltre a variare i nodi intermedi in cui transitano i pacchetti, come è tipico della rete Tor, Hornet aggiunge un ulteriore elemento di sicurezza poiché il protocollo di cifratura viene modificato nel tempo.
Quanti più utenti sono connessi alla rete Hornet tanto maggiori sono i nodi tra cui far rimbalzare i dati e il livello di sicurezza, a scapito però di una ridotta velocità di navigazione per gli utenti.

L'uso della crittografia simmetrica consente secondo i ricercatori di mantenere queste elevate velocità di connessione. La rete è estremamente scalabile, richiedendo una aggiunta minima di risorse per ogni nuovo canale anonimo gestito: ogni nodo della rete Hornet può processare traffico proveniente da un numero praticamente illimitato di sorgenti. Poiché il sistema non memorizza dati prima dell'avvio della sessione, fornisce garanzie di sicurezza maggiori delle reti esistenti per la protezione dell'anonimato. La crittografia applicata su ogni singolo pacchetto scambiato consente di ridurre il rischio di perdita dei dati: la rete applica la crittografia a chiave asimmetrica solo fra mittente e destinatario, mentre fra i nodi di rete intermedi si impiega solo la crittografia a chiave simmetrica, lo stato della connessione (come le chiavi di crittografia) è inserito direttamente nell'intestazione (header) del messaggio.

Quando un utente vuole accedere ad un sito web su Internet, un protocollo Tor-simile detto Sphinx ("Sfinge") in primo luogo è utilizzato per impostare il canale. Ogni pacchetto Sfinge permette ad un nodo di origine di stabilire un set di chiavi simmetriche, una per ciascun nodo sul percorso attraverso il quale i pacchetti vengono instradati. Una catena di chiavi viene creata mediante uno scambio Diffie-Hellman e ogni chiave viene utilizzata per crittografare un inoltro fra due nodi intermedi.

Il nodo destianatario può così recuperare in modo dinamico le informazioni incorporate (cioè, nodo successivo, chiave condivisa di sessione, tempo di scadenza): il mittente inserisce nell'anonymous header (AHDR) il forwarding segment di ciascun nodo del canale fino alla destinanzione finale. L'AHDR permette a ogni nodo del percorsso l'accesso al nodo successivo, senza rendere visibili a terzi qualsiasi informazione sul percorso eccetto il nodo immediatamente precedente e successivo. Il traffico dati è cifrato con le chiavi assegnate a ciascuno dei nodi del canale.

Alternative[modifica | modifica wikitesto]

Proxy[modifica | modifica wikitesto]

Programmi alternativi a Tor, sempre basati su proxy server gestiti da volontari o soggetti terzi, per superare la censura di Internet sono: Psiphon, Ultrasurf, Lantern.

Vuvuzela[modifica | modifica wikitesto]

Vuvuzela è un software che punta a garantire l'anonimato con un approccio differente da quello di Tor e Hornet, meno strati a cipolli e livelli di crittografia, più rumore di fondo. Tra il nodo mittente e destinatario viene inserito un nodo server con funzione di mailbox sul quale è fisicamente salvato il messaggio, e notifica al destinatario la presenza di un messaggio da prelevare.
Il messaggio attraversa vari server nel passaggio dal mittente al mailbox, così pure il destinatario invia un messaggio che attraversa vari server prima di recuperare l'indirizzo dalla mailbox. Ad ogni passaggio ad un server, vengono inviati messaggi a tutti gli utenti connessi alla rete.

Se Alice e Bob inviano messaggi ad un dead-drop server, e Charlie non invia, un osservatore concluderebbe che Alice e Bob stanno comunicando tra loro. Così il primo requisito del sistema è che tutti gli utenti inviino regolarmente messaggi al server, che contengano informazioni, oppure siano messaggi vuoti.
Se il messaggio di Charlie è instradato a un indirizzo, mentre i messaggi di Alice e di Bob vengono instradati ad un altro indirizzo di memoria, un ipotetico intruso che è riuscito ad entrare nel server, riesce a vedere quali utenti accedono a quali indirizzi di memoria. Così, invece di utilizzare un singolo server, Vuvuzela ne utilizza tre, per cui ogni messaggio inviato attraverso il sistema è avvolto in tre strati di crittografia. Il primo server si stacca il primo strato di crittografia prima di passare i messaggi al secondo server. Ma esso anche casualmente permuta il loro ordine. Così se, ad esempio, il messaggio di Alice è arrivato al primo server prima di Bob e il messaggio di Bob è arrivato prima di Charlie, il primo server li passerà al secondo in ordine Bob- Alice- Charlie, oppure Charlie- Bob- Alice, o simili. Il secondo server si stacca il secondo strato di crittografia e permuta ancora una volta l'ordine dei messaggi. Solo il terzo server vede quali messaggi sono vincolati per quali indirizzi di memoria. Supponendo anche che esso è stato infiltrato, e anche se l'intruso osserva l'ordine in cui i messaggi sono arrivati sul primo server, egli non può dire il da dove il messaggio sia finito. L'intruso sà che si stanno parlando due utenti, i cui messaggi hanno raggiunto il primo server all'interno di qualche finestra di tempo.

Quando il primo server ritrasmette al secondo i messaggi ricevuti, produce anche una sfilza di messaggi fittizi, con le proprie destinazioni crittografati. Il secondo server fa la stessa cosa.
Quindi statisticamente, è quasi impossibile per un intruso stabilire anche se uno qualsiasi dei messaggi che arrivano all'interno della stessa finestra di tempo, sia finito alla stessa destinazione. Tali garanzie statistiche, valgono anche se due dei tre server sono infiltrati. Finché uno di loro rimane senza compromessi, il sistema funziona[7].

Nei primi test virtuali sul cloud di Amazon, si è misurata una latenza di 44 secondi (su 15.000 messaggi totali al secondo) che intercorre fra l'invio e la ricezione del messaggio.

Similare è il programma e rete I2P.

PrivaTegrity[modifica | modifica wikitesto]

Basata sui paper di David Chaum et al.[8] e presentata a Gennaio 2016 al Real World Cryptography Conference della Stanford University, PrivaTegrity supera il problema della rete Tor suscettibile agli attacchi di analisi del traffico a causa della sua dimensione e timing di invio dei pacchetti, non uniformi. La maggior parte delle operazioni computazionali viene eseguita sul lato server e non sul client, che elimina le operazioni di chiave pubblica in tempo reale e migliora le prestazioni, utilizzando precalcolo di alcune informazioni e l'uso dei più veloci algoritmi a chiave singola rispetto a quelli a chiave doppia.

Il paper afferma inoltre che il protocollo di cMix può garantire l'anonimato del mittente se qualsiasi mittente nella rete cMix è indistinguibile da tutti gli altri potenziali mittenti. Tuttavia, il sistema è realizzato con un numero limitato di nove server "certificati" (contro le decine di migliaia tra proxy e router di Tor), risultando facilmente violabile da autorità a livello governativo (e non)[9].

Note[modifica | modifica wikitesto]

  1. ^ Tor Browser 5.0.3 is released | The Tor Blog
  2. ^ Germania, crackdown contro la rete Tor da Punto Informatico
  3. ^ Low-Cost Traffic Analysis of Tor (PDF), cl.cam.ac.uk, 19 gennaio 2006. URL consultato il 21 maggio 2007.
  4. ^ Tor FAQ: Key management
  5. ^ Tor directory protocol, version 3
  6. ^ Paper di specifica tecnica della rete Hornet
  7. ^ MIT News Office, December 7, 2015 Untraceable communication — guaranteed New untraceable text-messaging system comes with statistical guarantees
  8. ^ cMix: Anonymization by High-Performance Scalable Mixing,[1]
  9. ^ Punto informatico.it. 22 Gennaio 2016

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]