Deep Web

Capire, navigare ed essere la rete sommersa

created by CTRL-C & CTRL-V from the network

Cos'è il Deep web?

E' l'insieme delle risorse informative del World Wide Web non indicizzate dai motori di ricerca convenzionali.

Perchè non sono indicizzate?

Alcuni dei motivi sono:

  • Non linkate da nessun altra pagina(crawler)
  • Generate dinamicamente, pagine di ritorno dei form o generate per particolari richieste
  • Accessibili solo tramite login
  • Contenuti nascosti intenzionalmente, accessibile solo tramite software(Tor, I2P, FreeNet)

Prenderemo in esame un sottoinsieme del Deep Web cioè quella consultabile e realizzabile tramite TOR.

TOR - The Onion Router

Tor Logo

Tor è un software libero scritto in C che permette di anonimizzare le comunicazioni.

Il nome è un acronimo di "The Onion Router"
(instradazione a cipolla).

Tor dirige il traffico internet attraverso una rete di nodi distribuiti composta di volontari

Circa 6000 nodi

TOR = Privacy++

Chi l'utilizza vede aumentare di molto il suo livello di sicurezza quando naviga:

  • Sorveglianza (insegnanti, genitori, padroni, ex fidanzati, NSA)
  • Profilazione, attraverso l'analisi degli interessi (grandi multinazionali della rete)
  • Localizzazione (censure)

TOR: veramente sicuro?

Se usato in modo consapevole:

Secondo un'informazione segreta trapelata da Snowden(ex militare) e pubblicata su Wikileaks: "la NSA lo ritiene il software migliore per anonimizzarsi".

Secondo studi scientifici lo usano approssimativamente 2.5 milioni di utenti al giorno.

TOR: Multipiattaforma

