domenica 10 novembre 2013

I2P e la comunicazione anonima in Rete

I2P è una rete anonima che offre un semplice layer capace di identificare applicazioni sensibili che possono essere usate per comunicare in sicurezza. Tutti i dati sono "avvolti" da diversi strati di crittografia e la rete è egualmente distribuita e dinamica, senza l'ausilio di gruppi esterni.

Molte applicazioni sono utilizzabili tramite I2P, le attuali applicazioni sono account email, peer-to-peer, Server IRC e molto altro.




Il progetto di I2P è nato nel 2003 per sostenere gli sforzi di coloro che cercano di costruire una società più libera, offrendo loro un anonimo e sicuro sistema di comunicazione, incensurabile  I2P è un sforzo di sviluppatori che hanno ottenuto un sistema che produce una bassa latenza, completamente distribuito, autonomo, scalabile, anonimo, resiliente. L'obiettivo è di operare con successo in ambienti ostili, anche quando una organizzazione con sostanziali risorse sia finanziare e/o politiche, attacca. Tutti gli aspetti della rete sono open source e disponibili senza costi, ciò dovrebbe garantire sia chi lo utilizza che il software stesso, così viene concessa la possibilità ad altri di contribuire e migliorare, il progetto, così da rendere inefficaci i tentativi di soffocare la libertà di parola.

L'anonimato non è un booleano - non cerca di creare qualcosa di "perfettamente anonimo", ma stiamo lavorando per rendere gli attacchi molto più dispendiosi e difficili da attuare. I2P è un insieme di reti a bassa latenza, e usando questo sistema ci sono dei limiti offerti da tale sistema, ma applicazioni come, Syndie, I2P mail, e I2PSnark aiutano a migliorare sia funzionalità che protezione al tempo stesso.

I2P funziona direzionando il traffico verso altri peer, come potete vedere nella figura. 





Tutto il traffico è crittografato end-to-end.  La rete è basata su un protocollo di comunicazione simile all’Ip, ma che prevede ben quattro strati di cifratura per l’invio di ogni messaggio. Tutti i computer collegati vengono chiamati router, mentre il percorso che un messaggio compie per andare da una sorgente a una destinazione viene chiamato tunnel. Per decidere quale percorso far compiere ad ogni messaggio la rete I2P sfrutta un database distribuito. Tutte le comunicazioni che avvengono sulla rete I2P sono cifrate. 
I2P non dispone di un pannello di configurazione per Windows. Tutti i parametri possono essere gestiti  configurati tramite una semplice interfaccia Web. Il servizio Susimail permette di inviare e-mail in modo anonimo sfruttando un server Pop3 situato all’interno della rete I2P.



