Il Progetto Winston Smith - scolleghiamo il Grande Fratello --- Come realizzare un remailer tipo III (20031026) ----- ---------------------------------------------- Copyright (c) 2003 del Progetto Winston Smith. E` garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della GNU General Public License, Versione 2.0, pubblicata dalla Free Software Foundation. ---------------------------------------------- ================================================================ === ATTENZIONE === Come il software stesso non manchera' di ri- cordarvi in continuazione, i remailer di tipo III sono ancora in fase di sviluppo e non possono garantire la stessa immunita' da bachi ed attacchi che hanno per esempio i remailer di tipo II. Devono essere quindi utilizzati per test, ricerca e collabo- razione alle attivita' di sviluppo; *NON* devono invece essere utilizzati nei casi in cui la difesa della privacy sia essen- ziale. ======================================================== ================================================================ Un remailer anonimo e' un programma che riceve posta opportuna- mente crittografata tramite appositi programmi client, la decrit- tografa per la parte di sua competenza, e la inoltra ad un altro remailer od al destinatario finale. La storia dei remailer ha vissuto una evoluzione inizialmente rapida, volta sia ad aumentare il grado di anonimato che i re- mailer offrono, sia a rendere piu' difficili i vari tipi di at- tacchi che ad essi possono essere portati. Si e' quindi passati dai remailer pseudo-anonimi (anon.penet.fi) ai remailer tipo I (cypherpunk) a quelli tipo II (mixmaster). Per alcuni anni non ci sono state evoluzioni significative; i re- mailer mixmaster si sono diffusi ed il software e' stato ritocca- to per aumentarne la sicurezza, ma le caratteristiche di base sono rimaste invariate. Il funzionamento della rete dei remailer (che ha attualmente di- mensioni variabili dalle 30 alle 60 unita'), la maggioranza dei quali di tipo II ma che includono anche il supporto tipo I, ne ha rivelato i limiti. I problemi principali risiedono nella complessita' di gestione della rete, che richiede l'utilizzo di sistemi ausiliari come i pinger, che si poggia su un protollo di trasporto relativamente lento (posta elettronica) e che' e' suscettibile ad attacchi DoS di vario tipo. A questo si aggiunga che per poter realizzare un flusso anonimo bidirezionale di informazioni occorre aggiungere un ulteriore tipo di server, gli pseudonym server, che aumentano ancora la complessita' e quindi l'inaffidabilita' (intesa come perdita di messaggi, non come perdita di privacy) della attuale rete dei re- mailer. Per superare questi problemi e' iniziato lo sviluppo di un nuovo tipo di remailer, i remailer Mixminion (tipo III). Non e' questa la sede adatta per illustrare funzionamento e potenzialita' di questo tipo di remailer; per approfondimenti dopo una lettura propedeutica della documentazione del Progetto sui remailer mixmaster e sui nym, si rimanda all'ottima documen- tazione disponibile sul sito dedicato http://www.mixminion.net. Ci limiteremo percio' ad illustrare le caratteristiche principali del protocollo mixminion che non sono gia' presenti nei remailer mixmaster - la comunicazione tra i remailer avviene direttamente via tcp/ip con l'utilizzo di una porta dedicata, tipicamente la 48099, senza necessita' di usare la posta elettronica come trasporto; - il protocollo prevede un sistema di directory e di statistiche incorporato; - la posta elettronica puo' essere utilizzata come protocollo di "uscita" dalla rete dei remailer - il protocollo include tutte le funzionalita' di anonimizzazione proprie dei remailer mixmaster, e quelle degli pseudonym server, L'implementazione di riferimento (attualmente la 0.0.5.1) e' re- alizzata per sistemi *nix, e comprende, analogamente al software di Mixmaster, nello stesso pacchetto sia le funzionalita' di server che di client. L'installazione richiede una macchina Intel,PowerPC od altro equivalente ad almeno un 486, dotata di GNU/Linux od altre veri- oni di *nix con almeno 32 mb ram (senza X) ed almeno 50 mb di spazio su disco. Il carico della cpu e la banda passante utilizzata per il traffi- co dipendono fortemente da quanto il remailer sar? utilizzato, ma saranno tipicamente basse, essendo la rete in fase sperimentale; con un collegamento ADSL il traffico dovrebbe essere im- percettibile, comunque ben al di sotto dei 5 kb/sec. L'installazione richiede Python 2.0 o superiore, le relative li- brerie bade di sviluppo ed OpenSSL versione 0.9.7beta3 o superi- ore; non e' comunque indispensabile aggiornare le OpenSSL se sono piu' vecchie perche' l'installazione e' in grado di scaricare ed installare una versione adeguata localmente all'utente sotto cui girera' il processo. Creiamo quindi un utente generico mixminion, che sia in grado di mettersi in ascolto sulla porta 48099/tcp (od altra porta a scelta), controlliamo che il nostro eventuale firewall ne perme- tta l'accesso dall'esterno, e scarichiamo il software dal sito Supponiamo di installare la versione 0.0.5.1 scarichiamo il software prompt> wget http://www.mixminion.net/dist/ Mixminion-0.0.5.1.tar.gz scompattiamo il file nella home directory dell'utente mixminion prompt> tar zxvf Mixminion-0.0.5.1.tar.gz verra' creata una directory in cui entreremo prompt> cd Mixminion-0.0.5.1 controlliamo la versione di OpenSSL prompt> openssl version se e' troppo vecchia, scarichiamo e compiliamo una versione lo- cale prompt> make download-openssl prompt> make build-openssl compiliamo il pacchetto prompt> make eseguiamo i test di unita' prompt> make test - infine installiamo (eseguiremo una installazione locale) prompt> make install PREFIX=~ A questo punto client e server sono installati Proviamo ad utilizzare il client, che non necessita di configu- razione. prompt> ~/bin/mixminion send -t il@vostro.indirizzo.di.posta -i filechecontieneilmessaggio il client dovrebbe collegarsi automaticamente al directory serv- er, scaricare e verificare la directory dei remailer tipo III in linea, e poi inviare il messaggio attraverso una catena di 4 re- mailer casuali. Se dopo un paio d'ore non vi e' arrivato niente, provate ad usare solo due remailer prompt> ~/bin/mixminion send -t il@vostro.indirizzo.di.posta -i filechecontieneilmessaggio -H 2 ed inviate piu' messaggi, nel caso la rete non fosse in questo momento molto affidabile. ovviamente potete omettere l'indicazione del file e battere il messaggio dallo standard input, od avere un help dando il comando prompt> ~/bin/mixminion send help Quando un messaggio sara' tornato, dimostrando che tutto fun- ziona, potrete cimentarvi nella configurazione del server. Copiate il template del file di configurazione nella home dell'utente prompt> cp ~/Mixminion-0.0.5.1/etc/mixminiond.conf ~/.mixminiond.conf Editatelo, modificando la riga Nickname: ed aggiungendo (o scommentando e modificando) le righe LogFile: mixminionfiles/log Homedir: mixminionfiles StatsFile: mixminionfiles/stats sostituite il nickname preferito, eliminando anche le parentesi angolate Modificate le permission della home dell'utente mixminion prompt> cd prompt> chmod 0700 . Mixminion determina automaticamente l'IP del vostro host ed apre la porta 48099 per le connessioni dall'esterno. Se aveste prob- lemi di connettivita' piu' complessa, ad esempio perche' avete piu' schede di rete e/o connessioni PPP, specificate esplicita- mente l'IP nell'apposita riga (ricordatevi di scommentarla). Lanciate il server in background prompt> ~/bin/mixminion server-start & Per motivi a me incomprensibili, il software si autoaccusera' di essere obsoleto, e vi chiedera' di aggiornarlo; voi fatelo senza porvi domande (io l'ho gia' segnalato all'autore) prompt> ~/bin/mixminion server-upgrade prompt> ~/bin/mixminion server-start & aggiornate la directory e listatela (vi e' chiaro che dovete es- sere connessi ad Internet ?) prompt> ~/bin/mixminion update-servers prompt> ~/bin/mixminion list-servers Ora dovreste essere in grado di far passare una mail dal vostro server prompt> ~/bin/mixminion send -t il@vostro.indirizzo.di.posta -i filechecontieneilmessaggio -P "ilnicknamedelvostroserver,?" e di vedere le statistiche, per ora quasi zero, del vostro server prompt> ~/bin/mixminion server-stats Se potete lasciare il server running per diversi giorni (e quindi non dovete spegnere il vostro sistema), rendetelo pubblico prompt> ~/bin/mixminion server-stop editate il file di configurazione, e scommentate la riga #Publish: yes rilanciate il server prompt> ~/bin/mixminion server-start & prompt> ~/bin/mixminion server-republish dopo circa 24-48 ore dovreste apparire il vostro server nella pagina delle statistiche del pinger mixminion che trovate su http://www.mixminion.net/ Ricordate che l'atto di pubblicare un remailer in rete equivale anche ad una presa di impegno nei confronti di coloro che usano e sviluppano la rete stessa. Non lo fate se non avete intenzione di contribuire positivamente allo sforzo, tenendo almeno attivo per un periodo il vostro serv- er; tenendolo in piedi per poche ore fareste solo danni. Per finire, con Mixminion si possono creare e gestire dinamica- mente pseudonimi, generando e trasmettendo reply block appositi, che possono anche essere usa-e-getta o scadere dopo un certo tem- po. Per questo rimandiamo alla documentazione reperibile sul sito.