Ok so, here I am again asking another question ๐๐ But hear me out: I read this post here about, if there even is a good privacy messenger that can be trusted. Someone in the comments mentioned Conversations (a XMPP client for Android). This made me look into XMPP and at the moment I am giving Conversations a try. Reading into XMPP, I couldnโt find a problem security or privacy wise. Also it seems like it does not matter what server I use (atm. we are on 07f.de) since it is all e2e with OMEMO. Am I missing something or is it really this good? And if I dont trust anyone, I could host my one instance of ejabberd, right?
Off the top of my head you need to ensure everyoneโs using the same OMEMO version; and i donโt think it encrypts metadata.
Others are noting clients & servers matter. This isnโt a downsideโitโs just that the protocol is flexible & extensible for many types of messaging beyond human2human private conversations, which explains why encryption isnโt a requirement for the clients. With that said any modern client targeting said H2H interaction will have basic forms of encryption like PGP, OTR, & OMEMO which all do the job of E2EE. OMEMO is based on the same ideas that Signal, WhatsApp, Matrix, & so on use so that part is all the same.
A unique feature for XMPP in this space tho is how low-spec & resource-unintensive the servers/clients areโyou arenโt chewing up a ton of CPU or RAM, there is no eventual consistency to balloon storage (MAM is enough), clients donโt drain your battery or take literal minutes to sync with servers. Since it is low-cost, it is feasible to self-host XMPP from a residential server (at home on some old hardware for instance) or add it to a multipurpose machine where it doesnโt get in the way of other processes/storage. Some of the other service often mentioned here either you canโt self-host or are quite expensive to run (often by design) which limits the accessibility causing centralization as well as requiring trust in that server you donโt own.
Having to ask means youโre probably conducting unsafe behaviors anyway
I am asking because I want to understand the โhypeโ about XMPP that and why it is always mentioned when someone is asking for a good privacy friendly messenger :)
The โhypeโ around XMPP is that it is simple and extensible. The server implementations of XMPP are very performant, especially compared to other protocols like Matrix that fit the same niche. I would like to see XMPP succeed, but what people want is a finished, unified product. Matrix, more so Element Matrix, succeeds in the personal messaging space because it provides a unified experience and a finished product. XMPP has been utilized by thousands of different projects, from Xbox game chats, to Zoom and WhatsApp, but each implementation is different and specialized. Conversations works great as a messenger, I recommend it. Easy to selfhost as well.
You have to trust the servers with your metadata, and that the servers have their inter-server communication locked down, but at least you can choose/operate servers.
Some clients are a bit flaky with their e2e encryption defaults or from a UI perspective it is easy to send an unencrypted message (in a new chat for example) before noticing that was how it was set.
There are a few XEPs the server needs which enable things like OMEMO, efficient mobile data/battery use, offline and multiple device deliverability, file transfers, etc. Audio/video calling has various requirements as I think xmpp only facilitates the setup of the call.
ok but if Iโd recommend a client to the people I want to text with via xmpp I can be certain which client they use. My idea isnt to write with strangers but only with real people I know (friends and family).
It depends on the client and the security implementations they support. For example IIRC no client support the last version of OMEMO (I think it was about OMEMO, I remember an article about it some time ago). Also are you sure that all the other peopleโs clients are on the same version and youโre not susceptible to a downgrade attack?
Unless you are ready to/want to control the whole environment (i.e. at least the clients and possibly the server), look into simplex.chat
There are some clients that support the latest version of OMEMO, but yes, since the most popular ones do not, you end up using the older version most of the time. That said, the older version is not generally unsafe, it basically is the same as WhatsApp or Signal are using. The newer version is just somewhat better as it includes some lessons learned from earlier attempts.