Messenger Satelit
Messenger Satelit security
Messenger Satelit encrypts every message, call and file on your device with the MLS protocol (RFC 9420) in its post-quantum form, X25519 + ML-KEM-768. The keys never reach the server. The server carries encrypted data and knows only who is in which chat and roughly when.
- 0 private keys on the server
- 30 days at most an encrypted message waits until every device has it
- 14 days at most for photos and voice, encrypted
- 10 min the app checks its own version
In short
- Protocol
- MLS, RFC 9420 (IETF), for one-to-one and group chats
- Suite
- MLS_256_XWING_AES256GCM_SHA512_Ed25519: X25519 + ML-KEM-768, AES-256-GCM, SHA-512, Ed25519
- Keys
- Made on the device. Private keys and the recovery code never reach the server.
- Who is in a chat
- Decided by the devices, through the protocol, not by the server.
- Calls
- Directly between devices, up to 8. On difficult networks, a relay that sees only ciphertext.
- Files
- Device to device. Photos, voice notes and short clips wait encrypted at most 14 days.
- Messages in waiting
- Encrypted, until every device has them: at most 30 days. There is no history on the server.
- App version
- Signed with Ed25519; the manifest’s SHA-256 is in a public log, checked at start and every 10 minutes.
- Account
- A Satelit account, with an email address. No phone number.
- Outside audit
- Not yet. We say so here and in the app.
Check it yourself. Don’t take our word.
What the server keeps
- Encrypted messages in waiting, until every device has them: at most 30 days.
- Who is in which chat and the day something moved, not the hour.
- The devices’ public keys.
What it never sees
- Text, photos, files and calls.
- The names and pictures of groups.
- Private keys and the recovery code.
- Who in a chat sent a given message.
How to check the version
- The signed manifest Every file of the version, each with its SHA-256 fingerprint, signed with Ed25519.messenger.satelit.md/.well-known/satelit-build.json
- The version log The manifest’s SHA-256 fingerprint must be here. For a version missing from the log, the app raises an alarm.messenger.satelit.md/api/kt/builds
- The log’s head The log’s signed root, for anyone who wants to follow it over time.messenger.satelit.md/.well-known/satelit-kt-head.json
The public signing key (Ed25519)TOhCsXBzw74hRERKF71s8eFPVbckLYbPuXfytPcYsxg
The app runs these checks by itself at start and every 10 minutes. You can see them in Settings, under “Security and transparency”.
What we do not promise
- No outside firm has audited Messenger yet.
- In a browser, the code comes from the server on the first visit. Only installed apps close this gap completely.
- At a first contact, compare the safety number with the person: only then do you know nobody stands in the middle.
- The server knows who is in which chat and roughly when something was sent. Not what.
Questions
Can Satelit read my messages?
No. The server receives only encrypted data and has no keys. What the server can see: who is in which chat, and roughly when. The exceptions: messages you choose to report, and questions for @satelit.
What does Satelit receive readable?
Two things, only when you use them. What you send with @satelit: the question, the message you reply to and the messages you pick in the question window, with names replaced, so Satelit AI can answer. And what you do in the social part: friends, outings, places and Meet. Satelit reads these, as in the Satelit app. It does not read your other messages.
What happens to messages I report?
The messages you choose to report reach the moderators at Satelit, readable. A report is kept 90 days after it is closed, then deleted.
Has it been audited by an outside firm?
Not yet. Until then we say so here and in the app.