Feature #8225

please install mixmaster (or teach us how)

Added by aguelier@ruggedinbox.com 2014-11-06 06:55:26 . Updated 2017-06-30 10:15:39 .

Status:
Rejected
Priority:
Low
Assignee:
aguelier@ruggedinbox.com
Category:
Target version:
Start date:
2014-11-06
Due date:
% Done:

0%

Feature Branch:
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Email Client
Deliverable for:

Description

Mixmaster is the type II remailer protocol and the most popular implementation of it. It is a standard package in Debian stable (here https://packages.debian.org/stable/mail/mixmaster) and extremely appropriate for all the design goals of the Tails project. Mixmaster is small and easy to use and, for tasks that are less sensitive to latency like sending email, it can supplement the imperfect anonymity of Tails users with additional resistance to Confirmation Attacks (as described here https://tails.boum.org/doc/about/warning/index.en.html#index4h1) as well as help them to avoid the hassles and risks involved in registering with external mail providers.

Mixmaster over Tor has been recommended by Tor developer and spokesman Jacob Appelbaum in several lectures (such as this one https://www.youtube.com/watch?v=Ldw57tDC9ms) and he has even mistakenly said that it’s already part of Tails.

Mixmaster is also configured by default in the somewhat overlapping Whonix Operating System (here https://www.whonix.org/wiki/Mixmaster) and its configuration over Tor was discussed in detail on the Tails-dev mailing list in January 2013 (here https://mailman.boum.org/pipermail/tails-dev/2013-January/002472.html).

Configuring Mixmaster to work over Tor, however, remains a challenge even for advanced Tails/Tor power users and there are numerous difficulties relating to the lack of good documentation for Mixmaster, lack of support for SOCKS proxies, lack of support for DNS record types which are compatible with transparent torification, blocking of SMTP ports by Tor exit nodes, permissions of Tor configuration files within Tails to bypass the exit node problem with hidden service SMTP relays, and permissions/location of Debian/Mixmaster configuration files within Tails. To the best of our knowledge the following sites contain all the relevant information on the subject that exists on the internet:
https://github.com/Whonix/anon-mixmaster
https://github.com/Whonix/anon-gw-anonymizer-config/blob/master/usr/share/tor/tor-service-defaults-torrc.anondist
https://www.whonix.org/wiki/Dev/Mixmaster
https://www.whonix.org/wiki/Deprecated#Mixmaster
http://lists.mixmin.net/pipermail/remops/2012-December/000671.html
https://mailman.boum.org/pipermail/tails-dev/2013-January/002472.html
http://www.groovy.net/ww/2011/12/torfix
http://www.groovy.net/ww/2012/01/torfixbis
http://www.debian-administration.org/article/483/Using_mixmaster_to_send_anonymous_email
http://www.plex86.org/linux2/Mixmaster-Tutorial-Third-Draft-Comments--This-message-did-not-originate-from-the-Sender-address-above.html
http://mixmaster.sourceforge.net/
http://manpages.debian.org/cgi-bin/man.cgi?query=mixmaster

Please install Mixmaster by default in Tails or teach end users how they can install/configure it from the standard repositories.


Files

mixmaster_steps.sh (2761 B) aguelier@ruggedinbox.com, 2014-11-07 23:20:01
mix.cfg (33 B) aguelier@ruggedinbox.com, 2014-11-07 23:20:37
update.conf (293 B) aguelier@ruggedinbox.com, 2014-11-07 23:21:26
mixpersist.sh (1974 B) aguelier@ruggedinbox.com, 2014-11-08 03:33:14
mixnotify.sh (917 B) aguelier@ruggedinbox.com, 2014-11-08 03:43:18
mix.cfg (70 B) aguelier@ruggedinbox.com, 2014-11-08 03:55:36
mixnotify.sh (917 B) aguelier@ruggedinbox.com, 2014-11-08 04:07:57
mix.cfg (67 B) aguelier@ruggedinbox.com, 2014-11-08 04:08:38
preferences (84 B) aguelier@ruggedinbox.com, 2014-11-11 10:43:03
mix.cfg (234 B) aguelier@ruggedinbox.com, 2014-11-14 05:36:19
update.conf (293 B) aguelier@ruggedinbox.com, 2014-11-14 05:36:56
live-additional-software.conf (10 B) aguelier@ruggedinbox.com, 2014-11-14 05:41:48

Subtasks


Related issues

Related to Tails - Feature #8295: Introducing the Bitmessage/Mixmaster Tails Installer Rejected 2014-11-23

History

#1 Updated by intrigeri 2014-11-06 09:44:09

  • Type of work changed from Debian to Discuss

#2 Updated by intrigeri 2014-11-06 09:47:39

I doubt anyone on the current team will have time to work on this any time soon, so the next steps would be:

  1. clarify “extremely appropriate for all the design goals of the Tails project”: which part of our design goals does it cover? what user story would it address?
  2. decide whether we would like to see mixmaster installed by default, or made easier to install and configure
  3. if yes, see who’s going to do it, or mark this ticket as low-priority (= patches welcome but we won’t do it ourselves)

#3 Updated by intrigeri 2014-11-06 09:48:20

  • Assignee set to aguelier@ruggedinbox.com
  • QA Check set to Info Needed

#4 Updated by aguelier@ruggedinbox.com 2014-11-06 19:21:09

  1. I thought I already clarified the most important Tails goals Mixmaster covers in the sentence following the one you quoted, but if you want me to do so I could cite practically every section of the design document here with each section number followed by the word “check” because Mixmaster appears to cover almost the whole thing (which should not be surprising at all because it wasn’t many years ago when Mixmaster was considered an equal peer to projects like Tor and i2p).

Like Tor, Mixmaster is a general purpose tool with many possible user stories, but the particular one I have in mind is that since many of the anonymous communication tools out there are not compatible with the standard unencrypted, unobscured email that constitutes the majority of global communications (if we include the email to sms gateways that are almost always provided with sms service), it is useful for users who are further along in their transition to more secure communication systems (ex OTR) to be able to continue establishing contact with users of standard unencrypted email/sms in the most secure/minimally-revealing way possible. Although there are obviously many risks that cannot be addressed without the cooperation of both sender and receiver (such reducing the risk of intercepted message contents with PGP encryption), the unique benefit of a tool like Mixmaster is that it still affords senders partial use of the standard unencrypted email/sms channel even without any cooperation from the receiver whatsoever so that unencrypted email/sms notices like “log in to OTR” or “please install PGP, Mr Greenwald, because I’m going to send you a set of documents that reveal an illegal mass surveillance program” can be sent without exposing the metadata or social network of the sender. Granted the user in this story could also use Tails to send from a one-time disposable email address at a site like ruggedinbox.com, but as I also already mentioned in the sentence after the one you quoted, the hassle of this approach does not fully satisfy the tails design goals and, given the risks created by the non-cooperative receipient in this user story, it also seems appropriate for the sender to try to compensate for these risks with some kind of additional precaution (that Mixmaster over Tor provides with greater resistence against an end-to-end correlation attack).

  1. Obviously Mixmaster should by installed by default and, as mentioned, Tails advocates like Jacob Appelbaum mistakenly think it already is installed by default. The only reason I suggested the option of making it easier to install/configure is to not be so presumptuous, but let me be clear now that not having Mixmaster as part of a default Tails installation is absolutely absurd and I can’t imagine any target user in their right mind using what is currently installed in Mixmaster’s place (eg Claws Mail and/or disposable webmail).
  1. I am willing to do it myself, but I lack sufficient documentation on how Tails differs from other standard Debian or other torrifying setups to get it done quickly. So I made this ticket in the hopes that someone who has more knowledge about Tails than myself can either help me understand these specific differences (or point me to their documentation), simply do it themselves, or some collaborative combination of the two.

intrigeri wrote:
> I doubt anyone on the current team will have time to work on this any time soon, so the next steps would be:
>
> # clarify “extremely appropriate for all the design goals of the Tails project”: which part of our design goals does it cover? what user story would it address?
> # decide whether we would like to see mixmaster installed by default, or made easier to install and configure
> # if yes, see who’s going to do it, or mark this ticket as low-priority (= patches welcome but we won’t do it ourselves)

#5 Updated by aguelier@ruggedinbox.com 2014-11-06 19:25:10

  1. I thought I already clarified the most important Tails goals Mixmaster covers in the sentence following the one you quoted, but if you want me to do so I could cite practically every section of the design document here with each section number followed by the word “check” because Mixmaster appears to cover almost the whole thing (which should not be surprising at all because it wasn’t many years ago when Mixmaster was considered an equal peer to projects like Tor and i2p). Like Tor, Mixmaster is a general purpose tool with many possible user stories, but the particular one I have in mind is that since many of the anonymous communication tools out there are not compatible with the standard unencrypted, unobscured email that constitutes the majority of global communications (if we include the email to sms gateways that are almost always provided with sms service), it is useful for users who are further along in their transition to more secure communication systems (ex OTR) to be able to continue establishing contact with users of standard unencrypted email/sms in the most secure/minimally-revealing way possible. Although there are obviously many risks that cannot be addressed without the cooperation of both sender and receiver (such reducing the risk of intercepted message contents with PGP encryption), the unique benefit of a tool like Mixmaster is that it still affords senders partial use of the standard unencrypted email/sms channel even without any cooperation from the receiver whatsoever so that unencrypted email/sms notices like “log in to OTR” or “please install PGP, Mr Greenwald, because I’m going to send you a set of documents that reveal an illegal mass surveillance program” can be sent without exposing the metadata or social network of the sender. Granted the user in this story could also use Tails to send from a one-time disposable email address at a site like ruggedinbox.com, but as I also already mentioned in the sentence after the one you quoted, the hassle of this approach does not fully satisfy the tails design goals and, given the risks created by the non-cooperative recipient in this user story, it also seems appropriate for the sender to try to compensate for these risks with some kind of additional precaution (that Mixmaster over Tor provides with greater resistance against an end-to-end correlation attack).
  1. Obviously Mixmaster should by installed by default and, as mentioned, Tails advocates like Jacob Appelbaum mistakenly think it already is installed by default. The only reason I suggested the option of making it easier to install/configure is to not be so presumptuous, but let me be clear now that not having Mixmaster as part of a default Tails installation is absolutely absurd and I can’t imagine any target user in their right mind using what is currently installed in Mixmaster’s place (eg Claws Mail and/or disposable webmail).
  1. I am willing to do it myself, but I lack sufficient documentation on how Tails differs from other standard Debian or other torrifying setups to get it done quickly. So I made this ticket in the hopes that someone who has more knowledge about Tails than myself can either help me understand these specific differences (or point me to their documentation), simply do it themselves, or some collaborative combination of the two.

intrigeri wrote:
> I doubt anyone on the current team will have time to work on this any time soon, so the next steps would be:
>
> # clarify “extremely appropriate for all the design goals of the Tails project”: which part of our design goals does it cover? what user story would it address?
> # decide whether we would like to see mixmaster installed by default, or made easier to install and configure
> # if yes, see who’s going to do it, or mark this ticket as low-priority (= patches welcome but we won’t do it ourselves)

#6 Updated by aguelier@ruggedinbox.com 2014-11-07 23:24:00

So it turns out this is really easy (and all that remains is for mixmaster to be installed as a default package):

#To install mixmaster as a Tails user create the directory /home/amnesia/.Mix/
mkdir /home/amnesia/.Mix/
#and populate it with a file called 
#"mix.cfg" that contains the line "SMTPRELAY    gbhpq7eihle4btsn.onion"
echo "SMTPRELAY gbhpq7eihle4btsn.onion" > /home/amnesia/.Mix/mix.cfg
#and also with a file called
#"update.conf" that contains the lines "SOURCE  noreply" and "DESTINATION /home/amnesia/.Mix/"
echo "SOURCE    noreply" > /home/amnesia/.Mix/update.conf
echo "DESTINATION   /home/amnesia/.Mix/" >> /home/amnesia/.Mix/update.conf
# and note that the Tails "dotfiles" feature can be used to make these files persistent.
#
#Then continue the installation by running the following commands as root, then as root torified, and finally as amnesia:
sudo apt-get update 
sudo apt-get install mixmaster 
sudo torify mixmaster-update --verbose 
mixmaster --verbose --update-pinger-list
#and note that the Tails "APT Packages" and "APT Lists" features can make the results of the first apt-get command persistent

#After installation, you should keep running the following command at least once in every ~24 hour window that preceds every email you send through the mix network (so you might want to just automatically run it every time you boot tails):
mixmaster-update

#Finally, to send high latency emails from the command line you can use something like this (which, after instant submission to a randomly selected three hop circuit of the mix network and a couple days of random delay, delivers an email whose body says "stop spying on us" to the president, yay!):
echo "stop spying on us" | mixmaster --copies=1 --chain=*,*,* --to=president@whitehouse.gov 
#...or use the interactive mode by simply running "mixmaster" alone

#Note: a header of "From: amnesia@amnesia" is leaked to the tor hidden service SMTP relay (gbhpq7eihle4btsn.onion) and to the first node in the mixmaster circuit, but does not propagate past this initial injection into the mix network nor out of the mix network to the clearnet nor to the final email recipient. I believe some text needs to go here, so it's not a question of plugging the leak as much as whether some other "user@host" string would be better than "amnesia@amnesia" or not. 

#Note to developers: The complexity of the installation is because the restrictions placed by Tails break the configuration steps performed by the package installer, but I think the package installer would work as intended if installed before the live system is frozen. In this case the only thing needed to supplement the standard package installer is to create the mix.cfg file as described and place it in /etc/mixmaster/ (instead of /home/amnesia/.Mix/) as follows
#sudo echo "SMTPRELAY   gbhpq7eihle4btsn.onion" > /etc/mixmaster/

#7 Updated by aguelier@ruggedinbox.com 2014-11-08 03:46:11

The last script was for one time installation from the amnesia account (as would be done manually) and was also crafted in modular fashion so it would be easy to translate to the steps necessary for a tails default installation.

Now here are two scripts that make it easy for regular tails amnesia users to install/configure mixmaster persistently and send notices per the previously described “user story”

  • “mixpersist.sh” is run one time (or whenever a new version of mixmaster is available in the debian repositories) after configuring a tails persistent volume with dotfiles, APT Packages, and APT Lists enabled. it installs and creates everything that can be made to persist from a regular tails amnesia user.
  • “mixnotify.sh recipient” sends an email to recipient with a subject of “spidey sense” and a body of “someone is trying to communicate with you on a safer channel” while also taking care of everything that can’t be made to persist for the amnesia user automatically.

#8 Updated by aguelier@ruggedinbox.com 2014-11-08 03:56:52

Finally, an alternative configuration line for mix.cfg (that depends on the msmtp program that’s already installed by default in tails) is “SENDMAIL /usr/bin/msmtp -v —host=gbhpq7eihle4btsn.onion —from=”" -t". Normally I wouldn’t introduce an unecessary dependency, but the reason I am offering it is because msmtp has an interesting alias feature for managing recipient addresses from a text file which could come in handy for users looking to integrate safer communication systems with the idea of sending Mixmaster notices (like the ones sent by the mixnotify.sh script).

Beware that I haven’t checked if the finger print seen by the SMTP server matches the pure Mixmaster solution, but it works and I have attached the mix.cfg for anyone that wants it.

#9 Updated by aguelier@ruggedinbox.com 2014-11-08 04:09:17

Sorry there were some minor mistakes in the last two files with timestamps 11/08/2014 03:43 AM and 11/08/2014 03:55 AM (nothing to do with security). Here are corrected versions.

#10 Updated by intrigeri 2014-11-10 12:20:43

Assuming mixmaster is installed by default, are there more user-friendly ways to use it so send email than the command-line?

#11 Updated by aguelier@ruggedinbox.com 2014-11-11 02:37:18

Mixmaster defaults (without any flags or options) to an excellent user-friendly ncurses interface and other anonymity projects that have included Mixmaster include it because it is specifically MORE user-friendly than a full mail client like Claws. The Whonix project says:
‘Motivation behind this: "What if there where a bookmark pointing to mail.local (or something like that) where you can simply enter an e-mail address, from sender (optional), subject and text, click send and mail is on its way? No sign-up/registration/smtp server required.’

I would also like to point out that there are non-GUI applications installed in Tails by default such as Mutt, but for those who insist on a complicated GUI there’s also wrapper package in the debian stable repositories called “Premail” which can make Mixmaster a Sendmail compatible replacement for integration with GUI clients such as Claws Mail. Once Premail is installed you’re supposed to simply edit your account settings in Claws by changing the “Basic” server information to “Use a mail command rather than SMTP server” with a specification of “/usr/sbin/premail -t -i”. Then, to activate the mix network for outgoing mail, you can either edit the account settings to “Add a user-defined header” of “Chain:” or simply append the string “((chain))” to your outgoing email addresses like this “president@whitehouse.gov ((chain))” on a case by case basis. The only problem is that, after doing all this and clicking the send button in Claws, it doesn’t work (but gives an error message of “Recipient is not specified.” Any ideas?
https://packages.debian.org/stable/premail
http://manpages.debian.org/cgi-bin/man.cgi?query=premail

#12 Updated by aguelier@ruggedinbox.com 2014-11-11 10:43:37

We got Premail working on the command line by creating a file ~/.premail/preferences that contains the line $config{'sendmail'} = '/usr/bin/msmtp --host=gbhpq7eihle4btsn.onion --from="" -t';

Claws mail is the only program in the chain that doesn’t seem to be doing what it’s supposed to do, even though we are using it per the documentation. I don’t see what’s so user-friendly about it.

#13 Updated by aguelier@ruggedinbox.com 2014-11-14 05:44:49

Update: To eliminate the “sudo torify mixmaster-update —verbose” line from the mixmaster installation process, tails users can use the following mix.cfg file:

SMTPRELAY   gbhpq7eihle4btsn.onion
PGPREMPUBASC    /home/amnesia/.Mix/pubring.asc
PUBRING     /home/amnesia/.Mix/pubring.mix
TYPE1LIST   /home/amnesia/.Mix/rlist.txt
TYPE2REL    /home/amnesia/.Mix/mlist.txt
TYPE2LIST   /home/amnesia/.Mix/type2.list

Then amnesia users can use the live-additional-software.conf file to automatically install the package when booting tails. So, after enabling persistent dotfiles, Apt packages, and Apt lists, the attached configuration files are all that are needed to use mixmaster according to its manpage (though we recommend that the amnesia user should keep the list of nodes up to date by using the command “mixmaster-update ; mixmaster” instead of just “mixmaster”).

P.S. Make sure you use the correct permissions for the live-additional-software.conf file

#14 Updated by intrigeri 2014-11-24 15:51:16

  • related to Feature #8295: Introducing the Bitmessage/Mixmaster Tails Installer added

#15 Updated by intrigeri 2014-11-24 15:51:35

  • Priority changed from Normal to Low

#16 Updated by bertagaz 2015-09-06 05:20:47

  • Status changed from New to Confirmed
  • QA Check changed from Info Needed to Dev Needed
  • Type of work changed from Discuss to Code

As discussed in our September 2015 monthly meeting, we won’t work on this ourselves, so patches to integrate a how-to in our documentation, or include this feature in Tails are welcome.

#17 Updated by BitingBird 2016-06-27 02:22:00

  • QA Check deleted (Dev Needed)

#18 Updated by Anonymous 2017-06-30 10:15:39

  • Status changed from Confirmed to Rejected

No news on this ticket since a year. We won’t work on it ourselves. Documentation is on the ticket, anyone wanting to provide a patch can do so. In the meantime, closing this ticket.