SimpleX

SimpleX in Whonix.
Overview
[edit]SimpleX![]()
is a general-purpose instant messaging client. Both the client and server are Freedom Software, licensed under the GNU AGPLv3 license.[1] Most of the features one would expect from a major chat messenger are present, including text chats, image sharing, file sharing, and one-on-one audio and video calls.[2][3] It provides a number of interesting security- and privacy-related features:
- End-to-end encryption for messages is mandatory and pervasive. Unencrypted one-on-one chats and unencrypted chatrooms simply do not exist. [4]
- Messages are encrypted using double-ratchet encryption, providing perfect forward secrecy and break-in recovery, similar to OMEMO.[5]
- Quantum-resistant encryption is used by default in one-on-one chats when possible.[6]
- Messages are stored locally in an encrypted database, which can be optionally passphrase-protected for additional security.[7]
- Incognito mode — unique to SimpleX Chat. Creating a random name for entering a chat or creating a group. The number of random incognito chats is unlimited. [8]
- No user IDs or accounts are used. Instead using a persistently used pair of servers and contact-specific routing and encryption data allow messages to be sent between users.[9]
- Message integrity - to guarantee integrity the messages are sequentially numbered and include the hash of the previous message. If any message is added, removed or changed the recipient will be alerted.[10]
- Message mixing to reduce correlation. SimpleX servers act as low latency mix nodes — the incoming and outgoing messages have different order.[11]
- Unidirectional message queues. Each message queue passes messages in one direction, with the different send and receive addresses. It reduces the attack vectors, compared with traditional message brokers, and available meta-data.[12]
- Multiple layers of content padding. SimpleX uses content padding for each encryption layer to frustrate message size attacks. It makes messages of different sizes look the same to the servers and network observers.[13]
- Both the client and the server are mostly implemented in memory-safe programming languages, primarily Haskell and Kotlin.[14]
- SimpleX Chat has had its cryptography implementation and design audited by Trail of Bits. [15]
Unlike XMPP and Matrix (which have server-local accounts that can communicate with each other via federation), SimpleX Chat's servers work as unidirectional pipes between client devices.[16] Chatrooms and user profiles are implemented entirely client-side, without the servers storing any persistent data about users or chatrooms.
SimpleX is intended to function as a decentralized chat system, but requires manual setup to actually achieve decentralization.
Disadvantages include:
- As of the time of writing, calls in desktop version work only through browser WebRTC.
Whonix forum discussion: SimpleX over XMPP (OMEMO)![]()