Tor può essere installato ed utilizzato con tutti i sistemi operativi più conosciuti:

  • GNU Linux (Debian, Ubuntu, BackTrack, Tails, Freepto, etc..)
  • BSD (Free/Open/Net)
  • MacOSX e iOS
  • Android (solo dalla versione 2.3 in poi)
  • Windows
  • Il modo più sicuro e semplice di utilizzarlo è sicuramente su GNU Linux (open source).

    TOR: Il Protocollo, cioè come funziona

    L'instradamento a cipolla è implementato a livello applicativo dello stack ISO/OSI

    Crittazione a strati come una matrioska o una cipolla

    Scelta casuale dei nodi per creare un circuito.

    Precedente e successivo ma non conosce tutto il percorso

    Per efficenza TOR usa per 10 minuti lo stesso circuito
    (E' possibile forzare il cambio di circuito)

    TOR: Tipi di nodi

    Si dividono in Client e Server:

  • Client: Chi usa la rete TOR

  • Nodo iniziale (Guard): All'inizio del circuito(2M in upload)
  • Nodo centrale (Relay): In mezzo
  • Nodo d'uscita (Exit): L'ultimo del circuito !CRITICO!

  • Nodo bridge : Sono nodi non noti. Aggirare le censure costanti e pesanti
  • TOR: Protocollo (1/3)

    Alice ottiene la lista dei nodi da un Directory Server

    Tor Protocollo 1

    TOR: Protocollo (2/3)

    Alice crea un percorso random tra i nodi per raggiungere Bob

    Il percorso in verde è crittato, in rosso no

    Tor Protocollo 2

    TOR: Protocollo (3/3)

    Alice per raggiungere Jane crea un sercondo percorso

    Tor Protocollo 3

    ANONIMATO != CONFIDENZIALITA' != AUTENTICITA'

    Accedere ad una pagina anonimamente non significa accederci segretamente o esser sicuri di esser giunti dove si desiderava.

    Esempio: Se accediamo con TOR ad una pagina dove dobbiamo effettuare il login in HTTP, quando inoltremo le credenziali per accedere all'area riservata, le credenziali saranno leggibili dopo l'exit node e se l'attaccante è nella vostra rete (MITM).

    MITM: Man In The Middle

    MITM

    HTTPS

    HTTPS è un protocollo che integra l'interazione del protocollo HTTP attraverso un meccanismo di crittografia e certificati.

    Questa tecnica aumenta il livello di protezione contro attacchi del tipo MITM.

    Porta 443 (HTTP 80).

    HTTPS: Cosa risolve?

    Se usato correttamente risolve:

  • L'autenticazione del sito visitato
  • La privacy del visitatore
  • L'integrità della comunicazione
  • HTTPS: Altro..

    E' usato praticamente da tutti i siti per permettere
    di fare login sicuri.

    Non basta accettare passivamente i certificati
    occorre verificarli

    Ci sono dei software che facilitano questa
    verifica HttpsEverywhere

    HTTPS e TOR

    Sniffing con la tecnica MITM

    TOR maliziosi possono danneggiare o alterare i contenuti fino ad iniettare malware nella connessione.

    Electronic Frontier Foundation : Schemino sulla esposizione dei propri dati con l'utilizzo di TOR, di HTTP e di TOR e HTTPS.

    TOR: Chi lo usa?

    Viene usato da un gruppo eterogeneo di persone:

  • Attivisti Politici
  • Giornalisti
  • Utenti ordinari (censura)
  • Donne che subiscono violenze/stalking
  • Lavoratori che subiscono mobbing
  • Militari
  • Chi comunamente viene chiamato criminale informatico
  • Criminali? Allora perchè non chiudere TOR?

    Nelle Abuse FAQ del progetto è spiegato in modo chiaro:

    Criminals can already do bad things. Since they're willing to break laws, they already have lots of options available that provide better privacy than Tor provides.... Tor aims to provide protection for ordinary people who want to follow the law. Only criminals have privacy right now, and we need to fix that.... So yes, criminals could in theory use Tor, but they already have better options, and it seems unlikely that taking Tor away from the world will stop them from doing their bad things. At the same time, Tor and other privacy measures can fight identity theft, physical crimes like stalking, and so on.

    ovvero:

    I malintenzionati hanno già diversi strumenti per delinquere e quasi sempre sono strumenti migliori di tor per far rimanere la propria personalità anonima (come ad esempio l'utilizzo di documenti falsi). L'obbiettivo di TOR è quello di provvedere alla protezione dell'anonimicità per tutti gli altri, visto che al momento solo i malintenzionati posseggono questa possibilità. Detto ciò, chiudere TOR non avrà nessun effetto nel fermare i malintenzionati dal commettere brutte cose. Anzi ribaltando la questione, si può dire che TOR aiuta a risolvere una serie di crimini fisici come il furto d'identità, lo stalking, il mobbing, etc..

    TOR: Dove?

    L'Italia è all'ottavo posto per l'utilizzo giornaliero di TOR

    Dove/quanto viene usato

    !! WARNING !!

    Per essere effettivamente anonimi non basta usarlo:

  • Mantenerlo aggiornato all'ultima versione
  • Mantener aggiornati i software con cui si usa
  • Non aprire documenti attraverso TOR (solo offline)
  • Usare le versioni in HTTPS dei siti
  • Non fornire su di se dati nei moduli compilati via web
  • Non installare plugin e usare la versione inglese
  • Non fornisce protezione se il vostro computer o la vostra rete di casa è già compromessa
  • Usare distribuzioni sensibili alla privacy (TAILS, Freepto)
  • PARANOIA++: usare anche una VPN e craccare la rete al vicino
  • TOR: Pratica

    Se solo per navigare allora è preferibile Tor Browser

    Non usate Tor Browser disponibile nelle vostre distribuzioni sono vecchie.

    Scaricatelo dal sito del progetto e verificate che il file sia integro e autentico.

    Installare Tor Browser (1/3)

    Se non avete gnupg installatelo

    sudo apt-get install gnupg2

    Scaricate la versione di TOR Browser più aggiornata

    Scaricate la firma

    Verificate che il software sia autentico ed integro

    Installare Tor Browser (2/3)

    Verificate che il software sia autentico ed integro

    
    gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
    
    gpg: requesting key 93298290 from hkp server pool.sks-keyservers.net
    gpg: key 93298290: public key "Tor Browser Developers (signing key) torbrowser@torproject.org" imported
    gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
    gpg: depth: 0  valid:   5  signed:  37  trust: 0-, 0q, 0n, 0m, 0f, 5u
    gpg: depth: 1  valid:  37  signed:  15  trust: 33-, 0q, 0n, 0m, 4f, 0u
    gpg: depth: 2  valid:   2  signed:   1  trust: 2-, 0q, 0n, 0m, 0f, 0u
    gpg: next trustdb check due at 2015-05-15
    gpg: Total number processed: 1
    gpg:         imported: 1  (RSA: 1)
    					

    Installare Tor Browser (3/3)

    Verificate che il software sia autentico ed integro

    
    gpg --verify /path/tor-browser-linux32-4.5_en-US.tar.xz{.asc*,}
    
    GOOD:
    gpg: Signature made Tue 24 Jan 2015 09:29:09 AM CET using RSA key ID D40814E0
    gpg: Good signature from "Tor Browser Developers (signing key) "
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
    
    BAD:
    gpg: Signature made Mon 27 Apr 2015 02:46:48 PM CEST using RSA key ID D40814E0
    gpg: BAD signature from "Tor Browser Developers (signing key) torbrowser@torproject.org"
    					

    Installare Tor (1/3)

    Per chattare o scaricare le email anonimamente

    Recuperate i repository dal sito del progetto

    Selezionate la distro e copiate i link nel file di conf di apt

    
    sudo vi /etc/apt/source.list
              

    Prendete la chiave del repository per la verifica(automatica)

    
    gpg --keyserver keys.gnupg.net --recv 886DDD89
    gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
              

    Aggiornate la lista dei pacchetti e installateli

    
    sudo apt-get update
    sudo apt-get install tor privoxy
              

    Installare Tor (2/3)

    Mettete la conf di privoxy che trovo qua nel file apposito in /etc/privoxy/config.

    Modificate il file di conf di tor perchè usi privoxy

    
    sudo vi /etc/tor/torrc
    
    Da:
    #SocksPort 9050
    
    a:
    SocksPort 9050
              

    Rilanciate Privoxy e TOR

    
    sudo service privoxy restart
    sudo service tor restart
              

    Installare Tor (3/3)

    Configurate il browser perchè usi TOR e verificate se il vostro Ip è cambiato(2 sessioni)

    HAPPY TOR!

    PAUSA?

    Gli Hidden Service

    Gli "Hidden Service"(HS) sono dei server che offrono varie tipologie di servizi tramite TOR (server web, messaggistica, ecc..) nascondendo così la propria posizione nella rete.

    Gli utenti TOR, tramite un meccanismo chiamato "Rendezvous Point"(RP), possono utilizzare questi servizi nascosti senza che sia possibile conoscere la reciproca identità e posizione nella rete.

    Differenze di servizi

    Tra i servizi classici e i servizi su HS ci sono alcune differenze:

  • Non occorre un indirizzo IP statico
  • Usabile anche dietro un router o un firewall
  • Non è possibile conoscere l'indirizzo IP del server
  • E' possibile visitare HS solo se si utilizza TOR(non sempre vero)
  • RP: Creazione (1/2) - Teoria

    Un HS rende nota la propria esistenza nella rete TOR:

  • Sceglie dei Relay a caso
  • Produce dei circuiti TOR per contattarli
  • Chiede loro di fungere da "Introduction Point"(InP) comunicandogli la propria chiave pubblica(PKpub)
  • Un HS in questo modo è associato ad una PKpub, gli InP conoscono la PKpub di HS(autenticità) ma non conoscono il suo IP(location)

    RP: Creazione (1/2) - Image

    Un HS vuol render nota la propria esistenza:

    The hidden service image1

    RP: Creazione (2/2)

    Un HS rende nota la propria esistenza nella rete TOR:

  • HS costruisce un "Hidden Service Descriptor"(HSd) con la sua PKpub e un sommario su gli InP firmandolo con la sua chiave privata(PKpriv)
  • HS invia, sempre usando un circuito TOR, ad un gruppo di Directory Server (DS)
  • Dopo questo passo l'HS è attivo

    RP: Creazione (2/2) - Image

    Attivazione di un HS:

    The hidden service image2

    HS: Gli URL

    I client(CL) potranno raggiungere l'HS mediante un url:

  • lunghi 16 caratteri
  • teminanti con .onion
  • univoci, in quanto derivati dalla chiave pubblica
  • es: wi7qkxyrdpu5cmvr.onion
  • RP: Connection (1/4)

    Se CL vuole raggiungere un HS deve conosce il suo url(ovviamente)

  • CL stabilisce la connessione con DS(usando la rete TOR) per scaricare lo HSd
  • Se esiste lo HSd per XYZ.onion, CL ora conosce gli InP e PKpub
  • CL crea un ulteriore circuito TOR verso un altro Relay scelto a caso e gli chiede di fungere da "Rendezvous point"(RP) comunicandogli un "One-Time Secret"(OTs)
  • RP: Connection (1/4) - Image

    Un CL cerca di conttare un HS:

    The hidden service image3

    RP: Connection (2/4)

    Ora CL possiede HSd e un RP ed invia un messaggio iniziale di saluto:

  • CL costruisce un "Introduce Message" (IM) con l'indirizzo di RP e OTs cifrato con la PKpub
  • CL invia IM ad un InP chiedendo di mandarlo al HS(usando la rete TOR)
  • RP: Connection (2/4) - Image

    Ciao ciao HS :) :

    The hidden service image4

    RP: Connection (3/4)

    HS riceve e risponde:

  • HS riceve IM e lo decifra scoprendo RP e OTs
  • HS crea il circuito TOR per raggiungere RP
  • HS invia OTs a RP
  • E' importante che HS continui ad utilizzare lo stesso gruppo di nodi di entrata per creare i nuovi circuiti, altrimenti un attaccante potrebbe gestire un proprio nodo e forzare HS a fare un numero arbitrario di nuovi circuiti sperando che il nodo corrotto prima o poi venga scelto come nodo iniziale potendo così scoprire l'IP del HS.

    RP: Connection (3/4) - Image

    HS riceve e risponde:

    The hidden service image5

    RP: Connection (4/4)

    CL e HS possono conversare:

  • RP notifica a CL che la connessione è stata stabilita
  • CL e HS possono stabilire i loro circuiti per arrivare a RP
  • Non si deve riusare il circuito usato fino adesso per far si che nessuno relay possa sembrare il responsabile di un HS, questo è anche il motivo per cui lo RP non conoscerà mai un HS.

    In generale il collegamento tra un CL e HS avviene tra 6 relay: 3 scelti da CL, l'ultimo dei quali è RP, 3 scelti da HS

    RP: Connection (4/4) - Image

    CL e HS possono conversare:

    The hidden service image6

    RP: Avanzato

    Tor design paper(ENG): PDF

    Formato dei messaggi del RP(ENG): TXT

    Configurare un Hidden Service (1/2)

    Dovete avere Tor e Privoxy già configurati e funzionanti

    Scaricate il web server thttpd

    Scompattatelo e lo compilatelo

    
    tar xfvz thttpd-2.26.tar.gz
    cd thttpd-2.26/ && ./configure && make && mkdir hidserv
    					

    Modificate la conf di Tor così che conosca il web server

    
    sudo vi /etc/tor/torrc
    ############### This section is just for location-hidden services ###
    DataDirectory /var/lib/tor
    HiddenServiceDir /var/lib/tor/hidden_service/
    HiddenServicePort 80 127.0.0.1:5222
              

    Configurare un Hidden Service (2/2)

    Ri/Avviate i software coinvolte

    
    sudo service tor restart
    sudo service privoxy restart
    ./thttpd -p 5222 -h localhost -dd hidserv/ -u gine
    					

    !HAPPY HIDDEN SERVICE!

    Sei un HS di circa 20000

    Configurare un Hidden Service (FAQ)

    Tutti i problemi che vi possono sorgere potete risolverli controllando i log dei software coinvolti e cercando gli errori raccolti nei forum online

  • Permessi dei file di tor in /var/lib/tor/hidden_service/
  • Permessi dei file dentro la docroot del web server
  • Se non fate un esperimento fate una copia di backup PKpriv
  • Per compilare thttpd vi servono altri pacchetti, così come per Tor. Di nuovo, cercate in rete, sarete premiati
  • Hidden Service: Warning

    Alcuni sbagli possono compromettere l'anonimato del vostro servizio:

  • Non usate come dir in cui salvare la PKpriv e l'hostname la docroot del server web
  • Usate pure dei web server più agili ma fate attenzioni a quali informazioni espongono
  • Se hai un HS sul tuo computer, lo accenderai e spegnerai, questo da informazioni su di te (ad esempio in che fuso orario vivi)
  • Abbiam parlato di come sia opportuno andare a vedere i siti in https, ma il servizio che abbiamo realizzato non usa https
  • OnionShare

    E' un modo per creare hidden service velocemente per permettere alle persone di scaricare dei file.

    E' stato creato da micah un admin di riseup.net

    E' facilissimo da usare

    Si deve avere TorWeb installato e acceso

    OnionShare: Howto

    Installazione:

    
    sudo add-apt-repository ppa:micahflee/ppa
    sudo apt-get update
    sudo apt-get install onionshare
              

    Utilizzo:

    
    onionshare file1 file2 fileN
              

    Il servizio si spegne appena il file è stato scaricato

    E' possibile mantenerlo acceso con l'opzione --stay-open

    
    onionshare --stay-open file1 file2 fileN
              

    Tor2Web

    E' un software che permette ai normali browser di accedere ai siti sulla rete TOR.

    Uno dei 2 sviluppatore era Aaron Swartz morto suicida l'11 gennaio 2013.

    L'obbiettivo degli sviluppatori era quello di incentivare la pubblicazione anonima attraverso Tor e di rendere questo materiale accessibile alle masse.

    Per usarlo basta sostituire a .onion il suffisso .tor2web.org

    Quindi da: https://xmh57jrzrnw6insl.onion a: https://xmh57jrzrnw6insl.tor2web.org

    Tor2Web: Warning

    Tor2Web protegge solo i pubblicatori e non i lettori.

    I lettori per aumentare il proprio livello di sicurezza devono installare ed usare TOR.

    Spesso non funziona.

    Tor e Smartphone

    Si chiama Orbot e lo potete scaricare dai maggiori market:

  • Google Play
  • App Store
  • Amazon Apps
  • F-Droid
  • F-Droidè un market di solo software opensource

    Orbot

    Orbot è un proxy open source che permette ad altre app che supportano SOCKS di collegarsi per anonimizzarle.

    I programmmi che lo supportano ufficialmente sono:

  • Orweb: Browser per navigare
  • ChatSecure: Per chattare
  • L'app ufficiale di Twitter
  • DuckDuckGo: Motore di ricerca
  • K9 Mail: Per guardar la posta
  • TextSecure: tipo whatsapp
  • Rootando il telefono potete usarlo come trasparent proxy e quindi obbligare tutte le app a passare attraverso TOR.

    Links (1/2)

    Le slide sono piene di classici link per attingere info.

    • 3g2upl4pq6kufc4m.onion - Motore di ricerca classico (no profilazione)
    • xmh57jrzrnw6insl.onion - Motore di ricerca per Hidden Service
    • soupksx6vqh3ydda.onion/links.shtml - Aggregatore
    • jl4m7ubpotnu2yos.onion - Anime, Cartoni e Manga
    • b4te5gvompb65sxx.onion - Sicurezza informatica
    • w363zoq3ylux5rf5.onion - Una sorta di social network

    Links (2/2)

    Le slide sono piene di classici link per attingere info.

    • zw3crggtadila2sg.onion - Torchan (4chan)
    • xfmro77i3lixucja.onion - Dove leggere e/o scaricare libri
    • wi7qkxyrdpu5cmvr.onion - A/I collettivo che offre servizi web sicuri
    • facebookcorewwwi.onion - Ve lo devo spiegare?
    • agorahooawayyfoe.onion - Un black market

    THE END

    Da questo Hidden Service potete scaricare:

    - Libri(anon,aron,silkroad)
    - Video e sottotitoli(che dovremmo aver visto)
    - Slide di oggi