[e-privacy] tutorial mixminion
George Orwell
nobody at mixmaster.it
Tue Aug 3 07:37:14 CEST 2004
putro scriveva:
> traduzione finita, tranne una frase che ho lasciato in inglese (e'
> verso la meta' del testo):
Alcune note:
- ho messo gli accenti;
- in italiano la parola "crittata" non esiste, direi che è meglio
sostituirla con "cifrata";
- qui è senza accento;
- riga 85 sostituire "altra gente" con "altre persone";
- riga 129 la frase
"Connessioni dirette significa anche che l'accumulo di messaggi
interesserà solo la rete Mixmaster e non sovraccaricherà la coda di
posta dell'SMTP."
Si voleva forse indicare "la rete Mixminion"?
- riga 137 sostituire "coi sistemi" con "ai sistemi";
- riga 218 sa senza accento;
- riga 240 sostituire "sia digitato" con "venga digitato";
- riga 284 sostituire "non stanno funzionando" con "non stiano
funzionando";
- riga 331 sostituire "basta che" con "è sufficiente che";
- riga 354 sostituire "che molta gente ritiene aumenti" con "molti
(sviluppatori?) ritengono che in questo modo aumenti"
- riga 395 sostituire "che gli dirà a quale server dovrà spedire il
messaggio" con "contenente l'indicazione del server al quale dovrà
essere spedito il messaggio";
- riga 559 la frase "Se l'utente non conosce l'identità a cui un
messaggio è indirizzato, poi è possibile essere ingannati
rispondendo usando lo pseudonimo sbagliato." non mi è chiara (e non
ho sottomano adesso il testo originale);
- riga 585 sostituire "Comunque, non più di circa 15 server possono
essere specificati." con "Comunque non possono essere usati più di
15 server all'incirca";
- riga 586 sostituire "La ragione di ciò è che" con "La ragione di ciò
sta nel fatto che";
- riga 592 sostituire "erano" con "venivano";
- riga 596 sostituire "Questo nasconde l'informazione su quando i
messaggi sono stati preparati" con "Questo nasconde l'informazione
sui tempi di preparazione dei messaggi".
Altre correzioni possibili ma adesso ho sonno.
Allego la versione da me rivista.
Getting Started with Mixminion
Peter Hendrickson <pdh at wiredyne.com>
22 giugno 2004
Licenza: Questo tutorial è public domain.
0. Introduzione
1. Avvisi Importanti
2. Primi comandi
3. Due parole per chi usa da tempo la rete mixmaster
4. La Server List
5. Direct Forward Messages
6. Ricevere messaggi anonimamente
7. La coda
8. Altre sorgenti di informazioni
0. Introduzione
Mixminion (http://mixminion.net) è un'applicazione per comunicare in
modo sicuro tramite messaggi in formato elettronico.
Il suo scopo è di impedire a un avversario la possibilità di
determinare chi sta comunicando con chi e quindi di fornire un
servizio di comunicazione anonima.
Questo viene fatto mandando messaggi attraverso una serie di server.
I messaggi che entrano ed escono da ogni server sono cifrati. Ogni
server tiene un pool di messaggi. Quando un messaggio arriva viene
messo nel pool. I messaggi in uscita dal pool sono difficilmente
correlabili con quelli in ingresso. Questo processo è chiamato
"mixing".
Ogni server riduce l'abilità dell'avversario di determinare l'origine
di un messaggio. La concatenazione dei server riduce ulteriormente
questa abilità e limita i danni causati da server compromessi.
La catena di server viene scelta dal software mixminion che gira sulla
macchina dell'utente.
Una discussione completa del design del Mixminion con riferimenti etc.
si trova qui: [1].
Questo tutorial ha lo scopo di introdurre l'utente all'utilizzo di
Mixminion. Non è una documentazione completa e non vengono descritte
tutte le funzioni.
Per usare questo tutorial, il lettore avrà bisogno di una macchina
che supporta connessioni SSL verso l'esterno, con il Mixminion
installato e un indirizzo di posta elettronica per ricevere i messaggi
di prova.
È richiesta anche una minima confidenza con l'interfaccia a linea di
comando.
1. Avvisi Importanti
Non mettete informazioni sensibili nel messaggi di prova. Alcuni
esempi usano un numero di server ridotto per aumentare le performance.
Questo rende più facile testare il Mixminion, a discapito di una
diminuzione della sicurezza.
Al momento della scrittura di questo documento, il Mixminion è ancora
in uno stadio alpha (versione 0.0.7). Nuovi bug vengono trovati e il
codice viene attivamente modificato ed esteso. Il codice in versione
alpha contiene funzioni utili per il debugging che però rendono più
debole la sicurezza del sistema.
Alcuni server registrano il loro traffico. Di default, il codice alpha
utilizza un modo di mischiare i messaggi nel pool che è utile per lo
sviluppo ma non è sicuro come l'algoritmo di mixing che sarà usato
quando il codice sarà rilasciato in una versione stabile.
Il lettore è quindi avvisato: non fate troppo affidamento sulla
sicurezza del sistema a questo stadio dello sviluppo.
Il futuro del Mixminion è luminoso. Il design è il culmine di più
di più di due decenni di ricerca nel campo della sicurezza. Ci sono
ancora molte questioni teoriche aperte, ma è certo che il Mixminion
sarà più sicuro di tutti i vecchi sistemi dello stesso tipo.
Tenendo questo avviso in mente, l'utente è incoraggiato a testare il
sistema Mixminion. Altre persone sono necessarie per dare una scossa ai
bugs che restano da risolvere.
Una base utenti ampia aumenta la sicurezza del sistema, perciò è
auspicabile costruire una attiva comunità Mixminion.
2. Primi comandi
Il programma Mixminion si chiama "mixminion". Ha molti sottocomandi.
Per esempio, questo serve per controllare la versione:
> $ mixminion version
> Mixminion version 0.0.7
> Copyright 2002-2004 Nick Mathewson. See LICENSE for licensing information.
> NOTE: This software is for testing only. The user set is too small
> to be anonymous, and the code is too alpha to be reliable.
La cosa successiva da fare è di lanciare gli unit tests:
> $ mixminion unittests
>
.....................................................................................................................[Generating DH parameters (not caching)... done.].....
> ----------------------------------------------------------------------
> Ran 100 tests in 30.107s
>
> OK
>
> Waiting for shred processes to finish.
Non dovrebbero esserci errori se il Mixminion è stato installato
correttamente.
3. Due parole per chi usa da tempo la rete mixmaster
Altri sistemi di mixing usano l'SMTP standard come canale per
distribuire i messaggi ai server. Mixminion invece usa delle
connessioni SSL tra server e per accettare i messaggi dagli utenti.
Le connessioni SSL permettono una semplice autenticazione del server
destinatario, forniscono una perfetta segretezza della trasmissione
e impediscono ad un ascoltatore di identificare i messaggi che
vengono trasferiti.
Le connessioni dirette danno ai server la possibilità di gestire le
proprie code, piuttosto che essere dipendenti da un sistema di posta
basato su SMTP che potrebbe non essere sotto il controllo
dell'operatore del mixminion.
Connessioni dirette significa anche che l'accumulo di messaggi
interesserà solo la rete Mixmaster e non sovraccaricherà la coda
di posta dell'SMTP.
Gli utenti di lungo corso della rete mixmaster possono anche essere
abituati ad un certo livello di inaffidabilità. Al momento,
Mixminion non distribuisce perfettamente tutti i messaggi.
Comunque, l'affidabilità è aumentata drammaticamente in confronto
ai sistemi del passato.
4. La Server List
Mixminion deve scaricare una lista dei server disponibili ogni giorno.
È importante che tutti gli utenti usino la stessa lista.
Mixminion usa la lista dei server per decidere come instradare i
messaggi.
Se un avversario è in grado di indurre alcuni utenti ad usa una lista
e altri utenti ad usarne una diversa, è possibile indebolire la
sicurezza del sistema.
Mixminion scarica la lista dei server. Viene scaricata la prima
volta che viene utilizzato un comando che la richiede.
Il comando "list-servers" mostra la lista dei server conosciuti:
> $ mixminion list-servers
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 08:05:23.001 -0800 [INFO] Downloading directory from http://mixminion.net/directory/Directory.gz
> May 07 08:05:24.790 -0800 [INFO] Validating directory
> aarg:smtp relay (ok)
> almery:mbox relay (ok)
> anize:mbox relay (ok)
> antani:smtp relay (ok)
> cassandra:relay (not recommended)
> chicago:relay (ok)
> cside:mbox relay (ok)
> frell:mbox smtp relay frag (ok)
> frell2:relay (ok)
> futureworlds:relay (ok)
> grove:mbox relay frag (ok)
> gurski:mbox relay frag (ok)
> hermes:mbox relay frag (not recommended)
> Kisangani:relay (ok)
> lakshmi:relay (ok)
> liberty:smtp relay frag (not recommended)
> mercurio:mbox smtp relay (ok)
> metacolo:smtp relay (ok)
> moria:relay (ok)
> nixon:mbox relay (ok)
> noisebox:relay (ok)
> nowwhat:mbox relay (ok)
> peertech:relay (ok)
> POboxes:relay (ok)
> psycocat:mbox relay (ok)
> rot26:relay (ok)
> rufus:relay (ok)
> sgroi:relay (ok)
> snorky:relay (ok)
> squirrel:mbox smtp relay frag (ok)
> stalker:relay (not recommended)
> sushi:mbox relay frag (ok)
> Tonga:smtp relay (ok)
> totoro1:mbox smtp relay (ok)
> totoro2:smtp relay (ok)
> typhaon:smtp relay (ok)
Ogni linea mostra il nome di un server, seguito dalle funzioni che
quel server supporta. Per esempio, la funzione "relay" significa
che quel server accetterà messaggi e li manderà ad altri server.
La funzione "smtp" significa che il server spedirà i messaggi usando
il tradizionale protocollo SMTP. L'ultimo campo di ogni linea indica
se il server potrebbe essere usato oppure no.
Il comando "list-servers" può mostrare più campi di quelli di
default visti prima. I comandi del Mixminion possono essere
modificati con ulteriori argomenti.
Per esempio, questo comando mostrerà l'host name, l'indirizzo email
per i contatti, e la versione del software usata da ogni server:
> $ mixminion list-servers -F hostname,contact,software
Un certo numero di altre funzioni può essere mostrato e sono
descritte nella man page del mixminion(1)[2] nella sezione
"Server Features". Il lettore è incoraggiato a verificare la lista
di queste funzioni.
5. Direct Forward Messages
Un "direct forward message" è un messaggio che viene spedito
attraverso il sistema Mixminion a un indirizzo di posta elettronica.
Il mittente sa dove andrà a finire il messaggio.
Il ricevente non saprà da dove viene.
Questo tutorial usa l'indirizzo di prova "foo at bar.wiredyne.com".
Il lettore dovrebbe sostituirlo con un suo indirizzo.
Il comando "send" spedisce un messaggio. L'argomento "-t" specifica
dove deve essere indirizzato. Mixminion sceglie una serie di server
usati per trasmettere il messaggio.
Esempio:
> $ mixminion send -t foo at bar.wiredyne.com
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter your message now. Type Ctrl-D when you are done.
> The world is all that is the case.
> May 07 08:15:32.093 -0800 [INFO] Generating payload(s)...
> May 07 08:15:32.278 -0800 [INFO] Selected path is rufus,nixon,grove,nowwhat:POboxes,moria,metacolo
> May 07 08:15:32.705 -0800 [INFO] Packet queued
> May 07 08:15:32.711 -0800 [INFO] Connecting...
> May 07 08:15:40.063 -0800 [INFO] ... 1 sent
Di default, Mixminion si aspetta che un messaggio venga digitato
direttamente e terminato con "Ctrl-D". In questo esempio, il
messaggio era "The world is all that is the case."
Questa è la lista di server scelta per trasmettere il messaggio:
rufus,nixon,grove,nowwhat:POboxes,moria,metacolo
I due punti mostrano dove si trova lo "swap point" (punto di scambio)
Gli swap points sono una funzione fondamentale per il design del
sistema. Permettono agli utenti non solo di mandare messaggi
in modo sicuro e anonimamente, ma anche di riceverli.
Dentro i pacchetti cifrati del Mixminion ci sono due campi di
intestazioni che vengono invertiti una volta durante il transito
attraverso la rete del Mixminion. Le ragioni dietro questo aspetto
sono complesse e spiegate nel dettaglio in [1].
Il messaggio che arriva dovrebbe assomigliare a questo:
> To: foo at bar.wiredyne.com
> From: incognita at mixminion.metacolo.com
> Subject: Type III Anonymous Message (relayed by metacolo)
> X-Anonymous: yes
> Message-Id: <20040507162653.79BAD218 at mixminion.metacolo.com>
> Date: Fri, 7 May 2004 16:26:53 +0000 (UTC)
>
> -----BEGIN TYPE III ANONYMOUS MESSAGE-----
> Message-type: plaintext
>
> The world is all that is the case.
> -----END TYPE III ANONYMOUS MESSAGE-----
I messaggi possono anche essere inviati tramite una pipe allo standard input:
> echo "The world is all that is the case." | mixminion send -t foo at bar.wiredyne.com
Mixminion può anche mandare un messaggio contenuto in un file
usando l'opzione "-i". Se il messaggio è contenuto nel file
"world", può essere spedito cosi':
> $ mixminion send -t foo at bar.wiredyne.com -i world
Provate a spedire diversi messaggi di prova.
Al momento della scrittura di questo documento, ci vuole anche più
di un'ora per i messaggi spediti con la lunghezza della catena di
default per essere recapitati.
Se il messaggio non viene visto immediatamente non significa che il
sistema o il software Mixminion non stiano funzionando.
(Since mix networks rely on other traffic to mix a message, they have
have the property that performance actually improves with greater
usage up to a point. In the future, performance will improve as
message traffic increases.)
L'opzione "-P" può essere usata per modificare il percorso dei
server.
Per esempio, "-P '*10'" sceglierà un percorso di dieci server scelti
casualmente.
(noi vogliamo un percorso più breve per avere tempi di risposta
più rapidi e una migliore affidabilità)
quindi provate a spedire qualche messaggio con una catena di 2 server.
(2 è il numero minimo che può essere scelto.)
> $ mixminion send -t foo at bar.wiredyne.com -i world -P '*2'
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 08:27:58.829 -0800 [INFO] Generating payload(s)...
> May 07 08:27:58.910 -0800 [INFO] Selected path is metacolo:Tonga
> May 07 08:27:59.096 -0800 [INFO] Packet queued
> May 07 08:27:59.102 -0800 [INFO] Connecting...
> May 07 08:28:02.846 -0800 [INFO] ... 1 sent
Provate a spedire qualche messaggio di prova in questo modo.
Al momento, i messaggi spediti attraverso due server impiegheranno
circa 20 minuti per arrivare a destinazione, con una certa
variabilità comunque.
Per divertimento, provate a mandare qualche messaggio attraverso
una catena molto lunga. (Il messaggio è stato cambiato così da
poter riconoscere i messaggi spediti attraverso la catena lunga)
> $ echo "Long path." | mixminion send -t foo at bar.wiredyne.com -P '*28'
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter your message now. Type Ctrl-D when you are done.
> May 07 08:35:32.976 -0800 [INFO] Generating payload(s)...
> May 07 08:35:33.429 -0800 [INFO] Selected path is
mercurio,lakshmi,typhaon,rufus,frell,Kisangani,frell,grove,aarg,POboxes,psycocat,frell2,lakshmi,totoro2:nixon,rufus,typhaon,psycocat,metacolo,sushi,cside,frell,metacolo,aarg,rufus,cside,frell2,frell
> May 07 08:35:34.456 -0800 [INFO] Packet queued
> May 07 08:35:34.461 -0800 [INFO] Connecting...
> May 07 08:35:43.515 -0800 [INFO] ... 1 sent
Al momento, i messaggi spediti attraverso una catena così lunga
impiegheranno almeno un giorno per arrivare. Probabilmente vedrete
alcuni messaggi scomparire perché è sufficiente che uno dei server della
catena non funzioni per far sparire il messaggio in un buco nero.
Speditevi un tot di questi messaggi per capire quanto spesso
questo succede con catene lunghe.
Gli argomenti della catena possono essere usati per scegliere
un percorso specifico attraverso la rete Mixmaster, per scegliere
un persorso specifico con l'aggiunta di server inseriti
casualmente nella catena, o per scegliere tot server in modo
casuale.
La man page del mixminion(1)[2] documenta queste funzioni.
Le catene possono essere lunghe fino a 15 passaggi prima e dopo lo
swap point. Un "direct forward message" può arrivare fino a 30
passaggi. Ogni server si prende una quantità di spazio diversa
per gli header, cosicché la quantità di spazio richiesta dipende
dal tipo di catena scelta. Lo spazio degli header è limitato e non
tutte le catene con lo stesso numero di passaggi possono essere
usate.
È anche possibile mandare "messaggi" senza nessun contenuto o senza
destinazione. Lo scopo di questo è di creare traffico fittizio, molti
(sviluppatori?) ritengono che in questo modo aumenti la sicurezza del
sistema.
Intuitivamente, sembrerebbe che questo sia vero, ma non è stato
stabilito in modo certo.
Un messaggio fittizio viene mandato specificando come destinazione
"drop". Il messaggio sarà "scaricato" dall'ultimo server della
catena. Provate a spedire qualche messaggio fittizio:
> $ mixminion send -t drop -P '*28'
Alcuni messaggi sono troppo grossi per stare dentro un singolo
messaggio Mixminion. Quando questo capita, il messaggio viene
automaticamente spezzettato in frammenti che sono spediti
separatamente attraverso la rete Mixminion.
L'ultimo server della catena riassembla automaticamente i
frammenti e recapita il messaggio completo:
> $ mixminion send -t foo at bar.wiredyne.com -i bigfile
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 08:52:05.583 -0800 [INFO] Generating payload(s)...
> May 07 08:52:05.736 -0800 [INFO] Selected path is lakshmi:squirrel
> May 07 08:52:05.795 -0800 [INFO] Selected path is cside,grove:cside,squirrel
> May 07 08:52:05.883 -0800 [INFO] Selected path is almery,anize,mixiwoarsnet:typhaon,sushi,squirrel
> May 07 08:52:06.492 -0800 [INFO] Packet queued
> May 07 08:52:06.496 -0800 [INFO] Connecting...
> May 07 08:52:11.369 -0800 [INFO] ... 1 sent
> May 07 08:52:11.530 -0800 [INFO] Packet queued
> May 07 08:52:11.534 -0800 [INFO] Connecting...
> May 07 08:52:16.957 -0800 [INFO] ... 1 sent
> May 07 08:52:17.249 -0800 [INFO] Packet queued
> May 07 08:52:17.260 -0800 [INFO] Connecting...
> May 07 08:52:22.648 -0800 [INFO] ... 1 sent
Al momento, il recapito dei frammenti è abbastanza inaffidabile.
6. Ricevere Messaggi Anonimamente.
Mixminion supporta anche la ricezione di messaggi anonimi.
Questo viene realizzato usando dei reply block a uso singolo,
"Single Use Reply Blocks" o "SURBs". Un SURB è un blocco di
informazioni cifrato che può essere decifrato dal primo server
specificato. Quel server troverà li dentro un altro blocco cifrato
contenente l'indicazione del server al quale dovrà essere spedito il
messaggio.
L'ultimo blocco dirà all'ultimo server a chi recapitare il
messaggio.
(Vedere [2] per una descrizione completa del meccanismo..)
I SURBs possono essere usati solo una volta. Questa è una misura
di sicurezza. Altrimenti, un SURB potrebbe essere usato
ripetutamente per rispedire messaggi al mittente.
Questo darebbe a un avversari degli indizi importanti.
Inoltre i SURBs scadono. Dopo che un SURB è scaduto non dovrebbe
essere possibile riutilizzarlo.
Di default, i surbs scadono in una settimana.
Per permettere a qualcuno di mandarci messaggi, è necessario
generare un SURB e spedirglielo.
In questo momento, il mixminion è necessario per rispondere.
In futuro, ci saranno dei gateway SMTP per la rete mixminion che
accetteranno SURBs e messaggi da chiunque.
Questo è un esempio di SURB:
> -----BEGIN TYPE III REPLY BLOCK-----
> Version: 0.2
>
> U1VSQgABQKAXgOUzyhuwvWgSPS7yY3U2/fM2JwegyWpwqBT1NSt7ZfBOjBioRrZU
> t7e16lYxJVRHrZMtSmtpwPPbRECIukskQ9XqAjsQtNE7NC68rXhPiabnVjmOgUIs
> 2OOe29+io/Rkks5jqVHFEDaMaUzEZb8uxMS0KNKdhj6UF8K943pLp9UtOdM5tzM+
>
> ...
>
> p7HZAlW8U6ohkpDzJcaZghXLvL+hDMN8ff1ZknWstzVxck59cnr6pTkIMh21+RFB
> e2dJBTExRacpyiClJDh/YEmiJK5Apad9W1X1iE03AlTz9itEHjybnaxUABoAAg7f
> 7uUGsA1JRWy14Om6IonVknJgu+PJsdpHuI0uU97wnVKrXBO+Tbcrrw==
> -----END TYPE III REPLY BLOCK-----
Il comando "generate-surb" crea un nuovo SURB. (Se non ne avete
mai generato uno, vi sarà chiesto di inserire una passphrase che
sarà usata per il keyring. Se avete già creato la passphrase per
il keyring, vi verrà chiesto di inserirla).
Un esempio di questa procedura:
> $ mixminion generate-surb -t foo at bar.wiredyne.com
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 08:58:48.945 -0800 [INFO] Selected path is POboxes,nowwhat,Tonga,typhaon
> Enter passphrase for keyring:
> -----BEGIN TYPE III REPLY BLOCK-----
> Version: 0.2
>
> U1VSQgABQKK6gDXXo99CMwqLzjTuQXET49fvuYmayi7DLpxXKoFHw2hCqP1YhJQo
> 0TtILHqa16jmmVgegp3ZFFTqxuXklWnjs45uD4/R1iMD9zkqRwXRhGkedaIit1hm
> ...
Da notare che la catena scelta non contiene nessun ":" che indica lo
swap point. Il modo in cui funziona un SURB consiste nel fatto che chi
lo usa gira i messaggi a uno swap-point. Arrivato a questo punto, il
SURB entra in gioco e dirige il messaggio al suo destinatario anonimo.
La catena indicata nel SURB è la sequenza di server attraverso cui il
messaggio transiterà dopo lo swap point.
Questo per fare in modo che un eventuale ascoltatore nascosto non possa
determinare a quale SURB sta rispondendo l'utente, o anche se l'utente
sta rispondendo a un SURB oppure no.
Tenete presente, comunque, che a seconda di come il SURB è stato
ricevuto, l'utente può essere conosciuto dall'anonimo corrispondente.
I SURBs sono identificabili dal loro creatore.
L'optione "-o" specifica un file dove salvare il SURB:
> $ mixminion generate-surb -t foo at bar.wiredyne.com -o surb.txt
Normalmente il contenuto del file surb.txt andrà trasmesso a qualcun
altro. Ma, assumiamo che il SURB contenuto in surb.txt ci sia stato
mandato da un corrispondente anonimo. Per rispondere usiamo il comando
"send", ma con l'opzione "-R" per specificare il file che contiene il
SURB piuttosto che l'opzione "-t" che definisce un destinatario.
> $ echo "SURB Test" | mixminion send -R surb.txt
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter your message now. Type Ctrl-D when you are done.
> May 07 09:00:36.763 -0800 [INFO] Selected path is POboxes,totoro2,snorky,mercurio,POboxes,aarg,almery,cybervalley,cside
> May 07 09:00:36.769 -0800 [INFO] Generating packet...
> May 07 09:00:37.365 -0800 [INFO] Packet queued
> May 07 09:00:37.370 -0800 [INFO] Connecting...
> May 07 09:00:42.304 -0800 [INFO] ... 1 sent
Notate ancora l'assenza di uno swap point nella catena scelta.
Questa volta la catena di riferisce ai server fino allo swap point.
Quando arriva, somiglierà a qualcosa come:
> Date: Fri, 7 May 2004 12:46:58 -0700
> Message-Id: <200405072046.i458Hqn9006802 at www.aarg.net>
> To: foo at bar.wiredyne.com
> From: nobody at aarg.net
> Subject: Type III Anonymous Message
> X-Anonymous: yes
>
> This message is not in plaintext. It's either 1) a reply; 2) a forward
> message encrypted to you; or 3) junk.
>
> -----BEGIN TYPE III ANONYMOUS MESSAGE-----
> Message-type: encrypted
> Decoding-handle: XsFGTVxuqYCGrR5GzM/21bMy3Lo=
>
> bMupOFEZfHKbjraLsDJ3+CS16HrATOnA7MwCkKENd3nd4tXBIJlMbqsINZA5IwjE
> 70JYX2wqHLpH5GlUcxr0jwNnNVIUk/HS3Xn9kWYVdU1S5FvDW/XS3ZiMRJCzHL3w
> DjIpyEkYX4716DmkdpOjFrwU+ouD0kSUeQvH4dMmNUKP0YNvBmRSSthgVzki7Ml6
>
> ....
>
> 8jcWJuDK3TH6tZR/1c0ve5lHRAFy9f2RJuhW6XIBkCsIWcEj1p6Z5pbyuEC9sYlm
> HdjcTTKx+riZkJFsdZMPJRfkl2hJhu0A6exRNzxMb7piy17OYvvlmXVzvH9cyM7c
> dkOFcNVvrNn0WtQItykXAB7j37e4K8Ww81ZP5KlVjMxn12UidL/ZeMADw9YjCK5s
> R/10M0pHp6pM/2F+hdEGCw==
> -----END TYPE III ANONYMOUS MESSAGE-----
Mettete il messaggio in un file chiamato "surb-reply.cipher".
Il comando del Mixminion "decode" lo decifrerà.
L'opzione "-i" specifica il file di input.
> $ mixminion decode -i surb-reply.cipher
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter passphrase for keyring:
>
> The world is all that is the case.
L'opzione "-o" definisce il file di output:
> $ mixminion decode -i surb-reply.cipher -o surb-reply.txt
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter passphrase for keyring:
> $ cat surb-reply.txt
>
> The world is all that is the case.
Un uso del mixminion è quello di comunicare con altre persone
anonimamente.
Ogni SURB può essere associato con una "identità", che è
semplicemente un nome usato per tenere diversi gruppi di SURB separati.
Quando arriva una risposta per un SURB associato con una identità
particolare, il suo nome viene visualizzato.
L'opzione "--identity" associa un nome con un SURB quando questo
viene creato:
> $ mixminion generate-surb -t foo at bar.wiredyne.com --identity=Ludwig -o ludwig.0
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 09:05:34.386 -0800 [INFO] Selected path is grove,noisebox,lakshmi,totoro2
> Enter passphrase for keyring:
Manda un messaggio a quel SURB:
> $ echo "The world is all that is the case." | mixminion send -R ludwig.0
La risposta decifrata dovrebbe somigliare a questo:
> $ mixminion decode -i surb-reply-1.txt
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter passphrase for keyring:
> May 07 09:08:14.776 -0800 [INFO] Decoded reply message to identity 'ludwig'
>
> The world is all that is the case.
La funzione "identity" dei SURB è più che conveniente, è una
necessità per la sicurezza. Se l'utente non conosce l'identità
a cui un messaggio è indirizzato, poi è possibile essere
ingannati rispondendo usando lo pseudonimo sbagliato.
Questo può essere usato per correlare identità diverse.
Provate a rimandare il messaggio precedente a "Ludwig":
> $ echo "The world is all that is the case." | mixminion send -R ludwig.0
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter your message now. Type Ctrl-D when you are done.
> May 07 09:14:08.806 -0800 [WARN] Skipping 1 used reply blocks
> May 07 09:14:08.833 -0800 [ERROR] Not enough usable reply blocks found; all were used or expired.
Dato che il SURB era già stato usato, il mixminion non permette di
utilizzarlo di nuovo.
Come per i direct forward messages, per i SURBs si può specificare
una catena:
> $ mixminion generate-surb -t foo at bar.wiredyne.com -o surb1.txt -P '*15'
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 09:35:59.761 -0800 [INFO] Selected path is
Kisangani,grove,Tonga,POboxes,snorky,Tonga,Kisangani,rufus,POboxes,sushi,chicago,lakshmi,gurski,nowwhat,Tonga
> Enter passphrase for keyring:
Comunque non possono essere usati più di 15 server all'incirca.
La ragione di ciò sta nel fatto che non ci possono essere più di 15 server
prima o dopo lo swap point. Il SURB definisce solo i server dopo
lo swap point.
7. La coda
Nell'esempio visto sopra i messaggi spediti venivano trasmessi
immediatamente.
Il Mixminion ha anche un meccanismo di "coda" dove poter tenere
i messaggi per poi spedirli successivamente.
Questo nasconde l'informazione sui tempi di preparazione dei messaggi.
E significa anche che se un server non è disponibile,
i messaggi destinati per quel server verranno tenuti nella coda e
il mixminion proverà a rispedirli più tardi.
Il comando "inspect-queue" mostra i messaggi già presenti nella coda.
Non dovrebbero esserci messaggi nella cosa in questo momento:
> $ mixminion inspect-queue
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> (No packets in queue)
Il comando "--queue" dice al comando "send" di mettere i messaggi
in coda invece di trasmetterli subito.
> $ echo "Queued message." | mixminion send --queue -t foo at bar.wiredyne.com
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> Enter your message now. Type Ctrl-D when you are done.
> May 07 09:42:26.966 -0800 [INFO] Generating payload(s)...
> May 07 09:42:27.112 -0800 [INFO] Selected path is mixiwoarsnet,totoro2,typhaon:anize,aarg
> May 07 09:42:27.452 -0800 [INFO] Packet queued
Ora dovrebbe esserci un messaggio nella coda:
> $ mixminion inspect-queue
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> 1 packets for 'mixiwoarsnet' at mix.iwoars.net:48099 (oldest is <1 days old)
Mettere un'altra manciata di messaggi nella coda.
Ora dovrebbero essercene altri:
> $ mixminion inspect-queue
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> 1 packets for 'POboxes' at mixminion.poboxes.info:48099 (oldest is <1 days old)
> 1 packets for 'anizè at anize.org:48099 (oldest is <1 days old)
> 1 packets for 'mixiwoarsnet' at mix.iwoars.net:48099 (oldest is <1 days old)
> 1 packets for 'snorky' at minion.bananasplit.info:48099 (oldest is <1 days old)
> 1 packets for 'sushi' at dexter.gabuilders.com:48099 (oldest is <1 days old)
Il comando "flush" spedisce i messaggi presenti nella coda:
> $ mixminion flush
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 09:47:04.444 -0800 [INFO] Flushing packet queue
> May 07 09:47:04.617 -0800 [INFO] Found 5 pending packets
> May 07 09:47:04.657 -0800 [INFO] Sending 1 packets to server at dexter.gabuilders.com:48099...
> May 07 09:47:04.662 -0800 [INFO] Connecting...
> May 07 09:47:09.358 -0800 [INFO] ... 1 sent
> May 07 09:47:09.534 -0800 [INFO] Sending 1 packets to server at mixminion.poboxes.info:48099...
> ....
Se tutti i server sono attivi, non dovrebbero esserci più
messaggi nella coda:
> $ mixminion inspect-queue
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> (No packets in queue)
A volte i messaggi non possono essere recapitati e devono essere
rimossi dalla coda. Il comando "clean-queue" serve a questo.
Di default, cancella solo i messaggi vecchi, così per cancellare
tutti i messaggi deve essere usata l'opzione "-d 0", che
significa "cancella tutti i messaggi ignorandone l'età."
Mettete in coda qualche messaggio e provate a rimuoverli:
> $ mixminion clean-queue -d 0
> Mixminion version 0.0.7
> This software is for testing purposes only. Anonymity is not guaranteed.
> May 07 09:54:52.015 -0800 [INFO] Removing 1 packets for server at privacy.outel.org:48099
> May 07 09:54:52.049 -0800 [INFO] Removing 1 packets for server at totoro.wangafu.net:48100
> May 07 09:54:52.115 -0800 [INFO] Removing 1 packets for server at typhaon.so36.net:48099
8. Altre sorgenti di informazioni:
[1] G. Danezis, R. Dingledine, and N. Mathewson "Mixminion: Design of
a Type III Anonymous Remailer Protocol" Available at
http://mixminion.net.
[2] The mixminion(1) man page is available with the tarball and at
http://mixminion.net.
More information about the E-privacy
mailing list