In this tutorial we're going to see how to setup a chat application for Anonymous use. This is especially important in a world where mass-surveillance is nearly-omnipresent. It has become the end users' responsibility to uphold their privacy and anonymity while communicating online.
In order to choose the most appropriate messaging app for our intended use (Anonymity), we have the following requirements:
Privacy:
The application must be free and open source (FOSS)
The application must have End to End Encryption by default (E2EE)
The application must allow us to run and use our own servers (Decentralisation)
Anonymity:
The application must support Tor .onion servers out of the box
The application must allow you to chat without requiring any information (no emails, no usernames, no phone numbers)
The application must have the ability for us to join chatrooms without revealing our identity (Incognito Mode)
Deniability:
The application must have disappearing messages (Deniability)
You'd be suprised to see that as of right now (November 2024) there is only SimpleX that actually fits all of these criterias. therefore that's what we'll use for Anonymous chats.
Hardware : Google Pixel Phone
Host OS: GrapheneOS
Graphene Profile: Anonymous Use
Applications: Orbot and SimpleX
Hardware : (Personal Computer / Laptop)
Host OS: Linux
Hypervisor: libvirtd QEMU/KVM
Application: Tor (if not on Whonix or Tails), and SimpleX
We will be going through how to set up your own SimpleX server through Tor, and how to configure your Android client to route your traffic through it.
First, update your package list and install Tor by running the following commands in your terminal:
sudo apt update
sudo apt install tor
Once installed, start the Tor service:
sudo systemctl start tor@default
Next you'll need to download SimpleX AppImage which can be found here on SimpleX website.
Open a terminal in the directory of your downloaded AppImage. Make the AppImage executable, then launch it:
[ mainpc ] [ /dev/pts/26 ] [~]
→ chmod +x simplex-desktop-x86_64.AppImage
[ mainpc ] [ /dev/pts/26 ] [~]
→ ./simplex-desktop-x86_64.AppImage
Download and install the Orbot .apk from the GitHub repository.
Open Orbot, and in the bottom-right corner, tap on More, then Settings to enter the settings.
In the settings menu, scroll down and enable the Power User Mode.
After enabling Power User Mode, go back to the More section and press Choose apps and select SimpleX in the list. Go back to Connect in the bottom navigation menu and press Connect.
Download and install SimpleX using F-Droid
Navigate through the setup process, select your username, and press Create. The screenshots showcase the process for Android, but the steps are identical for Linux/GNU as well.
Once you've created your profile, open the kebab menu on the bottom left and open Settings > Network and servers and activate SOCKS Proxy. Press SOCKS proxy settings and set your port to 9050, then save.
It's important to note that in theory, it doesn't matter which SimpleX server you connect to, as all communication is end-to-end encrypted. When you connect via Tor, it further ensures that the server itself won't be able to trace your connection back to you. Your anonymity is maintained through the use of Tor, and your conversations are protected by SimpleX's encryption.
HackLiberty has a great guide on how to install and configure a SimpleX server using Docker.
Once you have configured and started your server, carry on with this guide.
After setting up your SimpleX server, you need to configure your client to route its traffic through it.
Open the kebab menu at the bottom left again, and navigate to Settings > Network and servers, then press Message servers.
If you desire, you can remove all the default SimpleX instances individually before proceeding; this ensures that SimpleX will only ever use your server.
Press Add server, then Enter server manually. Specify your SMP server address and save. Make sure to check the Use for new connections option.
Repeat the same steps for your XFTP address by navigating to Settings > Network and servers, then press Media & file servers.
Similarly, you can remove all default instances here if you desire. Then add your XFTP server address by pressing Add server > Enter server manually. Specify your XFTP address and save. Don't forget to tick the Use for new connections option.
You have now successfully configured your SimpleX server and client.
After configuring your SimpleX client through Orbot and your own server, you are ready to create and join chatrooms. Here is how to create a chatroom in Incognito mode:
Press the pen icon in the bottom right of the screen. This will bring up a menu. Select Create group.
Enter a name for your group. You can also add a photo for the group.
Tick the Incognito option. Doing this ensures your profile name and image is hidden from your group members and allows for anonymous connections with other people without shared data. Once you have filled out the necessary information, press Create group.
After creating your chatroom, you will be met with an invite link. You will use this link to invite other people to your chatroom.
If you have received an invite to a SimpleX chatroom, you can join it by pressing the input field at the bottom of the screen labeled Search or paste SimpleX link.
Paste your invite link into the input field and press Enter.
You will be met with a window asking whether you'd like to connect using your current profile or using an Incognito profile.
Select Use new incognito profile.
This is because we don't want to reveal what our simplex username is, we just want to join the chatroom using a random username that is not tied to our identity.
And there as you can see, everyone that joins in in incognito gets a random pseudonym with the format "Random Adjective Random Word" effectively helping the users maintain their anonymity while in the chat.
By following this tutorial, you've set up a secure, anonymous chat system using SimpleX and Tor. You've learned how to install Orbot, configure SimpleX servers with `.onion` addresses, create incognito chatrooms, and join them anonymously. This setup ensures that your private conversations remain secure and untraceable.
- Installed Orbot and routed traffic through the Tor network.
- Configured SimpleX servers to use `.onion` addresses.
- Created and joined anonymous chatrooms in incognito mode.
Until there is Nothing left.
Creative Commons Zero: No Rights Reserved
Donate XMR:
42yco9t6qK98N191EZzKJUCH7cit5JT8mBJQvVULEPAPeBHurbFqGj2hK7kaFhqasv8AYLpbuP15Wg5suzyjUd5SMLqabRw
Contact: fuzzy.hat4381@fastmail.com