Freenet

Da Wikipedia, l'enciclopedia libera.
Freenet
Logo
FProxy index page (Freenet 0.7.5)
FProxy index page (Freenet 0.7.5)
Sviluppatore The Freenet Project[1]
Sistema operativo Multipiattaforma
Linguaggio Java
Genere Peer-to-peer
Licenza GNU General Public License
(Licenza libera)
Sito web freenetproject.org

Freenet è una rete decentralizzata, creata per resistere alla censura, che sfrutta le risorse (banda passante, spazio su disco) dei suoi utenti per permettere la pubblicazione e la fruizione di qualsiasi tipo di informazione. Freenet è stata costruita pensando ad anonimato e sicurezza, non alla velocità di trasmissione. Questa caratteristica la rende poco indicata per lo scambio di file di grosse dimensioni (come filmati e file audio).

Freenet è software libero distribuito con GNU General Public License; essendo scritto in Java può funzionare su Microsoft Windows, GNU/Linux, Mac OS X e su tutti i sistemi operativi dotati di Java Virtual Machine.

Sebbene molte nazioni censurino le comunicazioni per motivi diversi, hanno tutte una caratteristica comune: qualcuno deve decidere cosa tagliare e cosa mantenere, cosa considerare offensivo e cosa no. Freenet è una rete che elimina per chiunque la possibilità di imporre la sua scala di valore sugli altri; in pratica, a nessuno è permesso di decidere cosa sia accettabile. La tolleranza verso le opinioni altrui è fortemente incoraggiata, agli utenti è richiesto di non prestare attenzione ai contenuti che non approvano.

All'interno di Freenet è possibile utilizzare servizi simili al Web e alle BBS.

Storia[modifica | modifica wikitesto]

Il logo di Freenet

Freenet è un'implementazione del sistema descritto da Ian Clarke nel 1999 all'interno del documento Freenet: A Distributed Anonymous Information Storage and Retrieval System. La versione 0.1 uscì nel marzo del 2000.

Conoscere con esattezza l'impatto di Freenet all'interno di nazioni che operano una forte censura sui cittadini è difficile per via del funzionamento interno di Freenet. In Cina il gruppo Freenet-China ha tradotto Freenet in cinese e lo sta distribuendo tramite CD e dischetti.

Per la sua stessa natura, Freenet è da sempre al centro di discussioni e critiche. La maggior parte di queste contesta il fatto che la stessa tecnologia che permette ai suoi utenti di comunicare le proprie idee senza che si possa risalire all'identità di chi le ha pubblicate o di chi le ha lette, può anche essere usata per pubblicare materiale illecito. In ogni caso Freenet è stata progettata per resistere alle deformazioni: i contenuti che non vengono letti per un lungo periodo scadono e scompaiono.

Specifiche tecniche[modifica | modifica wikitesto]

La rete Freenet è progettata per essere resistente; per questo i processi di funzionamento interni lavorano tutti coperti da anonimato e sono decentralizzati su tutta la rete. Il sistema non ha server centrali e non è soggetto a controlli né da privati né da organizzazioni. Nemmeno l'ideatore di Freenet ha alcun controllo sul sistema. La rete è stata progettata in modo tale che le informazioni vengano crittografate e replicate su molti diversi nodi in continuo cambiamento in tutto il mondo. È estremamente difficile per un attaccante capire quali nodi stiano rendendo disponibile un determinato file in un certo momento e gli stessi tenutari dei nodi non sanno mai cosa stanno distribuendo. Questo li mette al sicuro da eventuali reati di detenzione.

Lo scopo di Freenet è immagazzinare documenti e permetterne la lettura attraverso indirizzi univoci (altrimenti detti "chiavi") in modo simile a quanto accade sul web tramite il protocollo HTTP. La rete è costituita da un gran numero di nodi che si scambiano informazioni: ogni nodo comunica con i limitrofi attraverso il protocollo di Freenet; non esiste una divisione tra "client" e "server" su Freenet: tutti i partecipanti agiscono in entrambi i modi, permettendo sia di effettuare richieste di informazioni ad altri nodi sia di inviare documenti in risposta alle richieste altrui.

