TOR - linuxday 2014

Transcript

TOR - linuxday 2014
TOR
The Onion Router project
Marcello Viti
[email protected]
LA PRIVACY
EÕ il diritto di una persona di esercitare le misure di controllo
affinchŽ le informazioni che la riguardano vengano trattate o
guardate da altri solo in caso di necessitˆ.
PRIVACY ED ANONIMATO:
IO NON HO NULLA DA NASCONDERE MA...
¥! Criminale che vede
opportunitˆ di business
¥! Aggirare la censura dei
governi
¥! Partecipare alla
¥! Criminale che comunica
discussione di argomenti
con
altri
criminali
Tutte le tecnologie possono essere utilizzate
persenza
scopisubire
criminali
sensibili
il
degli altri
di strumenti
di anonimizzazionegiudizio
non introduce
dei nuovi
¥!LÕuso
Persone
che organizza
abusi ¥! Non essere profilato
truffe
commercialmente
¥! !
¥! Autoritˆ giudiziarie che
non vuole essere
identificate come tale
durante le attivitˆ
investigative
PRIVACY NELLE RETI
PUBBLICHE (1)
Internet:
¥! é un network pubblico
¥! Le cui informazioni di routing sono pubbliche
¥! lÕuso dellÕencryption non nasconde lÕidentitˆ
¥! • facile da analizzare
¥! non • stata concepita per scambiare o gestire dati sensibili
PRIVACY NELLE RETI
PUBBLICHE (2)
pt
No cry
t
Cryp
THE ONION ROUTER
CENNI STORICI
¥! 1995 US Naval Research Laboratory
¥! Paul Syverson, Roger Dingledine e David GoldSchlag
¥! 1997 DARPA
¥! Rilasciato nel 2002
¥! 2004 finanziato da EFF
¥! 2006 diventa the The TOR Project (Dingledine e
Goldschlag)
TOR
Onion routing • una tecnica di comunicazione anonima
allÕinterno di una rete di computer.
I messaggi sono criptati
costantemente con una tecnica a
ÔcipollaÕ
Quindi inviati
attraverso alcuni
nodi della rete
chiamati relay che
creano un circuito
di nodi
TOR PASSO PASSO
1.! Selezione di un circuito anonimo
2.! Creazione di un circuito anonimo
3.! Costruisce una ÔcipollaÕ a protezione dellÕheader e del
payload
4.! Sposta la ÔcipollaÕ attraverso il circuito anonimo
5.! Distrugge i circuiti anonimi
SELEZIONE DI UN
CIRCUITO ANONIMO
Il client Tor
ottiene una lista
dei nodi Tor da
un directory
server
https://www.archimedea.it
COSTRUZIONE DEL
CIRCUITO
4
Il client Tor seleziona
casualmente un
circuito
3
5
ENCRYPTION OVVERO LA
COSTRUZIONE DELLA ÔCIPOLLAÕ E
LO SPOSTAMENTO
Esempio di cipolla inviata dal client al
nodo 4
Il nodo 4 decrypta il layer
E{4u}
utilizzando la propria chiave privata, per
trovare lÕIP del nodo successivo ed
inviare il resto della cipolla
4
3
5
4
Il client Tor crypta
utilizzando le chiavi
pubbliche di ciascun
nodo in ordine inverso
3
Ogni nodo decrypta
utilizzando la propria
chiave privata per
identificare q chi inviare
sucessivamente il
messaggio
5
LÕultimo nodo
decrypta il
messaggio
originale e lo
invia alla
destinazione
I SERVIZI NASCOSTI
Diversi servizi web sono disponibili allÕinterno della rete TOR
" Sono invisibili perchŽ non • necessario effettuare alcun
passaggio allÕesterno della rete TOR
" Proteggono dallÕintercettazione sia lÕutente che il servizio
ma questa • unÕaltra storia!
RASPBERRYPI E TOR
RASPAPTOR
RASPYPI-ACCESS POINT-TOR
¥!
¥!
¥!
¥!
¥!
RaspberryPI Model B
WiFi Adapter es.RTI8192
SD 4GB
Alimentatore
Cavo Ethernet
RASPAPTOR
RASPBIAN INSTALL
Scaricare lÕimmagine
http://downloads.raspberrypi.org/raspbian_latest
Procedere con lÕinstallazione
http://www.raspberrypi.org/documentation/installation/
installing-images/
RASPAPTOR
INSTALL ACCESS POINT 1
1.! Utilizzare il comando lsusb per controllare se lÕUSB Ethernet adapter •
riconosciuto correttamente dal Raspberry Pi.
2.! Installare il software eseguendo:
sudo apt-get install hostapd udhcpd
3.! Configurare il DHCP server
1.! Editare il file:
sudo nano /etc/dhcp/dhcpd.conf
2.! Cerca le righe
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
3.! E modificale aggiungendo # allÕinizio in questo modo:
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
4. Cerca la riga
#authoritative;
5. e rimuovi il carattere # in modo che diventi
authoritative;
RASPAPTOR
INSTALL ACCESS POINT 2
1.! Posizionarsi alla fine del file ed inserire
subnet 192.168.69.0 netmask 255.255.255.0 {
range 192.168.69.10 192.168.69.50;
option broadcast-address 192.168.69.255;
option routers 192.168.69.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
2.! Salvare il file ed eseguire
sudo nano /etc/default/isc-dhcp-server
3.! Cercare la keyword INTERFACES="" e sostituirla con INTERFACES="wlan0"
4.! Eseguire
1.! sudo ifdown wlan0
2.! sudo nano /etc/network/interfaces per editare il file
RASPAPTOR
INSTALL ACCESS POINT 3
1.! Cercare la linea con auto wlan0 e commentarla insieme a quelle che vi si
riferiscono
2.! Aggiungi dopo la riga
allow hotplug wlan0
Le righe:
iface wlan0 inet static
address 192.168.69.1
netmask 255.255.255.0
3. Assegna un indirizzo IP staticoallÕadattatore WiFi eseguendo
sudo ifconfig wlan0 192.168.69.1
RASPAPTOR
INSTALL ACCESS POINT 4
1. Configuriamo quindi lÕAP editando il file
sudo nano /etc/hostapd/hostapd.conf
2. Inseriamo:
interface=wlan0
driver=rtl871xdrv
Ssid=tor_ap
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=linuxday
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
3. Prestare attenzione alla riga driver= impostando il driver adatto al ns adattatore
usb
RASPAPTOR
INSTALL ACCESS POINT 5
1. Informiamo il Pi della posizione del file di configurazione eseguendo:
sudo nano /etc/default/hostapd
2. Cercare e sostituire la riga:
#DAEMON_CONF="" con DAEMON_CONF="/etc/hostapd/hostapd.confÓ
3. Configuriamo il NAT, editiamo:
sudo nano /etc/sysctl.conf
4. Aggiungere in fondo
net.ipv4.ip_forward=1
5. Eseguire sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forwardÓ
6. Abilitiamo il NAT:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state
RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
7. Eseguire sudo sh -c "iptables-save > /etc/iptables.ipv4.natÓ per eseguirla
automaticamente ad ogni reboot
RASPAPTOR
INSTALL ACCESS POINT 6
1.! Eseguire:
sudo nano /etc/network/interfaces
2.! Aggiungere alla fine
up iptables-restore < /etc/iptables.ipv4.nat
3.! Eseguire:
ps aux | grep -E 'hostapd|udhcpdÕ
Per verificare lÕesecuzione di: hostapd e udhcpd
4.! Riavviare con :
sudo reboot
Installiamo TOR
1.! Eseguiamo sudo apt-get install tor editiamo il file sudo nano /etc/tor/torrc
RASPAPTOR
INSTALL ACCESS POINT 7
1.! Aggiungiamo in testa al file:
Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.69.1
DNSPort 53
DNSListenAddress 192.168.69.1
2.! Ripuliamo le vecchie NAT Tables
sudo iptables -F
sudo iptables -t nat ÐF
3.! Abilitiamo ssh se attivo
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j
REDIRECT --to-ports 22
RASPAPTOR
INSTALL ACCESS POINT 8
1.! Abilitiamo DNS se attivo
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j
REDIRECT --to-ports 53
2.! Tutto il traffico della wlan0 verso tor porta 9040
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT -to-ports 9040
3.! Controllare infine le IPTABLES
sudo iptables -t nat ÐL
4.! Se tutto ok: sudo sh -c "iptables-save > /etc/iptables.ipv4.natÓ
5.! Infine attiviamo i logs:
sudo touch /var/log/tor/notices.log
sudo chown debian-tor /var/log/tor/notices.log
sudo chmod 644 /var/log/tor/notices.log
6.! Avviamo il servizio: sudo service tor start
7.! Facciamo in modo che parta sempre al boot: sudo update-rc.d tor enable
NOTIZIE E SITI
Misurare la rete TOR https://metrics.torproject.org/index.html
Intercettazioni TOR ed HTTPS https://www.eff.org/pages/tor-and-https
Verificare la privacy:
¥! http://analyze.privacy.net/Default.asp
¥! http://ipduh.com/anonymity-check/
¥! https://check.torproject.org/
¥! http://darktor.com/check.cgi
Q&A