L\’ennesimo punto di vista


MUTE: il P2P veramente anonimo

Posted in Free and Open Source Software,RikyM,Sicurezza & anonimato di RikyM su gennaio 9, 2008

Attenzione: in questo articolo parlo di un programma di condivisione di file e faccio riferimenti alla condivisione di file coperti da copyright. Con ciò non voglio istigare nessuno a commettere azioni simili. Ricordo che le opere la cui condivisione non è permessa dall’autore per legge non si possono condividere. Declino pertanto ogni responsabilità. Vi illustro questo programma solo perchè ritengo interessanti gli sviluppi che potrebbe avere e perchè se voglio condividere delle opere la cui diffusione è lecita, non vedo perchè dovrei render conto di questo al mondo intero. Usate il tutto secondo vostra coscienza.

Introduzione
La condivisione di file tramite reti P2P è al giorno d’oggi una pratica molto diffusa. A volte mi chiedo quanto questo avvenga in modo consapevole da parte degli utenti e soprattutto quanto questi siano consapevoli del fatto che condividere opere coperte da copyright in questo modo è reato. Certo, lo sappiamo tutti: è reato, ci sono delle leggi, c’è anche un’inquietante campagna pubblicitaria in proposito. Lo sappiamo… ma quanti di voi sentono di compiere un reato scaricando una file protetto dai diritti d’autore?

Ci sono stati diversi casi in cui delle persone, gente comune, gente come potrebbe essere il tuo salumiere, come potrebbe essere il tuo vicino di casa, come potresti essere tu, sono stati condannati dalla legge per aver condiviso file illegalmente. L’opinione pubblica non prende mai bene queste notizie, sarà che ci si immedesima un po’ tutti nella povera vittima. Fatto sta che, al posto di agire da deterrente, queste condanne incoraggiano lo sviluppo di tecniche di criptazione, camuffamento e “protezione” sempre più avanzate. In giro per la rete è pieno di liste sicure di server, filtri e pozioni magiche. Tuttavia questi sono il tentativo di rendere anonimo un sistema che non è stato progettato per essere tale e quindi l’efficacia di questi rimedi non è un gran che. Per ottenere risultati veramente apprezzabili bisogna cambiare approccio: è quello che stanno facendo gli sviluppatori di MUTE.


Il problema della privacy
Ok, non scenderò molto nei dettagli nella spiegazione, più che altro perchè non li conosco bene neanche io. Basti sapere che, semplificando molto, ma molto le cose, non me ne abbiano gli esperti, i principali ostacoli da superare per ottenere l’anonimato in rete sono due: l’identificazione di un computer con un unico indirizzo IP e la possibilità di sniffare i dati che escono ed entrano in un computer.

L’IP non è certo stato inventato per schedare tutte le persone che si connettono ad internet, bensì per permettere a tutti di comunicare con tutti. Questo altro non è che un numero identificativo di un computer (nodo) nella rete. L’assegnazione di un determinato IP ad una macchina piuttosto che ad un’altra è definito da regole ben precise ed è sempre possibile risalire ad un computer (e quindi ad una persona) partendo da esso.

I dati che un computer scambia con l’esterno sono facilmente rintracciabili con appositi programmi, chiamati sniffer. Questo può tornare utile per studiare la sicurezza di una macchina, ma non penso ci sia bisogno di dire come possa compromettere il nostro anonimato.

Una possibile soluzione: la darknet
Per ovviare a questi due problemi gli sviluppatori di MUTE hanno creato una darknet, cioè hanno ritagliato una rete all’interno di internet. In questa rete i nodi non sono identificati dall’IP che hanno all’esterno, ma da un altro numero di identificazione ad esso non direttamente conducibile generato in modo casuale alla connessione.

Per difendersi dagli sniffer è stato adottato un sistema di crittografia point-to-point. Questo vuol dire che i dati vengono cifrati con una chiave diversa ad ogni passaggio nodo -> nodo. Chiariamo meglio con un esempio. Il nodo A deve mandare dei dati al nodo C, ma non è direttamente collegato a questo, quindi deve per forza far passare i dati per il nodo B. A cifra i dati e li manda a B, B li decifra, li cifra con una chiave diversa e li manda a C che li decifrerà a sua volta. Così i dati quando passano da un nodo all’altro sono sempre cifrati e un osservatore esterno dovrebbe riuscire a decifrarli tutti in breve tempo per carpire delle informazioni, che in ogni caso non è detto che siano significative.