Il protocollo di Freenet è stato progettato per essere usato su reti topograficamente complesse, in modo simile all'Internet Protocol. Ogni nodo conosce soltanto i nodi che può raggiungere direttamente (il suo "vicinato") e ogni nuovo nodo può essere "il vicino" di un altro, perché non esiste una struttura gerarchica. Ogni documento (o altri messaggi, come le richieste di documenti) viene trasmesso da nodo a nodo fino a raggiungere la destinazione; questi nodi non sanno se stanno trasmettendo verso chi ha effettuato la richiesta o semplicemente verso un altro nodo intermedio, né se il nodo precedente è la sorgente del documento. Tutto questo è stato progettato intenzionalmente, per aumentare il grado di anonimato sia di chi pubblichi sia di chi legga. Ogni nodo mantiene una tabella dove associa i documenti immagazzinati con le chiavi di ricerca, per poter gestire la cache ed una tabella con le informazioni sui nodi limitrofi, per poter gestire il routing.

La richiesta di documenti viene indirizzata sempre verso il nodo che può rispondere più in fretta, per diminuire i ritardi di trasmissione. Invece, l'inserimento di documenti segue un metodo diverso da quello classico: prima di inviare il documento il nodo deve assicurarsi di potergli assegnare una chiave libera, quindi prima cerca una chiave e dopo vi assegna il documento, immettendolo in rete.

Inizialmente, ogni nodo non ha informazioni sulle caratteristiche dei suoi vicini. Questo significa che l'indirizzamento delle richieste sarà in gran parte casuale; dato che nodi diversi hanno diversi tipi di regole casuali, invieranno richieste di chiavi uguali verso nodi diversi. Quindi i dati presenti in Freenet poco dopo la partenza saranno distribuiti in modo casuale. Con il passare del tempo e l'inserimento da parte di uno stesso nodo di più documenti, le informazioni cominceranno ad organizzarsi autonomamente. Il risultato è che la rete si auto organizza all'interno di una struttura distribuita dove i nodi tendono a organizzare i dati a seconda delle chiavi. Con ogni probabilità ogni documento verrà replicato molte volte all'interno della rete, a seconda di quanto viene richiesto.

Freenet usa due tipi di chiavi: le Content Hash Key (CHK) e le Signed Subspace Key (SSK).

Una chiave CHK è un hash SHA-1 del documento: confrontando chiave e documento, il nodo può controllare se la trasmissione è avvenuta correttamente. Questo tipo di chiave viene usato per le trasmissioni di dati e per la loro lettura. Un nodo malevolo che volesse modificare i dati all'interno di un documento verrebbe immediatamente scoperto dal nodo successivo, grazie al controllo della chiave.

Le chiavi SSK sono basate sul concetto di crittografia asimmetrica, in particolare sul sistema Digital Signature Algorithm (DSA). I documenti inseriti con questo tipo di chiave vengono firmati dagli autori, in modo che tutti possano verificare l'integrità del documento che leggono. Le chiavi possono essere usate per creare uno pseudonimo all'interno di Freenet mantenendo l'anonimato, e permettono l'aggiornamento dei documenti solo da parte di chi li ha inseriti. Le chiavi KSK, sottocategoria delle SSK, vengono generate a partire da una frase chiave: i documenti segnati con questo tipo di chiave possono essere ottenuti e decriptati se e solo se si è a conoscenza della frase chiave.

Note[modifica | modifica wikitesto]

  1. ^ Freenet: People, 22 settembre 2008. URL consultato il 22 settembre 2008.

Bibliografia[modifica | modifica wikitesto]

  • Ian Clarke et al. Freenet: A Distributed Anonymous Information Storage and Retrieval System. Edinburgh, University of Edinburgh-Division of Informatics, 1999. (testo in PDF)
  • Paolo De Andreis. La grande svolta di Freenet, Punto Informatico, 2002, 7, 1706. (testo)
  • Marco Calamari. Lo stato delle PET, Punto Informatico, 2006, 11, 2672. (testo)

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • (EN) The Freenet Project - Sito ufficiale del progetto
  • (EN) FreenetWiki
  • Freenet-list - Mailing List italiana
  • (EN) The Freenet Help Site
  • (ZH) China News on Freenet - Sito del gruppo Freenet-China
  • (EN) Steve's Key Index - Lista esterna (sito Web) di chiavi pubbliche Freenet
  • (EN) TFE - Motore di ricerca interno (sito Freenet) consultabile solo da chi ha installato l'applicazione
  • (EN) Frost - Sistema di condivisione file in Freenet comprensivo di chat
  • (EN) FCPtools - Set di utility per GNU/Linux per inserire un intero sito Web in Freenet
  • (EN) FreeWeb - Utility per Microsoft Windows per inserire un intero sito Web in Freenet