The Onio n
Rout er
The Onio n
Rout er
Francesca Rosset Davide Toniolo
Stefano Dus
Servizio di comunicazione anonima a bassa latenza per applicazioni TCP basato su circuiti virtuali.
Offre:
Anonimato Servizi nascost
Tor - The Onion Router
inizia lo sviluppo dell’Onion Routing da parte della US Naval Research Laboratory
rilasciata la prima versione di Tor (Second Generation Onion Routing)
rilasciato sotto licenza open source
fondato Tor Project
Anni 90
2002
2004
2006
Un po’ di Storia
Client Tor
Directory server
Relay
Relay
Bridge Relay
Relay
La rete Tor
Rete Tor
Rete Internet Client di
Internet
Funzionamento Generale
Client
Middle relay Entry relay
Exit relay
HTTP link
TLS Encrypted Link Unencrypted Link Onion Proxy
Onion Router Symmetric Key
Server Directory server
1
Consensus
2
3
Con informazioni su: relay, chiavi pubbliche, exit policies
Creazione del circuito
Connessione
al servizio
Rete Tor
Funzionamento Generale
Client Entry relay Middle relay Exit relay
Server
TLS Encrypted Link Unencrypted Link Onion Proxy
Onion Router Symmetric Key OP crittografa il messaggio
più volte e lo spedisce
1
OP decrittografa più volte per ottenere la risposta
5
Ogni OR decrittografa con la sua chiave simmetrica
2
Ogni OR crittografa con la sua chiave simmetrica
4 Server riceve il messaggio e
invia la risposta
3
160bit SHA-1:
controllo messaggi 128bit AES:
dati
1024bit RSA:
instaurazione circuito Diffie-Hellman:
negoziazione chiave
Cifratura TLS:
connessioni
Crittografia
Comunicazione tramite celle di dimensione fissa di 512 byte imbustate in pacchetti TLS COMMAND CELL:
RELAY CELL:
HEADER PAYLOAD
Celle
CircID 2byte
Data 509byte CMD
1byte
RELAY HEADER RELAY PAYLOAD
Len 2byte Digest
6byte
Stream ID 2byte
Relay 1byte
Data 489byte CMD
1byte CircID
2byte
HEADER
In un circuito ci possono essere più
flussi TCP
Controllo integrità end-to-end
Lunghezza del relay payload
DATA BEGIN
END CONNECTED EXTEND / EXTENDED … PADDING
CREATE / CREATED DESTROY In una connessione
possono passare più circuiti
Cifrato con k1 (AES)
k1,k2
Chiavi simmetriche
Instaurazione Del Circuito
Onion
Proxy Onion
Router 1
Onion Router 2
Create
C1 RSA(gx1 ,OR1key)
C1 Relay OR2,RSA(gx2 ,OR2key) Extend
C2 Created gy2 ,H(k2) RSA(gx2 ,OR2key)
C2 Create
C1 Created gy1 ,H(k1)
Extended gy2 ,H(k2)
C1 Relay
Onion Proxy
Onion Router 1
Onion Router 2
Web site
Esempio: Connessione TCP
C2 Relay Connected
Connected C1 Relay
<website>:80
C1 Relay Begin
C2 Relay Begin <website>:80
«HTTP GET…»
C1 Relay Data
C2 Relay Data «HTTP GET…»
«HTTP GET…»
(risposta)
TCP handshake TCP handshake
Cifrato con k1 (AES)
Cifrato con k2 (AES)
Hidden Services
xyz = prima metà di hash(service public key)
Usano Tor per non essere rintracciabili:
l’indirizzo IP è nascosto
Raggiungibili solo da rete Tor con un indirizzo xyz.onion non risolvibile in IP
Il client che vi accede rimane
anonimo
Hidden Service XYZ.onion
Setup Servizio
Distributed Hash Table
… …
XYZ IPs PK
… …
Tor Network
Introduction Point 1
Introduction Point 2
Introduction Point 3 Tor Circuit (2 hops)
Tor Circuit (3 hops) IPs Introduction Points PK Service Public Key RV Rendezvous Point
S One-time Secret
PK
PK PK
1
IPs PK
Signed Hidden Service
Description
2
PK
PK
PK
PKIPs
Client
Hidden Service XYZ.onion
Accesso al Servizio
Rendezvous Point
Distributed Hash Table
… …
XYZ IPs PK
… …
1
2
Tor Network
3
Introduction Point 1
Introduction Point 2
Introduction Point 3
OP
XYZ.onion ?
IPs PK
encrypted to PK
RV S
4
encrypted to PKRV S
5
S
6 7
notifica
S
Tor Circuit (2 hops) Tor Circuit (3 hops) IPs Introduction Points PK Service Public Key RV Rendezvous Point
S One-time Secret
PK S
IPs RV
S
PKIPs
PK
PK
PK
PK S
IPs RV
Fattori Che Influenzano La Velocità Della Rete
La connessione non è diretta, ma passa attraverso più nodi
Il circuito passa per relay localizzati in parti diverse
del mondo
Relay gestiti da volontari:
capacità e banda offerta variabile
Molti utenti rispetto ai nodi che compongono la
rete Tor
Uso improprio della rete aumenta il carico
(se usato per fare attacchi dDOS, P2P,...)
Crittografia
• Gli indirizzi IP di relay, che sono pubblici, sono bloccati
Filtraggio IP
• Relay non noti pubblicamente: un numero limitato di indirizzi è
ottenibile su richiesta
BRIDGE • Riconosciuto il traffico Tor e bloccato
Deep Packet Inspection
• Trasformano il traffico Tor tra client e bridge in modo che risulti difficile rilevarlo
PLUGGABLE TRANSPORTS
Blocco Accesso a Tor
Soluzione Soluzione
Allora
Exit node può vedere il contenuto dei messaggi
inviati dal client
• Usare protocolli sicuri e criptati (es. HTTPS)
Richieste DNS fatte con pacchetti UDP
(no tramite Tor)
• Usare protocollo SOCKS4a:
lavora con hostname
• Usare «Filtering http proxy» (es.
Privoxy): richieste DNS tramite rete Tor
Contenuti Java, Javascript, Flash, … sono eseguiti in
macchine virtuali e possono bypassare Tor
• Disabilitare quei contenuti
Il traffico risulta provenire dall’exit node, che può
avere problemi legali
• Exit policies
Non vengono nascosti i contenuti trasmessi al server (dati di login, …)
• Evitare di trasmettere
informazioni che permettano di risalire alla propria identità
Viene usato per fare attacchi informatici e non
essere rintracciabili
• Il traffico SMTP viene bloccato di default per evitare lo SPAM
• Alcuni siti bloccano l’accesso da Tor
I circuiti devono passare per nodi fidati
• Guard Entry Node
• Consensus
• Credenziali dei directory server scritte nel codice
Aspetti Critici e Contromisure
Correlazione temporale
• Porre più client dietro ad un router/firewall così da farli sembrare uno solo
• Evitare di scegliere nodo di entrata e nodo di uscita nella stessa sottorete
Correlazione sulla dimensione dei pacchetti
• Utilizzare campo Padding (non utilizzato per garantire
performance migliori)
• Nodi accorpano più flussi di informazioni nei circuiti
Compromissione delle chiavi
• Rapida rotazione delle chiavi TLS
Destroy directory server
• Se più della metà cade diventa necessario l’intervento
manuale dell’operatore
Compromissione directory server e Tricking
• Tor deve garantire sia
l’indipendenza sia la resistenza agli attacchi
• Definizione di una blacklist manuale
• Consensus
Non difende da avversari globali
Flooding verso i rendezvous point
• Token di autorizzazzione delle richieste
• Limitazione dei rate di richieste