I2P è un misto fra TOR e Freenet. Tor è un programma per navigare anonimi nella rete tradizionale e per creare siti anonimi all'interno della rete Tor; Freenet, invece, è principalmente uno strumento per creare un database diviso tra tutti i computer che lo utilizzano, in cui poter caricare e da cui poter scaricare files criptati in modo anonimo. Entrambi rispondono a esigenze particolari e possiedono punti di forza e debolezze: Tor è orientato soprattutto alla navigazione, mentre Freenet è orientato alla condivisione di materiale. In questo quadro, I2P assume una posizione “mista”, in quanto si occupa di trasferire messaggi da un punto all'altro della rete costituita da tutti i nodi I2P, in forma anonima e criptata. Messaggi è da intendersi nel senso più ampio possibile: dalle email ai files in puro stile eMule. Se volete visitare anonimamente siti nella Rete normale, Tor è il più indicato; per la condivisione di files all'interno di una rete chiusa, Freenet è il più indicato; per fare un po’ di tutto all'interno di una rete chiusa, infine, I2P è il programma che vi può servire.
Premessa generale: I2P non è ancora in formato definitivo e il suo sviluppo e tuttora in corso. A detta dei suoi sviluppatori, però, ha già raggiunto uno stadio di stabilità sufficiente, da poter essere utilizzato “sul campo”. In altri termini, usatelo pure, ma non vi consiglierei di affidargli ancora la vostra vita. I2P ha buone premesse, ma il suo rodaggio non è ancora concluso, se preferite metterla in questi termini.
Il nome I2P è una sigla per Invisible Internet Project e già il nome dovrebbe fornirvi buone indicazioni su quale sia il suo scopo: costruire una rete sotterranea, invisibile e anonima, a cui si può accedere solo attraverso l’uso di I2P. Non un progetto molto originale, verrebbe da dire, dato che ne abbiamo già viste altre, e in effetti non voleva neppure essere originale: l’obiettivo è invece costruire una rete utilizzando un sistema diverso da quelle già esistenti e, a detta degli sviluppatori, più sicura e resistente.
La rete anonima creata da I2P è formata da vari nodi, che sono i computer su cui I2P è in funzione. Chiunque utilizzi I2P è automaticamente un nodo della rete: a differenza di quanto avviene nella rete Tor, non esiste la possibilità di utilizzarlo solo come client, ossia come ospite che sfrutta la rete, senza offrire in cambio qualcosa. Sotto questo aspetto, l’approccio è lo stesso utilizzato da Freenet. Il compito di I2P è di costruire e mantenere la rete formata dai vari nodi, gestendo il passaggio delle comunicazioni; su questa infrastruttura è possibile utilizzare diversi strumenti sviluppati su misura, a seconda delle proprie necessità: navigazione con qualsiasi browser, chat, condivisione di files con programmi quali iMule (versione di eMule per I2P), invio di email, creazione e mantenimento di blog e siti, eccetera. Il tutto in un ambiente anonimo e criptato, al di sotto della rete normale.



Ogni nodo della rete I2P è definito router e si collega ad altri router attraverso tunnel di comunicazione, che esistono in due forme ben distinte: i tunnel di uscita e i tunnel di entrata. Come è facile da intuire, i tunnel di uscita sono utilizzati per spedire messaggi dal nostro router verso un altro router, mentre i tunnel di entrata sono utilizzati per ricevere messaggi da altri router. Per spedire un messaggio a un altro componente della rete, il nostro router I2P crea un tunnel di uscita, mentre il destinatario del messaggio aprirà un corrispondente tunnel di entrata. I messaggi che viaggiano lungo questi tunnel sono crittografati a vari livelli: un primo livello di crittografia, accessibile ai router attraverso cui il messaggio passa, contiene le informazioni relative al router verso cui deve essere inoltrato, ma niente di più, mentre il contenuto del messaggio inviato è crittografato dall'invio alla ricezione, senza che passaggi intermedi lo possano toccare.
Per quanto riguarda la visibilità della rete costruita da I2P, un osservatore esterno potrà vedere che state utilizzando I2P per le vostre comunicazioni, ma non vedrà quali strumenti state utilizzando all'interno di I2P, né con quali router state comunicando. Un particolare che differenzia I2P da Tor, ad esempio, è proprio il modo in cui gestiscono i contatti col “mondo esterno: Tor dispone di nodi di uscita, cioè di punti in cui la rete interna si collega alla Rete sterna (il normale internet), e questi nodi sono parte integrante della rete Tor; I2P, invece, dispone sì di nodi di uscita dalla sua rete, ma li usa come accessori e di solito hanno vita breve. I contatti tra la rete I2P e il mondo esterno sono dunque rari e sporadici, mentre il grosso delle comunicazioni avviene all'interno  riducendo così i fattori di rischio ed esposizione dovuti a un eventuale controllo dei nodi di uscita. Riduce anche le possibilità di collegarsi a siti normali usando I2P, ma questa è l’altra faccia della medaglia.
Come Tor ha i suoi siti .onion, anche I2P ha siti realizzati all'interno della sua rete e accessibili soltanto da essa: sono gli eepsites, o siti eep (dalla pronuncia di I2P). non c’è molta differenza rispetto ai cugini onion, soprattutto nella brevità intrinseca della loro vita: i siti nelle reti anonime vanno e vengono di continuo. Una differenza, invece, si trova nella loro fruizione: a differenza della rete Tor, I2P permette di utilizzare facilmente (o quasi) motori di ricerca interno, per trovare i siti creati dentro la rete I2P.
Come Tor e Freenet, infine, anche I2P può essere usato per distribuire contenuti discutibili. Anzi, diciamo pure che è usato con una certa frequenza anche per questo: in misura minore rispetto ai fratelli più famosi e diffusi, ma naturalmente ogni strumento può essere utilizzato sia bene, sia male. La filosofia di I2P, in ogni caso, è di permettere ogni tipo di comunicazione, a dispetto di qualsiasi tipo di censura: offre la possibilità di parlare liberamente, sta poi ai singoli parlanti decidere cosa dire e come usare questa libertà. In ogni caso, rispetto a Freenet non utilizza i computer per immagazzinare materiali e sotto questo aspetto funziona piuttosto come Tor: di conseguenza, non dovete preoccuparvi che nel vostro disco fisso siano stipati in forma crittografata e anonima video pedopornografici o i piani di un attentato terroristico, se è questo a spaventarvi.


