Il Progetto Winston Smith - scolleghiamo il Grande Fratello --- Come tutelare la propria privacy (20020801) --- ---------------------------------------------- Copyright (c) 2002 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. ---------------------------------------------- ==== Indice ------------- Introduzione a livello utilizzatori ai principali aspetti pratici da tutelare nel quotidiano e nella Rete; Include esempi pratici passo-passo di installazione plugin e configurazione delle combinazioni client/piattaforma piu diffuse - cos'è la mail crittografata - cosa sono i remailer ed i nym server - perché è necessario il surfing anonimo - come pubblicare documenti in maniera anonima. - elenco combinazioni client/sistema operativo da trattare Sono già stati realizzati questi capitoli 1) Mail criptata usando Oort Gnus, mailcrypt ed Emacs con gpg e GNU/Linux (fatto) 2) Come utilizzare il client di posta mixmaster in ambiente Linux (fatto) 3) Come utilizzare il client di posta Mutt con Gpg (fatto) 4) Come utilizzare il client di posta Mutt con Mixmaster (fatto) 5) Come utilizzare il client Mixmaster (fatto) 6) Come utilizzare Jack B. Nymble sotto windows per usare posta criptata, remailer e pseudonym server. Prossimamente .... usare outlook 98/2000 con pgp 6.5.8 e windows usare eudora 4/5 con pgp 6.5.8 e windows usare kmail con gpg e GNU/Linux usare evolution con gpg e GNU/Linux 1) Mail criptata usando Oort Gnus, mailcrypt ed Emacs con gpg e GNU/Linux ------------------------------------------------------------------------- Perché questo documento Io penso che abbiamo la possibilità, la necessità e soprattutto il diritto di difendere la riservatezza dei nostri comportamenti in rete come in qualunque altro luogo e situazione In questo documento trovi come ho fatto io nel mio caso particolare. Non ho particolari capacità tecniche, sento solo la necessità di far sapere come ho fatto io per poter aiutare altri che sentano il mio stesso bisogno. Chi sono io Il mio nome è Winston Smith e vivo nell'incubo di George Orwell, che trovi nel romanzo intitolato "1984". Mi puoi raggiungere all'indirizzo Winston Smith, winstonsmith@nym.alias.net Di cosa parleremo In questo testo cercherò di spiegare come usare i programmi sotto elencati per accedere più comodamente e facilmente possibile ai servizi che esistono per proteggere la riservatezza della tua corrispondenza elettronica. Il tutto è stato provato su Linux e quindi a questo tipo di piattaforma si applica. Non so esattamente cosa succedere per altri sistemi operativi (davvero usate ancora altri sistemi operativi?). Emacs Spiegare in poche righe cosa sia Emacs (http://www.emacs.org) è sicuramente un'operazione difficile vista l'enormità di questo programma, sia come funzionalità che come "storia". È stato iniziato da Richard M. Stallman nei primi anni '80 del secolo scorso ma ora viene sviluppato da moltissimi altri sviluppatori. Emacs è un editor di testi, un programma cioè che permette la scrittura e la modifica di file di testo (quei file che non sono né programmi, né altro tipo di dato come suoni, immagini e quant'altro). Ma non è solo questo in quanto dentro Emacs esiste un linguaggio di programmazione interno, Lisp, che permette di estendere le funzionalità originali del programma in modo molto potente, permettendo la realizzazione di molti altri "programmi" che girano "dentro" Emacs. Questi "programmi", nel gergo di Emacs, si chiamano modi e ne esistono di maggiori e di minori. Tralascio la spiegazione di questo e lascio al lettore interessato la consultazione dell'ottimo manuale di Emacs. Purtroppo il suo uso non è la cosa più semplice che si possa trovare ma è ugualmente molto diffuso e soprattutto molto sviluppato e quindi estremamente funzionale. Una volta che avete cominciato ad usarlo lo troverete estremamente comodo per fare moltissime cose, fra loro diverse, unite solo dal fatto di lavorare su file di testo, qualunque essi siano. Lo si trova in qualsiasi distribuzione di Linux, in moltissimi altri Unix e anche per moltissimi altri sistemi operativi, fra cui Windows (compreso NT), MacOS e altri. Essendo distribuito secondo le norme della licenza GPL, è possibile scaricarne i sorgenti e ricompilarlo secondo le proprie necessità. Gnus Gnus è per l'appunto un programma scritto in lisp, cioè un "modo" e serve per poter leggere i newsgroups (inizialmente solo questi) e la posta elettronica, il tutto dentro Emacs. Anche questo lo si trova in qualsiasi distribuzione di Linux, quasi sempre come pacchetto separato da Emacs. La versione che userò per questa mia dissertazione è la Oort v0.04, una versione di sviluppo diffusa solo fra gli sviluppatori; le differenze che interessano in questo contesto di questa versione rispetto a quelle più comuni sono fondamentalmente il supporto per il formato mime dei messaggi e di conseguenza la possibilità di leggere (ma ancora non di spedire) anche i messaggi criptati e spediti usando il formato mime per il pgp. In ogni caso credo che quello che scriverò sia applicabile anche alle versioni più datate. Mailcrypt Mailcrypt rientra nel gruppo di Gnus, cioè dei programmi scritti in lisp da usarsi all'interno di Emacs, solo che in questo caso non si tratta di un programma vero e proprio quanto di un'estensione che permette a tutto Emacs di usare alcuni servizi e programmi esterni, tutti relativi alla tutela della riservatezza della comunicazione via posta elettronica e newsgroup. Con queste caratteristiche si capisce come sia molto legato ai vari programmi di lettura di posta e news che girano con Emacs, anche se non ne è dipendente: infatti può essere usato in qualsiasi modo di Emacs. I servizi a cui è possibile accedere mediante mailcrypt sono: - uso dei programmi di crittografia più diffusi, cioè pgp (http://www.pgp.com) e gpg (http://www.gnupg.org), permettendo così la crittografia della propria posta in uscita e la lettura dei messaggi criptati ricevuti; - uso dei remailer anonimi di tipo I, sia singolarmente sia in catena; - uso dei remailer di tipo mixmaster. La versione che tratterò in questo testo è la 3.5.6 Gpg Gpg, GNU Privacy Guard, (http://www.gnupg.org) è la "risposta" libera (nel senso di software libero) al Pgp, che invece è ormai un programma completamente commerciale, sia come metodo di distribuzione che come metodo di sviluppo. Gpg permette la crittografia dei dati usando il metodo della doppia chiave, allo stesso modo di pgp. Non è scopo di questo testo trattarne l'uso e quindi lo tralascio, ricordando però che una buona conoscenza di questo programma è importantissima. In effetti le differenze fra gpg e pgp in questa trattazione suppongo siano pochissime e quindi spero che ciò che leggerete sia applicabile anche al pgp. Passi pratici File di configurazione Emacs legge (come peraltro molti programmi di questo genere) il file .emacs che si trova nella vostra directory personale (e che perciò potete modificare a vostro piacimento senza scomodare né password di root né tanto meno il vostro eventuale amministratore) e i file contenuti nella directory /etc/emacs (il nome di questi può cambiare a seconda della distribuzione Linux che state usando). Con le cose scritte qua emacs imposta le proprie caratteristiche e carica i programmi indicati all'avvio. Allo stesso modo anche gnus ha il suo file di configurazione che si chiama .gnus (ganzo, eh?) e che si trova nella vostra directory personale. Si capisce perciò come questi siano i luoghi eletti per metterci le righe che servono per usare mailcrypt. Uso della crittografia Partiamo dalla cosa più semplice, cioè le impostazioni da mettere per usare gnupg per criptare la propria posta in uscita e per leggere i messaggi criptati ricevuti. La prima riga serve per dire a mailcrypt quale programma di crittografia intendete usare impostando la variabile "mc-setversion"; di default mailcrypt usa pgp 2.6.3 quindi se volete usare questa versione non importa che impostiate questa variabile. Questo programma ha la buona caratteristica di essere a sorgenti aperti ma ormai viene considerato un pò superato. Noi vogliamo usare gpg e quindi scriveremo nel nostro .gnus (mc-setversion "gpg") Successivamente le cose possono essere eseguite in due modi leggermente differenti: Caricare sempre mailcrypt ad ogni avvio di gnus In questo modo avrete sempre mailcrypt caricato appena avviate gnus. Per questo dovete aggiungere al .gnus la riga (load-library "mailcrypt") Caricare mailcrypt solo quando lo volete Sinceramente non è il sistema che uso io e quindi non giuro che funzioni. In ogni caso dovete aggiungere le righe: (autoload 'mc-install-write-mode "mailcrypt" nil t) (autoload 'mc-install-read-mode "mailcrypt" nil t) A questo punto dite a gnus di usare gnus nei vari buffer con le righe (add-hook 'mail-mode-hook 'mc-install-write-mode) (add-hook 'gnus-summary-mode-hook 'mc-install-read-mode) (add-hook 'message-mode-hook 'mc-install-write-mode) (add-hook 'news-reply-mode-hook 'mc-install-write-mode) Con queste righe (e riavviando gnus nel caso lo abbiate già in esecuzione) potrete usare i seguenti comandi: - cripta il messaggio Digitando "Ctrl / e" cripterete il messaggio che state per spedire. Mailcrypt leggerà i campi To:, Cc: e Bcc: e cripterà il messaggio per gli indirizzi che troverà nel vostro keyring (chiedendovi in ogni caso la conferma di ciò che fate). Nel caso che uno di questi non venga trovato vi verrà riportato un errore. Se invece tutto sarà andato nel verso giusto mc vi chiederà se volete anche firmare il messaggio (vedi più avanti), quindi avrete il messaggio pronto da spedire. - decrifra il messaggio Digitando "Ctrl / d" potrete decifrare il messaggio criptato ricevuto. Mailcrypt leggerà il campo To:, assocerà la giusta chiave fra quelle private che avete, vi chiederà la passphrase per sbloccare la chiave privata e poi lascerà a gpg il compito di decifrare il messaggio. - firma il messaggio Digitando "Ctrl / s" (giurate che ci eravate già arrivati da soli!) potrete firmare il messaggio da spedire. Ancora una volta (non è detto come vedremo più avanti) vi verrà chiesta la passphrase per sbloccare la vostra chiave privata e poi mailcrypt lascerà a gpg il compito di firmare il messaggio, permettendovi poi di spedirlo. - verifica un messaggio firmato Digitando "Ctrl / v" (anche qui la fantasia viene in aiuto) si controlla la conformità di un messaggio ricevuto, sempre nel caso abbiate la chiave pubblica relativa. È possibile anche automatizzare questa cosa, cioè far sì che Mailcrypt controlli automaticamente un messaggio firmato quando gnus lo visualizza ma ora non riesco a trovare come si fa. Altre funzioni relative alla crittografia - prendi le chiavi Mc ha la possibilità di far incorporare a gpg una chiave pubblica sia che questa si trovi in un messaggio (digitando "Ctrl / a"), sia di cercarla in un keyserver: purtroppo questa possibilità si è dimostrata per me troppo complicata e non sono mai riuscito a realizzarla e quindi non so che dirvi. - mandate la vostra chiave pubblica Digitando "Ctrl / x" inviate la vostra chiave pubblica. Occhio perché la chiave viene aggiunta nel punto in cui si trova il cursore al momento che fate partire il comando. - durata della passphrase in memoria Quando comincerete a ricevere molti messaggi criptati scoprirete (e se già lo ricevete potrete convenirne) che digitare più e più volte la propria passphrase è decisamente scomodo, specialmente per persone astute come voi che usano passphrase lunghe e complicate (vero che le usate di questo genere?). Esiste perciò la possibilità di mantenere in memoria la passphrase di modo che venga presa da lì invece di richiedervela; questo sistema è molto comodo ma, come è facilmente comprensibile, presenta notevoli problemi di sicurezza della vostra chiave privata, in quanto questa viene tenuta in un file nella vostra directory personale; è quindi sconsigliabile l'uso di questa opzione su computer di cui non avete una certezza matematica di sicurezza (come ad esempio macchine che abbiano interfacce di rete attive). In ogni caso, se siete certi della sicurezza della vostra macchina potete impostare la variabile "mc-passwd-timeout" ad un certo intervallo di tempo, trascorso il quale senza che abbiate riusato la passphrase, questa viene cancellata. Aggiungendo al vostro .gnus la riga (setq mc-passwd-timeout 600) la passphrase resterà in memoria dieci minuti (come compito a casa capire da dove vengono i dieci minuti). - criptare i messaggi in uscita anche per voi Uno dei problemi che si verificano usando regolarmente la crittografia nella comunicazione elettronica è che i messaggi che voi spedite non sono leggibili neanche da voi; per questa ragione le raccolte di posta spedita diventano praticamente inutili. Mc però può usare la caratteristica del gpg e pgp di criptare contemporaneamente per più destinatari. Inserendo nel .gnus la riga (setq mc-encrypt-for-me t) la posta che invierete verrà criptata usando anche la vostra chiave pubblica e quindi voi avrete la possibilità di leggere ciò che avete scritto. Anche questo presenta dei problemi di sicurezza, nel senso che non sempre può essere utile e conveniente essere in grado di decrittare ciò che si è scritto. Problemi Scarso supporto del mime Ho scritto scarso ma in verità si potrebbe dire nullo! Nell'uso comune (esiste anche un RFC?) i messaggi criptati vengono mandati non inserendo il testo crittato direttamente dentro al corpo del messaggio ma attaccandolo ad un messaggio vuoto come un allegato con le norme stabilite dai codici mime. Purtroppo Mc non ha la possibilità di spedire i messaggi crittati usando questa convenzione ma ha solo la possibilità di leggerli. La cosa crea dei problemi ai vostri corrispondenti perché quasi tutti i nuovi lettori di posta non hanno la capacità di leggere direttamente i messaggi così spediti costringendo così il lettore a salvarli su file e decriptare il messaggio usando direttamente gpg, impedendo ad esempio una corretta citazione. Per fortuna il lavoro su questo campo è assai attivo, non per quanto riguarda Mc però, ma per quanto riguarda direttamente Gnus. Dalla versione in considerazione (che è la prima con un reale supporto del mime) in questo testo è possibile usare direttamente Gnus per spedire messaggi criptati usando la codifica mime, bypassando di fatto Mc. Per fare questo dovete inserire le seguenti righe nel vostro .gnus: (require 'gpg) (setq mml2015-use 'gpg) (setq gpg-temp-directory (expand-file-name "~/.gnupg/tmp")) (setq gpg-command-default-alist (quote ((gpg . "gpg") (gpg-2comp . "gpg")))) Riavviando Gnus avrete la nuova combinazione di tasti Ctrl c Invio c p al che vi verrà chiesta la vostra passphrase e il messaggio verrà spedito come allegato mime, rispettando le norme comuni. Purtroppo questo supporto è ancora abbastanza primitivo (almeno al momento in cui vi scrivo) e quindi alcune cosette non sono ancora presenti, come ad esempio la possibilità di salvare la passphrase per un periodo predefinito di tempo. 2) Come utilizzare il client di posta mixmaster in ambiente Linux ----------------------------------------------------------------------------------- Il client del mixmaster per unix viene distribuito con il server, scaricabile per esempio da ftp://ftp.zedz.net/pub/crypto/remailer/mixmaster la versione corrente nel momento in cui scrivo è contenuta nel file mix-2.9b31.tar.gz E' comunque possibile compilare solo il client se lo si desidera rispondendo "n" alla seconda domanda che viene posta dallo script di installazione "Do you want to set up a remailer? [y]". Se si risponde "n", verrà compilato solo il client che può essere usato per costruire messaggi nel formato mixmaster sotto unix. Per avere una lista dei remailer disponibili sempre aggiornata è utile usare lo script getmix.sh (http://lexx.shinn.net/cmeclax/getmix.html) che scarica chiavi e statistiche dei remailer. È buona regola eseguirlo giornalmente per restare aggiornati. Per utilizzare il client basta lanciarlo e vi troverete davanti un'interfaccia spartana in ncurses, la prima riga vi dice quanti messaggi avete nel pool (potete spedirli premendo il tasto "s") come indicato nel menu. Le altre opzioni sono: "m" per spedire una mail "p" per scrivere in un newsgroup "r" se volete leggere i msg criptati presenti in una mailbox o in un file (meglio gestirsi la lettura della posta con un mailer vero e proprio, mutt funziona benissimo accoppiato con gpg/pgp. "d" per generare messaggi "vuoti" che disturbino le analisi del traffico che entra/esce dalla vostra macchina. "s" come detto per spedire i messaggi presenti nello spool "q" per uscire dal client. se si sceglie di spedire una mail vi verrà chiesto di inserire l'indirizzo del destinatario e il subject, dopodiché vi troverete in una schermata con qualche opzione per modificare i dati appena inseriti, un'opzione "n" per gestirsi un nym, l'opzione "c" per definire una catena di remailers attraverso cui spedire il messaggio (altrimenti verrà instradato attraverso 4 remailer scelti a caso), un'opzione "y" per criptare il msg con la chiave pubblica pgp del destinatario, e infine l'opzione "e" per scrivere il messaggio che vogliamo spedire. nel file mix.cfg ci sono dei paraetri che possono essere modificati, queste sono le impostazioni di default: SENDMAIL /usr/bin/sendmail -t ######################## Client configuration: ########################## REMAIL n #NAME your realname #ADDRESS user@host SENDPOOLTIME 6h CHAIN *,*,*,* NUMCOPIES 1 DISTANCE 2 MINREL 98 RELFINAL 99 MAXLAT 36h le prime sono ovvie, definiscono il vostro mailer e il fatto che il remailer non è attivo (abbiamo compilato solo il client). SENDPOOLTIME definisce ogni quanto il mixmaster deve controllare il pool per spedire eventuali messaggi presenti. CHAIN definisce la catena dei remailer usata di default, gli asterischi indicano una scelta random. NUMCOPIES definisce il numero di copie del essaggio da inviare (default: 1) DISTANCE impostato a 2 significa che se nella stessa catena compare 2 volte lo stesso remailer (aaa), il msg dovrà passare attraverso altri 2 remailer prima di poter tornare al remailer (aaa). MINREL e RELFINAL definiscono che l'affidabilità dei remailer scelti a caso per le catene deve essere almeno pari, rispettivamente, al 98% e al 99%. L'affidabilità è un parametro contenuto nelle statistiche prelevate tramite lo script getmix.sh e consultate dal client. MAXLAT indica che i remailer scelti a caso dovranno avere una latenza massima di 36 ore. I campi NAME e ADDRESS sono utili solo nel caso in cui usiate quei (pochi) remailer che permettono di definire il campo From: del messaggio finale al posto del classico From: Anonymous Se desiderati costruirvi un'identità però a questo punto è meglio usare un nym. 3) Come utilizzare il client di posta Mutt con Gpg ---------------------------------------------------------------- La configurazione necessaria è ridotta al minimo in quanto con mutt vengono distribuiti 3 files con nome gpg.rc, pgp2.rc e pgp6.rc. Se avete usato la versione distribuita come sorgenti (.tar.gz) questi files si trovano nella directory /contrib, e potete copiarli in una cartella del tipo /usr/local/share/mutt/ A questo punto basta scrivere dentro il vostro .muttrc questa riga: source /usr/local/share/mutt/gpg.rc se volete usare GPG, oppure pgp2.rc se usate PGP 2.6.3 o pgp6.rc se usate PGP 6.x Si possono definire alcune variabili nel .muttrc: per user_ID si intende lo user_ID della vostra chiave pgp che potete visualizzare con $ gpg --list-secret-keys è il nome/indirizzo che compare nella parte più a destra dell'output ----------------------------------------------------------- (~)% gpg --list-secret-keys /home/pinco/.gnupg/secring.gpg ------------------------------ sec 1024R/2EC66601 1995-04-19 pinco@pallino.org uid putro sec 1024D/3DA1AECD 2001-05-24 pinco ssb 2048g/12A3A4B3 2001-05-24 ----------------------------------------------------------- In questo caso pinco ha 2 chiavi, la prima è RSA (si riconosce dalla lettera R dopo il numero 1024, mentre la seconda è DH). Al posto dello userID si possono usare anche i KeyID, ossia il numero che identifica la chiave, nel caso soprastante i keyID sono rispettivamente 2EC66601 e 3DA1AECD, così che se si hanno 2 chiavi con gli stessi keyID si può specificare quale usare di default. Quindi, alcuni dei parametri che si possono modificare sono: set pgp_sign_as=user_ID (oppure KeyID) per definire con quale identità firmare i messaggi (utile se si usa più di una chiave) set pgp_autosign per firmare tutti i msg che si scrivono set pgp_ignore_subkeys ignora le subkeys (normalmente non è importante visualizzarle) set pgp_replyencrypt se un msg è criptato la nostra risposta sarà criptata pgp_replysignencrypted se un msg è criptato e firmato la nostra risposta sarà firmata set pgp_replysign se un msg è firmato la nostra risposta sarà firmata set pgp_timeout=300 definisce per quanti secondi la password digitata viene tenuta in memoria (default=300) In genere comunque i settaggi di default funzionano più che bene per le normali esigenze di un utente; questi comandi assumono invece una certa importanza se usate più di una chiave PGP (ossia se avete "personalità multiple), oppure se avete una gestione dei messaggi criptati basata su folder diversi, o utenti diversi. Ad esempio se caio@aaa.net usa una PGP 2.6.3 con chiave RSA mentre voi usate GPG con chiave DH ma avete anche una chiave RSA può essere molto utile un settaggio di questo tipo: send-hook caio@aaa.net 'source /usr/local/doc/mutt/samples/pgp2.rc' send-hook caio@aaa.net 'set pgp_sign_as=2EC66601' in modo che i messaggi che spedite a caio (e solo quelli) siano firmati con la chiave RSA (keyID=2EC66601 nella tabella vista sopra). Oppure se volete impostare la crittazione automatica di tutti i messaggi che spedite a tizio@tizio.org: send-hook tizio@tizio.org 'set pgp_autoencrypt' Quindi si possono definire dei parametri generali, e poi lavorando con i send-hook e folder-hook andare a personalizzare più finemente a seconda delle esigenze. Quanto all'utilizzo vero e proprio, una volta scritto il vostro messaggio e arrivati alla schermata dove si preme "y" per inviare il messaggio, premendo "p" invece vi compare un menu che vi permette di scegliere tra: s) firmare il messaggio e) criptare il messaggio b) firmare e criptare il messaggio f) cancellare la selezione presente, in modo che il messaggio non sia ne firmato ne criptato. (vedi ctlpp_3_figura1.png) Nella figura si vede come si presenta la schermata dopo aver premuto "p", si vede lo "stato" del messaggio: PGP: Clear che indica che non sarà ne criptato ne firmato, a meno che digitiate una delle lettere del menu che compare nell'ultima riga della schermata. Una volta definita la vostra scelta, questa comparirà nella riga PGP presente sotto le intestazioni del messaggio. Se vi accorgete che la scelta è sbagliata potete correggerla premendo di nuovo "p" e poi "f" prima di definire di nuovo una scelta. A questo punto potete premere "y" per inviare il messaggio. Vi verrà chiesto di specificare quale chiave usare se esistono più chiavi e/o sottochiavi, selezionate quella che vi interessa e premete enter. Se non esiste nel vostro keyring pubblico una chiave con user_ID uguale all'indirizzo del destinatario, vi verrà chiesta quale chiave utilizzare chiedendovi di inserire uno userID da ricercare nel keyring, se non ne inserite nessuno e premete enter vi apparirà la lista di tutte le chiavi presenti nel vostro keyring. Se la chiave del destinatario non è presente (neanche con uno user_ID diverso dal suo indirizzo di posta) per quello che credo sia catalogabile come un bug dovrete bloccare mutt con ctrl+c, e il messaggio sarà perso. 4) Come utilizzare il client di posta Mutt con Mixmaster -------------------------------------------------------------------------- Per poter usare il mixmaster mutt deve essere compilato con l'opzione: $ ./configure --with-mixmaster=path_to_mix dove path_to_mix è il path dove si trova il file mix, in genere ~/Mix In questo modo quando state per inviare il msg e vi trovate di fronte all'ultima schermata (la stessa dove premendo "p" potete criptare e firmare il msg con GPG o PGP), premendo "M" potete scegliere quali remailer usare. I remailer si selezionano premento lo spazio, oppure "a" o "i" (append e insert), con "d" si cancella il remailer selezionato, e infine con enter si conclude la selezione e si torna alla schermata principale. (vedi ctlpp_3_figura2.png) Nella figura si vede impostata una catena di 3 remailers: (austria -> dizum -> havenco) Se mutt si lamenta del fatto che non avete impostato la variabile hostname, fatelo inserendo nel file .muttrc set hostname=nome.vostro.computer Ricordatevi di dare il comando ~/Mix/mix -S per spedire i messaggi presenti nel pool quando entrate in rete (ad es. inserendo questa riga in /etc/ppp/ip-up) o inserite il comando nel crontab se il PC ha una connessione permanente. 5) Come utilizzare il client Mixmaster -------------------------------------------------------------------------- Come utilizzare il client mixmaster Il client del mixmaster per unix viene compilato partendo dal pacchetto completo del remailer. Scaricare il file Mix-2.9beta33.tar.gz dal sito www.sourceforge.net/projects/mixmaster nella vostra home directory e decomprimere il pacchetto: tar xzvf mix-2.9b33.tar.gz Eseguire il comando Install, vi chiederà la directory dove installare il client, scelta consigliata ~/Mix Alla domanda successiva: Do you want to set up a remailer? [y] rispondete con "n" per compilare solo il client. A questo punto l'installazione è completa, ma il client deve ancora crearsi le chiavi. Lanciate il client con un qualsiasi comando, ad es. $ ~/Mix/mix -S così che crei le chiavi (operazione che richiede parecchio tempo). Per avere una lista dei remailer disponibili sempre aggiornata è utile usare lo script getmix.sh (http://lexx.shinn.net/cmeclax/getmix.html) che scarica chiavi e statistiche dei remailer. È buona regola eseguirlo regolarmente per restare aggiornati; editate il vostro crontab con $ crontab -e e aggiungete questa riga: */30 * * * * /home/anon/Mix/getmix.sh Io uso anche queste righe che ho aggiunto alla fine dello script getmix.sh per fare in modo che il mixmaster abbia nel suo keyring oltre alle chiavi dei remailer anche tutte le chiavi pubbliche del mio keyring pubblico personale. ---- SCRIPT GETMIX MODIFICATO ----- ... < sezione del getmix originale per il download delle chiavi > ... cd ~/Mix # importo le chiavi dei remailer nel mio keyring personale gpg --import ~/Mix/pubring.asc.orig # esporto il mio keyring in formato ascii, aggiornato con le chiavi dei remailer, # nella directory del mixmaster, in modo che se rispondo a qualcuno il mixmaster # ha la sua chiave nel keyring (se era già nel mio keyring personale). # questo per poter eventualmente criptare il messaggio per il # destinatario. gpg -a --export > ~/Mix/pubring.asc ---- Il client del mixmaster può essere usato da solo, oppure è possibile usarlo anche con mutt, che però deve essere compilato con l'opzione: $ ./configure --with-mixmaster=~/Mix L'utilizzo del client mixmaster integrato in mutt è spiegato in un altro documento. Per utilizzare il client vero e proprio (che offre qualche funzione rispetto all'utilizzo con mutt), basta lanciarlo con: $ ~/Mix/mix e vi troverete davanti un'interfaccia spartana in ncurses, la prima riga vi dice quanti messaggi avete nel pool (potete spedirli premendo il tasto "s") come indicato nel menu. Le altre opzioni sono: "m" per spedire una mail "p" per scrivere in un newsgroup "r" se volete leggere e rispondere in modo anonimo a msg criptati o meno presenti in una mailbox o in un file. "d" per generare messaggi "vuoti" che disturbino le analisi del traffico che entra/esce dalla vostra macchina. "s" come detto per spedire i messaggi presenti nello spool "q" per uscire dal client. se si sceglie di spedire una mail vi verrà chiesto di inserire l'indirizzo del destinatario e il subject, dopodiché vi troverete in una schermata con qualche opzione per modificare i dati appena inseriti, un'opzione "n" per gestirsi un nym, l'opzione "c" per definire una catena di remailers attraverso cui spedire il messaggio (altrimenti verrà instradato attraverso 4 remailer scelti a caso), un'opzione "y" per criptare il msg con la chiave pubblica pgp del destinatario, e infine l'opzione "e" per scrivere il messaggio che vogliamo spedire. è possibile leggere i messaggi contenuti in una mailbox premendo il tasto "r" e indicando il percorso della mailbox, il default è /var/spool/mail/utente. Una volta apparsa la lista dei messaggi è possibile cancellare (tasto d), rispondere (tasto r), forwardare (tasto m) o forwardare in un newsgroup (tasto p) il messaggio selezionato facendolo passare attraverso una catena di remailer. nel file mix.cfg ci sono dei parametri che possono essere modificati, queste sono le impostazioni di default: SENDMAIL /usr/bin/sendmail -t ######################## Client configuration: ########################## REMAIL n #NAME your realname #ADDRESS user@host SENDPOOLTIME 6h CHAIN *,*,*,* NUMCOPIES 1 DISTANCE 2 MINREL 98 RELFINAL 99 MAXLAT 36h le prime sono ovvie, definiscono il vostro mailer e il fatto che il remailer non è attivo (abbiamo compilato solo il client). È meglio modificare la riga relativa al SENDMAIL in: SENDMAIL /usr/bin/sendmail -t -findirizzo@host.esistente.org questo perché altrimenti il remailer a cui indirizzate il messaggio potrebbe rifiutarlo se non modificate questa riga perché si vedrebbe arrivare il messaggio da una macchina che in realtà in rete non esiste se anche il vostro mailer non è settato per definire un indirizzo esistente per il campo "From" impostato sui messaggi in uscita dal vostro PC. SENDPOOLTIME definisce ogni quanto il mixmaster deve controllare il pool per spedire eventuali messaggi presenti se è stato lanciato in daemon mode. CHAIN definisce la catena dei remailer usata di default, gli asterischi indicano una scelta random. NUMCOPIES definisce il numero di copie del essaggio da inviare (default: 1) DISTANCE impostato a 2 significa che se nella stessa catena compare 2 volte lo stesso remailer (es. "remailerX"), il msg dovrà passare attraverso altri 2 remailer prima di poter tornare al remailer "remailerX". MINREL e RELFINAL definiscono che l'affidabilità dei remailer scelti a caso per le catene deve essere almeno pari, rispettivamente, al 98% e al 99%. L'affidabilità è un parametro contenuto nelle statistiche consultate dal client. MAXLAT indica che i remailer scelti a caso dovranno avere una latenza massima di 36 ore. I campi NAME e ADDRESS sono utili solo nel caso in cui usiate quei (pochi) remailer che permettono di definire il campo From: del messaggio finale al posto del classico From: Anonymous. Se desiderate costruirvi un'identità però a questo punto è meglio usare un nym. Come gestirsi un nym con il mixmaster client: Come prima cosa dovete avere le statistiche aggiornate nella directory del client, quindi i file: mlist.txt mlist2 rlist.txt rlist2 type2.lst e pubring.mix devono essere presenti. Poi bisogna crearsi il nym: non appena lanciato il client, si vede che la seconda voce è n)ym, quindi premendo il tasto "n" si accede ad una schermata per la creazione/gestione dei nym (vi verrà chiesta una password che sarà utilizzata per proteggere con crittazione convenzionale il file che contiene le chiavi segrete usate per i nyms). Premere "c" per creare un nuovo nym Vi viene chiesto di inserire un alias, quindi facciamo un ipotetico "smith" Poi il nome delle pseudonym, quindi di nuovo "smith" a questo punto vi appare la lista dei nym server attivi su cui è possibile creare il nym, sceglietene uno premendo la lettera corrispondente e poi . È comunque possibile in seguito creare lo stesso nym su un altro nymserver ripetendo la procedura. Vi appare un'altra schermata, come questa in figura: nella prima riga vi viene chiesto che tipo di reply block volete: se un messaggio mail, un messaggio che finisce sempre in un newsgroup (es. alt.anonymous) o traffico di copertura. Tralasciando l'ultimo caso, in genere si opta per farsi mandare tutti i messaggi su un newsgroup o in una casella di posta. La procedura è la stessa, l'unica differenza è che per i messaggi spediti sui newsgroup è possibile specificare un subject in modo da rendere più semplice individuare quali sono i propri messaggi in mezzo a tutti gli altri. Comunque, prendiamo in considerazione il caso più comune di reply block classico, con tutti i messaggi che finiscono in una casella e-mail. Questa è la scelta già selezionata, per cui premendo "m" vi ritrovate nella schermata in cui si sceglie il reply block. Ci sono 4 sezioni, nella prima (chiamata semplicemente "Nym") ci sono i dati che avete già scelto, ossia il nome del nym e il server. Nella seconda (Nym creation), premendo "c" vi appare la lista dei remailer attraverso cui potete scegliere la catena di remailer usata dal messaggio per arrivare al nym server, i remailer si selezionano premendo la lettera corrispondente che appare alla sinistra del nome. È buona regola utilizzare remailer con alte percentuali di affidabilità (i primi della lista), e bisogna stare attenti a non selezionare come ultimo remailer della catena un remailer middleman, nel caso comunque compare la scritta "INTERMEDIATE", che significa che dopo questo remailer ce ne deve essere un altro, oppure bisogna cambiare remailer (backspace per cancellare la scelta precedente). Una volta scelta la catena si può definire quante copie del messaggio spedire, in genere 1 è sufficiente, comunque spedirne 2 non causa problemi, al limite il server una la cancella perché la riconosce come doppione. Poi abbiamo la terza sezione (Configuration): si possono definire parametri generali non critici come la possibilità di ricevere un avviso ogni qual volta spediamo un messaggio etc. etc., per una spiegazione più approfindita leggetevi la traduzione in italiano della guida del nym server su http://www.ecn.org/crypto/crypto/ E infine la quarta e più importante sezione, quella del reply block vero e proprio. Innanzitutto è possibile specificare più di un reply block, questo per usare magari 2 diverse catene di remailer in modo che se una non funzioni comunque non rischiamo di perdere i messaggi. Se funzionano entrambe riceveremo 2 copie dei messaggi ma il client le riconosce e ce ne mostrerà solo una. Io consiglio di usare 2 catene di remailer che non abbiano remailers in comune. Quindi iniziamo premendo "r" e digitando "2" Dopodiche premendo "1" per impostare la prima catena, ci ritroviamo nella schermata precedente, in cui dobbiamo stabilire la destinazione dei messaggi premendo "d" e digitando il proprio indirizzo e-mail), e la catena (chain) digitando "c" e selezionando qualche remailer (3 è un buon numero). Poi premiamo di nuovo per ritrovarci nella schermata di configurazione della figura 2, a questo punto si vedrà la catena del reply block n.1 impostata, e premendo "2" potremo definire anche la seconda come abbiamo fatto in precedenza. Tornando alla schermata della configurazione premendo vedremo qualcosa di simile a questo, con le varie catene impostate: A questo punto premendo vi viene chiesta una password per creare le chiavi necessarie,e viene preparato il messaggio da spedire al server. (vedrete che nella schermata iniziale apparirà il numero "1" di fianco all'indicatore dei messaggi presenti nel pool). A questo punto basta che premete "s" per spedire il messaggio se siete collegati in rete o se avete un smtp in funzione sulla vostra macchina che mette in coda il messaggio, oppure aspettate di entrare in rete e poi digitate: ~/Mix/mix -S per spedire i messaggi presenti nel pool. La richiesta è partita, e nel giro di poche ore dovrebbe arrivarvi un messaggio di conferma. Il client del mixmaster è "in attesa" di questo messaggio, quindi quando vi arriva un messaggio criptato che voi non riuscite a decriptare, dovete darlo in pasto al client. Per fare ciò avviate il client, e poi selezionate "r" per leggere i messaggi presenti in una mailbox. Dategli il percorso giusto della mailbox dove sono contenuti i messaggi criptati, e lui li decritterà rendendoli disponibili per la lettura. Se avete impostato reply block multipli e vi arrivano 2 copie dei messaggi, una sarà eliminata automaticamente. Una volta usciti dal client del mixmaster, se riaprite la vostra mailbox con il vostro solito programma di posta ci troverete dentro i messaggi decrittati. Se invece vi arrivano messaggi a cui volete rispondere usando un vostro nym come mittente potete seguire la procedura descritta prima, ossia rispondere al messaggio avendo cura di specificare il nym con cui volete rispondere, basta che selezionate con il tasto "n" un nym, altrimenti di default è impostata la modalità "anonymous" che vi permette di rispondere usando semplicemente i remailer e non il nym. 6) Come utilizzare Jack B. Nymble sotto windows per usare posta criptata, remailer e pseudonym server. -------------------------------------------------------------------------- Premetto che scrivere questo pezzo windowscentrico mi e' pesato, ma come e' stato detto in passato da persona di dubbia fede politica ma indubbia intelligenza " ... bisogna turarsi il naso ..... " Perche' usare JBN ? A mio parere bisogna usare JBN in questi casi. 1) So/posso solo utilizzare l'ambiente Windows oppure 2) Voglio il meglio come client di posta anonima Se rientrate in almeno uno di questi casi, JBN fa per voi; vi consiglio comunque di pianificare prima possibile il vostro passaggio ad un sistema operativo libero (il sistema operativo e' il cuore del computer, ed anche se il vostro cuore non e' infiammato dall'argomento, un sistema operativo libero e' di gran lunga piu' facile da gestire in sicurezza) Se continuate la lettura, vuol dire che rientrate nella categoria di chi vuole sicurezza e privacy in ambiente windows; vi avverto quindi che complichero' la procedura di installazione, includendovi alcuni passi che servono per rendere windows un ambiente un po' piu' sicuro; per esempio nel caso che qualcuno voglia rubare e passare al setaccio il vostro computer, particolarmente se portatile. Tenete presente che, per installare JBN in questo modo, dovrete installare prima 4 programmi a) ramdisk (per esempio ramdrive.sys) b) disco criptato (per esempio bestcrypt) c) pgp (per esempio la versione 6.5.8ckt) d) mixmaster (versione dos) non tremate, non e' poi cosi difficile; in realta' la parte complessa e' quella della configurazione finale. Dunque, cominciamo proprio da questi passi preliminari; dobbiamo creare due unita' disco particolari in cui porre i dati che JBN,come qualunque altro programma, scrive su disco, e che potrebbero essere recuperati da Carol (ricordate Alice, Bob e Carol ? No ? Comunque basti sapere che Carol e' un'impicciona). Dobbiamo creare una' unita' ram in cui porre i dati temporanei, e che viene cancellata in maniera irreversibile quando il computer viene spento. Per far questo, supponendo che abbiate win9x, dovete cercare il file ramdrive.sys sul vostro hard disk, ed eventualmente non fosse presente recuperarlo da un'altra macchina o da un disco dos (roba vecchia, eh ?). Inserite poi nel file config.sys questa riga devicehigh=C:\Windows\ramdrive.sys /E 4096 stando attenti alla posizione del file (in questo caso supponiamo c:\windows) ed alla dimensione del disco che vogliamo creare (in questo caso 4 Mb, valore adatto alla maggior parte dei casi). Fate poi ripartire il sistema; dopo l'ultimo hard disk e prima del cd-rom vedrete un'unita' a disco nuova, rappresentata da un piccolo chip, che nel mio caso e' assegnato all'unita' logica E: . Nel seguito indicheremo con E: il vostro disco RAM; se la vostra unita' logica fosse diversa, sostituitela ad E:. Occorre adesso creare una seconda unita' logica fittizia, cioe' un disco criptato in cui memorizzare sia le vostre chiavi che la posta riservata, e magari anche altro materiale sensibile. Ci sono diversi programmi che permettono di fare questo, di solito creando un file su disco fisso, e montandolo poi come un disco virtuale della dimensione del file stesso. Non vi espongo tutti i motivi alla base della scelta che vi propongo, che e' ragionevole e tecnicamente valida, ma comunque personale; il principale e' che Bestcrypt esiste anche per Linux e quinsi potete utilizzare il vostro disco criptato anche con questo sistema operativo. Scaricate il programma Bestcrypt versione 6.05 (le successive scadono, ma vanno bene) per esempio dal sito http://www.jetico.com o dal sito del Progetto Winston Smith (sezione software) https://freenet.firenze.linux.it:4433/MSK@SSK@4YqXGejNt1zwoCXo23fCYeVH~lwQAgE/20020601000000-pws// ed installatelo come un normale programma windows. Create un container (disco criptato) di almeno 32 Mb (ma di piu', senza esagerare, non guasta); state attenti a scegliere una password mnemonica, perche' se la dimenticate, niente e nessuno potra' recuperare i vostri dati. Montate e formattate il disco criptato su una unita' logica a vostra scelta. Nel seguito indicheremo con G: il vostro disco criptato; se la vostra unita' logica fosse diversa, sostituitela ad G:. Prima di installare JBN, dovete avere una versione di Pgp installata; potete usare sia la versione "storica" 2.6.3i da linea comandi, quella ufficiale per windows 6.5.8, o quella "ufficiosa" 6.5.8ckt; le trovate http://www.pgpi.org/products/pgp/versions/freeware/dos/2.6.3i/ http://www.pgpi.org/products/pgp/versions/freeware/win32/6.5.8/ http://www.ecn.org/crypto/soft/pgp658ckt07.zip o sul sito del Progetto Winston Smith. Quindi, se necessario, installatelo e generate la vostra coppia di chiavi; se il keyring lo mettete in una directory del disco G: e' ovviamente meglio. Scaricate ed installate il client mixmaster per dos; lo trovate ad esempio sul sito http://www.ecn.org/crypto/soft/mixmaste.zip Basta scompattarlo in una directory senza ulteriori installazioni; vi consiglio la directory G:\mix sul vostro disco criptato. Inserite poi nel vostro file autoexec.bat le righe SET MIXPATH=G:\mix SET TZ=MET-1DST e riavviate il pc. Scaricate il programma di installazione di Jack B. Nymble v 2.14 dal sito www.potato.com, o dal sito del Progetto Winston Smith e lanciatelo. Dovete effettuare l'installazione sul disco criptato G:, mentre tutti gli altri default vanno bene. Lanciate JBN; indicate premendo l'apposito pulsante, quale versione di Pgp avete installato (2.6.3i o 6.5.8ckt), indicate poi in quale directory e' installato mixmaster, dite che non siete collegati alla rete; il sistema vi ricordera' di aggiornare i dati dei remailer. Menu window, global configuration, sostituire la prima voce G:\tmp con E:\tmp; in questo modo i vostri file temporanei saranno irrecuperabili ed il programma sara' piu' veloce. Uscite dal programma e collegatevi alla rete. Non e' questa la sede per descrivere il funzionamento di una catena di remailer; basti dire che i remailer possono nascere e scomparire rapidamente, e che JBN necessita, per consentirvi di inviare con successo la vostra posta anonima, della chiavi pubbliche e delle statistiche di funzionamento aggiornate. Rilanciate quindi JBN e, dal menu Tools eseguite nell'ordine "refresh stats", "get Cpunks keys" e "get mix keys"; e' possibile che questi comandi falliscano perche' i siti indicati nei file di inizializzazione di JBN possono essere giu' o non piu' disponibili. Nel caso vi trovaste in questa situazione, riporto qui siti che utilizzo adesso. Non cancellate righe nelle finestre di configurazione; se ci sono gia', meglio cambiarne l'ordine con taglia ed incolla. Nel menu windows/stats config/cypherpunks la prima riga nelle tre finestre deve essere http://anon.efga.org/Remailers/rlist.html http://anon.efga.org/Remailers/TypeIChains http://anon.efga.org/Remailers/pubring.asc nel menu windows/stats config/mixmaster la prima riga nelle due finestre deve essere http://anon.efga.org/Remailers/mlist http://anon.efga.org/Remailers/type2.list ; http://anon.efga.org/Remailers/pubring.mix A questo punto rilanciando il programma dovreste poter scaricare chiavi e statistiche dei remailer. Dovete adesso inserire almeno un profilo di invio (SMTP) ed uno di ricezione (POP3); potete farlo rispettivamente nel menu windows/send profiles e windows/retrieval profiles. Il profilo di ricezione e' necessario solo se volete utilizzare JBN anche per ricevere la posta; ricordatevi di attivare i profili che create spuntando l'apposita casella. JBN usa, per creare e gestire le mail un suo approccio personale, diverso dai normali programmi di mail, ma abbastanza semplice. Innanzitutto la finestra iniziale visualizza una o due directory e la coda di uscita; la finestra della posta, per motivi a me misteriosi, si apre solo battenfo il tasto F5. Nella directory "books" scegliete il file di template che volete usare, ad esempio "anon mail" - scrivete l'indirizzo a cui inviare, il soggetto ed il testo; questo template seleziona gia' per default due remailer a caso. - selezionate "save as" e dategli un nome - premete il tasto verify, poi queue e fate scorrere le varie fasi di critattura con next - uscite dalla finestra del messaggio e tornate nella principale - cliccate sulla linguetta queue - cliccate sul messaggio - cliccate sul tasto send (quando siete connessi, ovviamente) voila' la vostra prima mail anonima e' partita ! L'avevate indirizzata a voi stessi, vero ? Senno' come fate a sapere se e quando arriva ? Ricordate che una mail spedita attraverso una catena di remailer puo' impiegare da qualche ora fino anche ad uno-due giorni, ed in qualche caso puo' anche perdersi. Consiglio vivamente la lettura dell'ottima ed abbondante documentazione di JBN. Questo anche perche' ora dovete imparare a creare ed utilizzare gli pseudonimi (per gli amici "nym"), che sono la cosa migliore e piu' sofisticata di JBN. Io per ora vi dico, come nel finale di "Conan il barbaro" ".... ma questa ... questa e' un'altra storia".