Previous Page

User Icon

Anonymity - Easy Anonymous Chats Using SimpleX

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.

Choosing the most appropriate chat application

In order to choose the most appropriate messaging app for our intended use (Anonymity), we have the following requirements:

Privacy:

  1. The application must be free and open source (FOSS)

  2. The application must have End to End Encryption by default (E2EE)

  3. The application must allow us to run and use our own servers (Decentralisation)

Anonymity:

  1. The application must support Tor .onion servers out of the box

  2. The application must allow you to chat without requiring any information (no emails, no usernames, no phone numbers)

  3. The application must have the ability for us to join chatrooms without revealing our identity (Incognito Mode)

Deniability:

  1. 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.

Mobile OPSEC Recommendations:

  1. Hardware : Google Pixel Phone

  2. Host OS: GrapheneOS

  3. Graphene Profile: Anonymous Use

  4. Applications: Orbot and SimpleX

Desktop OPSEC Recommendations:

  1. Hardware : (Personal Computer / Laptop)

  2. Host OS: Linux

  3. Hypervisor: libvirtd QEMU/KVM

  4. Virtual Machine: Linux or Whonix or Tails

  5. 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.

How to Set Up Anonymous Chats

Step 1. Option A: GNU/Linux

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

Step 1. Option B: Android

Download and install the Orbot .apk from the GitHub repository.

Orbot installation screenshot

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

SimpleX installation screenshot

Step 2.

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.

SimpleX setup screen

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.

SimpleX proxy switch SimpleX proxy settings

You have now successfully configured SimpleX to use Tor!

Step 3. SimpleX Server Setup

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.

Step 4: Configure SimpleX To Use Your Server

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.

SimpleX message server settings

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.

Adding a SimpleX server

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.

SimpleX message server settings Adding a SimpleX server

Congratulations!

You have now successfully configured your SimpleX server and client.

How to Create Chatrooms in Incognito mode

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:

Step 1: Create the Chatroom

Press the pen icon in the bottom right of the screen. This will bring up a menu. Select Create group.

Creating a group in SimpleX

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.

SimpleX incognito mode settings

Step 2: Invite Members

After creating your chatroom, you will be met with an invite link. You will use this link to invite other people to your chatroom.

SimpleX invite link

How to Join Chatrooms in Incognito mode

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.

Joining a SimpleX chatroom

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.

Selecting an incognito profile in SimpleX

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.

Simplex group

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.

Conclusion

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.

What You've Accomplished

- Installed Orbot and routed traffic through the Tor network.
- Configured SimpleX servers to use `.onion` addresses.
- Created and joined anonymous chatrooms in incognito mode.

Nihilism

Until there is Nothing left.
Creative Commons Zero: No Rights Reserved
Creative Commons Zero

About Hoover

Donate XMR: 42yco9t6qK98N191EZzKJUCH7cit5JT8mBJQvVULEPAPeBHurbFqGj2hK7kaFhqasv8AYLpbuP15Wg5suzyjUd5SMLqabRw
Contact: fuzzy.hat4381@fastmail.com