Applicazioni software I2P

Essendo I2P un livello di rete anonima, essa è progettata per consentire ad altri programmi di comunicare in modo anonimo (livello di applicazione) così che sono stati realizzati diversi software disponibili per I2P e altri in via di sviluppo.

I2PTunnel
I2PTunnel è un'applicazione incorporata in I2P che permette arbitrariamente alle applicazioni TCP/IP di comunicare su I2P attraverso la realizzazione di un "tunnel", il quale si ha accesso attraverso una determinata porta su localhost.

SAM
SAM è un protocollo che consente ad una applicazione client, scritta in qualsiasi linguaggio, di comunicare in I2P, utilizzando una interfaccia basata su socket per il router I2P.

Bittorrent
Qualsiasi client Bittorrent può sfruttare la rete I2P per le sue funzionalità, semplicemente configurando il client e il browser e scaricando il file .torrent. I2P ha una applicazione incorporata chiamata I2PSnark.
Per Azureus, un famoso client Bittorrent, è stato realizzato un plugin per l'accesso alla rete I2P. Questo plugin è ancora in una fase iniziale di sviluppo, tuttavia è già abbastanza stabile.

iMule
iMule è un client multipiattaforma della famiglia *Mule, adattato al network I2P e modellato sul client aMule. Questo client non utilizza più la rete ed2k, bensì solamente la Kad in ambito I2P. Non, quindi, "la Kad di eMule", come spesso si tende ad affermare erroneamente.

I2Phex
I2Phex è la versione modificata di Phex che sfrutta la rete Gnutella, adattata per funzionare con la rete I2P. Progetto ancora in via di sviluppo.


I2P terminologia

Gli utenti I2P vedranno visualizzati i seguenti termini nella homepage di I2P e nella loro Router Console di I2P.
Eepsite
Gli Eepsite sono dei siti web ospitati nella rete anonima I2P. Generalmente i domini terminano con .i2p come ugha.i2p o orion.i2p. EepProxy può individuare questi siti attraverso l'identificatore di chiavi crittografiche memorizzate nel hosts.txt che si trova all'interno del programma I2P. Normalmente, I2P è necessario per accedere a questi eepsites.

EepProxy
L'EepProxy è un programma che gestisce tutte le comunicazioni tra il browser e qualsiasi eepsite. Funziona come un proxy server che può essere utilizzato da qualsiasi browser web.

Peers
Sono altri utenti o applicazioni che utilizzando I2P e che sono collegati a voi all'interno della rete. Ogni macchina all'interno della rete condivide l'instradamento e la trasmissione di pacchetti cifrati.

IRC
#i2p-help in i2p (anonimo) e #i2p-help in internet (non anonimo)

Ultima cosa. I2P è sviluppato in Java e questo lo rende comodamente multi piattaforma: potete dunque installarlo e utilizzarlo con qualsiasi sistema operativo, purché abbiate una Java Virtual Machine.




Per provare il "brivido" dell'I2P: http://www.i2p2.de/