OMEMO End-To-End Encryption
OMEMO is a way of end-to-end encryption that offers the best usability for XMPP users. It is based on the Signal Protocol , which implements state-of-the-art cryptography for instant messaging.
Basics
- A key is generated per device (= XMPP Client)
- The keys are automatically published over XMPP, so that others can encrypt messages to you
- A message is encrypted to all (trusted) devices of the sender and receiver (in group chats to everyone in the group)
- The keys of others first have to be marked as trusted in your client
- This mitigates man-in-the-middle attacks, where a stranger creates fake devices
- Trust can be verified by comparing the fingerprint of a device key
- Compare fingerprints over a different channel (e.g. e-mail)
- If the fingerprints displayed in your contacts client and your own client match, you can trust this key
- Messages you send will be encrypted to trusted devices and messages you receive form trusted devices will be displayed as secure
Tips & Tricks
- If you are using multiple devices, be sure that all your clients trust the fingerprints of the other devices; otherwise, the different clients can’t see the messages of each other
- If you trust a new fingerprint of a chat partner, be sure to do so on all your devices, as each has their own trust store
- File transfers are also encrypted like messages by OMEMO