=====================================
== Ravi Dwivedi's personal website ==
=====================================

Choosing a privacy-respecting chatting app


Which chatting app do you use to contact your loved ones?

Do you use WhatsApp?

Do you use Telegram or Signal?

What if you do not agree to the terms and conditions or privacy policy of these apps?

Well, either you need to accept their terms or switch to any other app and do the hard work of convincing every contact to move to your new chat app whose terms you can agree. What if you are a student and all the important notifications are sent to the WhatsApp group? Would you convince your school to avoid WhatsApp? What if they don’t care? Now you are forced to be on WhatsApp to make sure you don’t miss any important updates. So, when you click on ‘I Agree’ to the document which says, “We will put you in surveillance. It has a lot of benefits. Your life will be very convenient”, do you really agree, or you just gave in to social pressure? Or you did not care? Do you really have a choice?

SMS is just the worse but I' having trouble convincing people to adopt my system, TLS IRC with a local serverand a patched DOSBox gateway running in my mobile browser.
Why SMS refuses to die. Source: https://xkcd.com/2365/

So, how do we control our means of communications? What does controlling our communications mean? If we control our means of communications, can we ensure privacy as well? I will go into details of what I mean when I say that the users control the software. If the users have the freedom to run, copy, distribute, study, change and improve the software, then the users control the software. Such a software is called free software, where ‘free’ refers to freedom and not to price. In this article, ‘free’ refers to freedom and never to price. I suggest you to read this article to understand why these freedoms are important and how this gives users control over the software. Examples of free software(freedom-respecting) chatting apps are Telegram, Signal, Quicksy, Element etc. If users lack any of these freedoms, then the software is called nonfree/proprietary and such a software cannot be trusted by the user. WhatsApp is an example of nonfree/proprietary software.

Four Freedoms of free software
Image: Free Software respects your freedom. Source: Richard Stallman's Ted talk slides released under CC-BY 3.0 license.

Chatting apps usually have two components: 1. The app that you install on your device; 2. A server (we will call it a service provider)which transfers the messages from the sender to the recipient. If you control only the software, the service provider still has the power to impose unjust conditions on you. In the above-mentioned example, Signal is a free software which includes the freedom to modify the code but when a project modified the Signal app code, Signal refused to allow them to connect to their server or federate with any other server. This is not true freedom. So, to control our chatting system, software must be free but that is not enough.

Therefore, for full control, we need to have federated chat systems – to allow users registered on different service providers to communicate with each other - for instance a mail server run by Google federates with a mail server run by Microsoft when you send email from @gmail.com to @hotmail.com. So you can choose a free software and a trusted, community-run service-provider, and this is what I mean by having control over our communications. This control is collective control by community. Examples of such systems are Matrix and XMPP. Federation answers the question raised earlier: What to do if the service provider imposes terms and conditions you do not agree with? You can switch to another service provider or you can be a service provider and still communicate with your contacts. You don’t need to convince them to switch to a new provider. Examples of matrix apps are- Element, Nheko, Fluffychat etc. Examples of XMPP apps are- Conversations, Dino, Gajim, Siskin IM etc. Make sure that the app supports end-to-end encryption–which means only the sender and recipient can read the messages.

Drawing: Paper is passed through a device which shreds it into fragments. The fragments travel some distance and then are re-assembled by another device
End-to-end encryption. Credits: Cryptpad

Quicksy app is at the intersection of freedom and convenience. It registers the account with a phone number, which makes the app convenient and easy to use. It federates with XMPP so no one is forced to use Quicksy and so other people can use some other XMPP app(like Conversations) which do not require any personal details to create an account.

To get started with XMPP, you can use this guide or use Quicksy app if you don’t mind registering with your phone number.

Telegram and Signal apps are freedom-respecting but since they are not federated, the overall chatting system is not freedom-respecting.

Another way to freedom is to use freedom-respecting encrypted messaging apps which do not involve any servers. These are called peer-to-peer apps. The downside here is that both the users need to be online at the same time to exchange messages. You can choose to run the app in background to receive messages. Examples: Briar, GNU Jami, Tox.

TL;DR : Free Software app + Federated chat systems like Matrix or XMPP and free software peer-to-peer apps like Briar give users full control over their communications and therefore you can ensure privacy. Nonfree/proprietary software control the users and therefore cannot be trusted for privacy.

PS: A more nuanced opinion is here.