Listening to the amazingly ignorant comments of Amber Rudd convinced me that it's about time I wrote a blog post about running your own chat system.
Tapping phones and steaming open letters. The Gestapo and Stasi did all of that "legally", and a lot of people went to an early grave as a consequence of government thinking it knew what was best. Do we really have to learn that lesson the hard way again in this century? Is she endorsing such things on the off-chance of finding people she doesn't like? It certainly appears so.
WhatsApp has its own security problems which I've already covered in a previous post. The long and short of it is that WhatsApp can't be trusted either, since it enables silent encryption key changes by default and being closed source its security properties are unknown or unverifiable.
Suppose you want to chat with family and friends without the government always tapping your conversations. There should always be speakeasies or in more modern terminology "safe spaces" in which you can exchange opinions without fear of government retribution or of losing your job. Here's how to do that on a Beaglebone Black. You can also use a range of other hardware if you prefer.
To do this you'll need a Beaglebone Black (ordinary version, not the wireless one), an ethernet cable, a microSD card and preferably a 5V power supply for the Beaglebone
On a Debian based system first set up the image builder for Freedombone.
sudo su apt-get update apt-get install git git clone https://github.com/bashrc/freedombone cd freedombone make install freedombone-image --setup debian exit
Now you can build a disk image:
freedombone-image -t beaglebone --onion yes
That will take a while to build and eventually it will generate an img file. Plug in the microSD card (you may need an adaptor to do that with a laptop or desktop machine) and then dd the image to it:
sudo dd if=[img] of=/dev/sdX sync
Where sdX is the path for the microSD drive. When that's done remove the microSD card and insert it into the Beaglebone. Connect the Beaglebone to your internet router with the ethernet cable and connect the power.
Now back on your laptop search for the Beaglebone on your local network. It should appear after running the command:
Then you can log in:
ssh email@example.com -p 2222
And use the default password 'freedombone'. A new random password will then be assigned. Make sure to write this down somewhere. After that the installation will complete by calculating encryption keys, which takes about half an hour. You can then log back in again with:
ssh firstname.lastname@example.org -p 2222
Using the username you set during the install. Using cursor keys, space bar to select and Enter to confirm go to Administrator controls then Add/Remove Apps. You may need to enter the password which you earlier wrote down.
Using cursor keys go down to the bottom of the list and with space bar select xmpp then press Enter. The XMPP server will then install. It may take a while.
When that's done select About this system and take a note of the onion address for the xmpp domain.
Select Manage users and add as many users as you might need. Since XMPP is a federated system other users don't necessarily need to be registered on your Beaglebone. They only need to ensure that they have mod_onions enabled on their XMPP server or have followed the same procedure as described above.
When setting up the account use email@example.com and set the server address to the onion address for the xmpp domain.
And now you can chat with others, maybe in a family group, without the modern equivalent of the Gestapo constantly eavesdropping. For additional end-to-end security make sure you press the lock icon and select OMEMO as the encryption protocol. Amber Rudd will not be at all pleased, but if you're in the same universe as I am then that's a win.