martedì 8 maggio 2012

La condivisione anonima di dati con Freenet


Dopo diversi articoli sulla navigazione anonima con Tor, tornerò oggi a parlare di anonimato in Rete, ma in una prospettiva differente: non la navigazione tra siti (in chiaro o nascosti), ma la diretta condivisione di dati. Parlerò quindi di Freenet.
Freenet è un sistema per pubblicare e condividere dati in Rete ed è costituito da due parti: il database vero e proprio, suddiviso tra tutti i computer connessi alla sua rete, e gli strumenti per navigare il database e comunicare coi vari computer connessi. Se state pensando a una rete P2P, simile a quelle che si possono ottenere con eMule o i torrent, allora pensate bene: Freenet funziona più o meno così, ma con alcune differenze.
Come è spiegato nella sua documentazione, Freenet può essere immaginato come un enorme magazzino, distribuito su tutti i computer che appartengono alla sua rete. Quando noi inseriamo un file in questo magazzino, ne riceviamo in cambio una chiave (simile ai link che ci sono restituiti da siti di condivisione, quali MediaFire e il defunto Megaupload), mentre il file è collocato in uno o più computer presenti in rete. Ognuno di questi computer è detto “nodo”, perché costituisce un nodo della grande maglia formata da Freenet. Per recuperare il file, dovremo consegnare a Freenet la chiave e in cambio riceveremo il file corrispondente, scaricandolo dai vari nodi su cui è stato immagazzinato “a tranci”. E fin qui, cambia poco rispetto a una qualsiasi rete P2P.
Per entrare a fare parte di questa rete, dobbiamo installare Freenet sul nostro computer e diventare così un nodo della rete. Con l’installazione, cederemo una frazione del nostro disco fisso a Freenet, che la utilizzerà per immagazzinare i files condivisi da noi e da altri membri della rete, in una cartella “store” creata sul nostro computer; di conseguenza, anche una parte della nostra banda di connessione sarà utilizzata da Freenet, per mantenere la propria rete e gestire gli scambi di files. Il che, di nuovo, è identico a quanto accade con Emule e altri programmi di condivisione: scarichiamo files dai computer altrui e altri utenti scaricano files dal nostro computer. È l’essenza del peer-to-peer, dopotutto.
Una prima differenza di Freenet, rispetto ad altre reti di condivisione, è che noi non abbiamo alcun controllo sui files immagazzinati nel nostro computer. Non sappiamo neppure cosa sia stato immagazzinato sul nostro computer. Tutti i files inseriti in Freenet, infatti, sono prima di tutto frammentati in pezzi più piccoli, per agevolare lo scambio, e poi crittografati: soltanto l’utente con la chiave corrispondente sa quale file stia scaricando, mentre tutto il resto della Rete non ne saprà nulla. Ogni nodo, quindi, conterrà soltanto un cumulo più o meno grande di frammenti anonimi di files, crittografati e indistinguibili: in questo modo, nessuno può sapere quali files si trovino nel proprio computer e nessuno può formalmente essere ritenuto responsabile di ciò che è condiviso attraverso il suo nodo (almeno davanti al tribunale della propria coscienza).
Proprio perché nessuno sa dove si trovi esattamente un determinato file e in quante copie sia presente, non ci sono facili sistemi per rimuovere un file: ciò lo rende resistente alle censure ed è proprio uno degli obiettivi perseguiti dal creatore di Freenet. I files sono conservati in base alla loro popolarità, ossia alla frequenza con cui sono cercati e scaricati: un file popolare continuerà a rimanere attivo e disponibile in molte copie, mentre un file che non interessa più a nessuno, pian piano, diventerà sempre più raro fino a scomparire per “selezione naturale” dalla rete. Se si vuole eliminare un file, dunque, l’unico sistema è sperare che a nessuno interessi più.
Un’altra strategia utilizzata da Freenet per resistere alle censure è quella di essere strutturato come rete decentralizzata e composta da innumerevoli sottoreti più piccole. Ogni nodo conosce soltanto una ristretta cerchia di nodi a esso adiacenti e soltanto con loro si può collegare; questi nodi, a loro volta, conoscono soltanto una ristretta cerchia di altri nodi e si possono collegare soltanto con loro; e così via, fino a coprire l’intera rete. È superfluo specificare che ogni nodo è anonimo. Tutti i nodi, inoltre, hanno lo stesso valore: non esiste distinzione tra client e server, cioè fra un nodo che funge da deposito (server) e un altro che si collega per attingere (client), come avviene in altre reti. Tutti i nodi sono sia server che client; un nodo molto potente, ossia un nodo che cede molta banda di connessione e un grande spazio di deposito sul proprio disco fisso, può talvolta assumere un ruolo da server, ma ciò è dato solo dal maggiore contributo che riesce a dare alla rete.
La struttura composita della rete Freenet ne rende possibile due diversi utilizzi: come Darknet e come Opennet. Il Darknet è una sottorete composta soltanto da nodi in cui avete fiducia e che conoscete, creata manualmente da un utente, mentre l’Opennet è una sottorete composta da nodi qualsiasi e sconosciuti. In pratica, collegandoti in modalità darknet, tu puoi selezionare i tuoi vicini e collegarti solo a utenti che conosci e in cui hai fiducia, ottenendo il massimo livello di sicurezza; collegandoti in modalità opennet, invece, i tuoi vicini sono scelti “a caso”.
All’interno di Freenet, proprio come all'interno della rete Tor, è possibile anche creare veri e propri siti, denominati “freesites”, che funzionano come interfaccia per i dati accumulati nella rete. Per accedervi, può bastare anche un normale browser, purché si sia connessi a Freenet, e un freesite può contenere grossomodo tutto ciò che può trovarsi in un semplice sito web. Il tutto, ovviamente, senza l’uso di un server, come invece avviene per i siti normali. Sotto questo aspetto, un freesite funziona in modo simile a un sito creato con Osiris, in quanto esiste appoggiandosi alla rete P2P e non a una struttura centrale, come invece lo è un server tradizionale.
Ricapitolando, Freenet è una rete per la condivisione peer-to-peer decentralizzata e anonima, formata riunendo una porzione del disco fisso e della banda di connessione di tutti i computer che ne fanno parte. I suoi contenuti sono distribuiti in più copie tra i vari computer, crittografati e anonimi, e possono essere recuperati e scaricati attraverso una apposita chiave, che contraddistingue ogni file. Chiunque può caricare e condividere tutto ciò che gli pare, senza controlli e senza censure: a decidere la sopravvivenza dei contenuti è una sorta di “selezione darwiniana”, che fa sopravvivere e proliferare i contenuti più popolari e lascia pian piano cadere i contenuti che non interessano più.
Libertà di parola e anonimato sono alla base della filosofia di Freenet e dei suoi sviluppatori. Ogni utente ha il diritto di caricare e condividere tutto ciò che vuole, bello o brutto che sia, piacevole o spiacevole che sia, e lo può fare anonimamente. Se state pensando che può essere un ottimo strumento per pedofili, satanisti, terroristi, criminali e qualsiasi altro tipo di babau sociale, avete ragione: può essere utilizzato comodamente anche per diffondere materiali più o meno illegali, immorali e così via. Dopotutto, la libertà di parola è anche libertà di dire che a noi non piacciono, che offendono la nostra morale o che violano la legge: se poniamo limiti a ciò che si può e non si può dire, ricadiamo nella censura, perché ogni limite può essere stiracchiato fino a includere ogni cosa scomoda per noi. O almeno, questa è la filosofia di Freenet: se non la condividere, forse non è lo strumento che fa per voi. Siete avvisati.
Chiudendo con dettagli più tecnici e pratici, Freenet è sviluppato in Java, il che lo rende multipiattaforma: qualunque sia il vostro sistema operativo, finché avete installata una Java Virtual Machine, Freenet potrà funzionare. Nelle versioni precedenti era supportata soltanto la Java Virtual Machine fornita dalla versione ufficiale di Java, ossia la versione Sun Microsystem e poi Oracle, mentre dagli ultimi aggiornamenti è stata introdotta la possibilità di usarlo anche con l'OpenJDK, se preferite. In ogni caso, per usare Freenet dovete aver installato una qualche versione di Java.
Le prime volte che userete Freenet, sarà veloce come un regionale di Trenitalia quando nevica. Col passare dei giorni, poi, diventerà sempre più veloce, man mano che la sua rete personale si forme e il vostro disco fisso entra a far parte dell’ecosistema di Freenet, fino a raggiungere una velocità decente. Resterà sempre più lento di una connessione normale, ma questo vale per qualsiasi sistema analogo, da Tor ai VPN, data la loro natura “indiretta”.
In aggiunta al set di strumenti forniti al momento dell’installazione di Freenet, esistono poi svariati altri “optional” che possono essere aggiunti, per potenziarne o migliorarne l’utilizzo. Il set di base si occupa di connettersi alla rete e fungere da proxy, gestendo il traffico in entrata e in uscita, mentre altri componenti, installabili a parte (se si vuole), aggiungono funzionalità di chat, message board, creazione e gestione di freesites, eccetera. 

1 commento: