End-to-end encryption
Encrypted chats are locked on your device before they're sent, and only unlocked on the devices of the people in the chat.
Which chats are encrypted
| Chat | Encrypted? |
|---|---|
| Direct messages | Yes, by default. You can turn it off when starting a DM, but we don't recommend it. |
| Private rooms | Your choice. Turn on End-to-End Encryption when you create the room. Once it's on, it can't be turned off. |
| Public rooms | No. Anyone can join a public room and read it, so encrypting it wouldn't protect much. |
How it works
Angaara uses Matrix's standard encryption, through the official matrix-js-sdk and its Rust crypto engine (vodozemac):
- Olm sets up a secure one-to-one channel between each pair of devices, using the Double Ratchet algorithm (the same design the Signal app uses).
- Megolm encrypts messages in a room. Each device shares its room keys with the other members' devices over Olm, and the keys keep changing over time.
- Files, images and voice messages in encrypted chats are encrypted on your device before they're uploaded.
What stays visible
Encryption hides what you say. Some things about a chat still have to be visible to your homeserver for Matrix to work:
| Hidden in encrypted chats | Visible to the homeserver |
|---|---|
| Messages and replies Files, images and voice messages Reactions and edits | Who's in the room, and when they join or leave When messages are sent, and by whom Which message a reply, edit or reaction belongs to Room name, topic and avatar Your profile name and avatar |
Verifying devices
Encryption only protects you if you're talking to the right devices. Verify your own new devices, and the people you talk to, by comparing emojis or scanning a QR code. Angaara uses cross-signing, so once you've verified someone, all their verified devices are trusted too.
Verification is what proves there's nobody in the middle. Without it, you're trusting your homeserver to hand you the right keys.
Keeping your keys safe
- Save your recovery key. Your homeserver keeps an encrypted backup of your message keys, and the recovery key unlocks it. The server can't read the backup without it.
- Store it somewhere safe, like a password manager. If you lose all your devices and your recovery key, your old encrypted messages are gone for good. Nobody can recover them, not even us.
- Sign out of devices you don't use from Settings → Devices.