You can use it from the terminal UI, with several chats in one window.
Give you the full control of who can talk to you and your chat data
with free open-source protocol and software
of simple to deploy chat servers and simple to use chat clients
providing complete privacy, security and ownership of your contacts and chat.
Alice sends the key to Bob (e.g. via p2p network or via chat server)
Now Bob can send encrypted messages to Alice - he believes it is secure!
But the key can be intercepted and substituted by Tom (the attacker)
Now the attacker can can read the messages without Alice or Bob knowing
To create secure encrypted channel you need an existing secure channel
where you can pass the encryption key (or key fingerprint).
Any alternative solution can be compromised.
Adding a contact in mobile app will require sharing your one-time QR code.
In the terminal UI you need to share an invitation with your contact.
|SimpleX chat||Signal, big platforms||XMPP, Matrix||P2P protocols|
|Requires global identity||No = private||Yes 1||Yes 2||Yes 3|
|Possibility of MITM||No = secure||Yes 4||Yes||Yes|
|Dependence on DNS||No = resilient||Yes||Yes||No|
|Central component or other network-wide attack||No = resilient||Yes||Yes 2||Yes 6|
Simplex messaging protocol
(SMP) for messaging via secure persistent queues will serve as the low level protocol for
SimpleX chat - see
demo server implementation.
It uses different encryption keys for each message queue - the key is passed via existing secure channel - e.g. QR code or another simplex queue.
Each chat uses two (or more) simplex queues for duplex communication. Each message contains the hash of the previous message to detect if messages are lost or changed.