Security

Is Socketchat safe?

Socketchat keeps what you write between the people in a room. Messages, files, display names and room names are end-to-end encrypted with a published standard, and the server that carries them cannot read them. The server can never read your messages, but it can see room rosters, when a message is sent, and can read IP addresses of users. It cannot see what was written or sent. It keeps all messages private, but does not make you anonymous.

What does Socketchat encrypt end to end?

Messages, files, photos and videos, display names and room names. Only the people in a room hold the keys that open them.

Everything Socketchat keeps on your computer is also encrypted, with your passphrase.

What can the server still see?

The server can never read your messages, but it can see room rosters, when a message is sent, and can read IP addresses of users. It cannot see what was written or sent. It keeps all messages private, but does not make you anonymous.

A room roster is a list of random keys, one for each member, which the server needs to deliver each message. It holds no names.

WHOWHENIP ADDRESSROOM

What standard does Socketchat's encryption use?

MLS (Messaging Layer Security), the group encryption standard the Internet Engineering Task Force (IETF) published in 2023 as RFC 9420. Socketchat uses it through OpenMLS, an open-source library written in Rust.

Post-quantum protection
Message contents use a hybrid of ML-KEM-768, the US post-quantum standard, and X25519, on by default. How it works.
Keys that keep changing
Keys change with every change to a room and at least once a week, so a stolen key stops unlocking new messages.
Only members change a room
Every app checks each change to a room, such as someone joining or leaving, and refuses one from anyone outside the room, the server included.
No home-made cryptography
Socketchat is open source and written in Rust, so anyone can check the code.
Downloads you can check
Every file in a release carries a GitHub build attestation: a signed record of the code and the workflow that built it.

Encryption, in the docs explains each part in plain words.

How does Socketchat check who you are talking to?

Your invite link pins the server's certificate, so your app refuses an impostor server. When you join, your app checks that the link came from the person who invited you.

Safety numbers let two people confirm that nobody sits between them: a 60-digit number that matches on both screens, also shown as a QR code.

What happens to my history when I leave a room?

Socketchat destroys the room's keys on your computer at once. Its messages go once you have read them, and after 30 days they go anyway. Other members keep their own copies.

How do I report a security problem?

Report it privately through the Security tab on GitHub: choose "Report a vulnerability". Say what you found, how to reproduce it, and which version you tested.

SECURITY.md has the full cryptography notes.

More questions

Is Socketchat anonymous?

No. The server can never read your messages, but it can see room rosters, when a message is sent, and can read IP addresses of users. It cannot see what was written or sent. It keeps all messages private, but does not make you anonymous.

Can the person who runs the server read my messages?

No. The server never holds a key that can read messages, files, display names or room names. Whoever runs the server, or rents it to you, cannot read your rooms.

Install Socketchat

macOS or Linux, in a terminal
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/sachio222/socketchat_v4/releases/latest/download/socketchat-installer.sh | sh
Windows, in PowerShell
powershell -ExecutionPolicy Bypass -c "irm https://github.com/sachio222/socketchat_v4/releases/latest/download/socketchat-installer.ps1 | iex"
Or with Homebrew, on macOS or Linux
brew install sachio222/tap/socketchat

Open a new terminal when it finishes.

Then start a server with socketchat server init --host chat.example.com and socketchat server run, and open port 7444. Quick start on the home page.