Appare tuttavia evidente che in questo modo ogni nodo può controllare quali dati passano attraverso sè stesso e può sembrare più sicuro un sistema di cifratura end-to-end, cioè coi dati che vengono cifrati da A, fanno il loro bel percorso senza essere letti da nessuno e vengono decifrati solo da C. Certo, questo è più sicuro, ma MUTE si propone di mantenere l’anonimato e con un sistema end-to-end è facile capire chi è la fonte dei dati e a chi li manda. Col sistema adottato da MUTE ciò è praticamente impossibile.

C’è un pacco da consegnare per… boh!
Abbiamo visto che per un osservatore esterno alla rete è difficile, quasi impossibile, ottenere informazioni utili, ma se l’osservatore fosse all’interno? Gli sviluppatori han pensato anche a questo.

Quando un nodo deve inviare una richiesta di dati (questo avviene per esempio quando si effettua una ricerca o si richiede un file per il download) la invia a tutti i nodi a cui è collegato (solitamente 5). Ognuno di questi nodi terrà conto di chi gli ha inviato la richiesta e la inoltrerà agli altri nodi a cui è connesso. Se qualcuno volesse rispondere alla richiesta di dati basta che invii la risposta al nodo da cui gli è pervenuta, che a sua volta rimanderà i dati a quello attraverso il quale gli è arrivata la richiesta. Vi siete persi? Un esempio renderà tutto più chiaro.

Prendiamo 4 nodi A, B, C e D. Scusate la scarsa fantasia per i nomi. A è connesso a B, che a sua volta è collegato a C, collegato a D.

A -> B -> C -> D

A invia una richiesta di dati che sono in possesso di D (per esempio vuole scaricare un file di D). A invia la richiesta a tutti i nodi che vede, fra cui B. B registra che la richiesta gli arriva da A e la inoltra a tutti, fra cui C. C vede una richiesta proveniente da B e la inoltra a tutti quelli a cui è connesso. Fra questi c’è D che risponde al nodo per cui gli è arrivata la richiesta, cioè C. C ha registrato che la richiesta arrivava da B e gli invia i dati, B li manderà ad A. A sarà contento.

Fermiamoci un attimo a ragionarci su. Ciascun nodo vede arrivare richieste da un altro, ma non può sapere se è effettivamente quel nodo a volere i dati o sta solo rimbalzando una richiesta altrui. C non sa che B sta inoltrando una richiesta di A e B non sa che A è l’origine di tutto. Lo stesso discorso delle richieste si può applicare alle risposte. In questo modo non si può sapere chi richiede i dati e chi li invia.

Se c’è qualcosa di poco chiaro non abbiate paura di avanzare richieste di chiarimenti nel commenti, le rimbalzerò a tutti i nodi e qualcuno risponderà.

Ma qui non c’è nulla!
Spero di esser riuscito a farvi venir voglia di provare questo modo di condividere i file in maniera anonima. Fra poche righe vi segnalerò una guida per installarlo su Linux (per Windows e Mac ci sono degli eseguibili, quindi non servono guide… spero), ma prima vi devo avvertire: il programma è in fase aplha e mancano funzioni ritenute fondamentali nei programmi di condivisione odierni, come la possibilità di scaricare lo stesso file da più fonti o quella di riprendere uno scaricamento dopo averlo interrotto. Inoltre gli sviluppatori han deciso di non perder tempo con la grafica fin che ci son cose più importanti da fare e il risultato non è il massimo dell’estetica. Insomma, potreste rimaner delusi, ma il lavoro è appena iniziato e le premesse perchè esca qualcosa di buono ci son tutte. Vedremo i futuri sviluppi.

Per installare il programma sulla mia Kubuntu 7.10 io ho seguito questa guida. Non so se sia la migliore, ma funziona, ho dovuto solo cambiare due comandi. Dove c’è scritto di usare which wxconfig in realtà bisogna dare il comando which wx-configLa directory e il file che nella guida vengono chiamati MUTE_GUI_filesharing e filesharingMUTE in realtà sono MUTE_GUI_fileSharing e fileSharingMUTE, con la “s” maiuscola.

Note tecniche e link utili
Il programma è multi-piattaforma, sotto licenza Gnu GPL.
Sito ufficiale: http://mute-net.sourceforge.net/
Traduzione in italiano: http://www.p2psicuro.it/mute/mute_italiano.htm
Primi passi con MUTE: http://www.p2psicuro.it/mute/mute_guida.htm

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...


%d blogger hanno fatto clic su Mi Piace per questo: