ungovernable.tech

[ DEEP DIVE ][ SECURE MESSAGING ]

XMPP with OMEMO

Choose your server and client, then check that the conversation actually uses compatible end-to-end encryption.

Usable updated 2026-10-25 2 min read
Contents

Summary

XMPP is a federated messaging protocol. An account has an address such as name@example.org; independently operated servers exchange messages for their users. OMEMO, specified in XEP-0384, adds end-to-end encryption between devices. Federation and encryption are separate properties: using XMPP alone does not establish an encrypted conversation.

How it works

The XMPP core standard defines addressing and server communication. OMEMO establishes a Double Ratchet session for each recipient device, then encrypts message key material for those devices. It supports asynchronous messaging and multiple devices, with forward secrecy and recovery after key compromise under its stated assumptions.

Usable clients include Conversations, Dino, Gajim, which documents integrated OMEMO support, and Monal, whose supported-extension manifest lists OMEMO. Support for the name does not establish support for every revision of the specification. Check encryption with the particular clients and devices your contacts use.

Trust model / threat model

OMEMO protects message content from servers when the intended devices' identity keys are correctly authenticated. Verify those keys through a trusted channel, and review new devices. Its specification explicitly excludes protection against metadata and traffic analysis.

Your server stores your contact roster under the XMPP instant-messaging standard. Routing still exposes account addresses and message traffic to participating servers. A self-hosted server changes the operator you trust; it does not remove the other participants' servers or their view of the exchange.

Readiness

Usable, with client-dependent setup. Released clients implement OMEMO, while XEP-0384 itself remains marked Experimental. The protocol's standards status and the availability of working applications are different measures.

Limits

Encryption defaults and supported extensions vary by client. Confirm that OMEMO is active instead of treating TLS to a server as end-to-end encryption. XEP-0384 also qualifies its forward-secrecy guarantee: the session key is protected only once both parties complete the key exchange. Device verification and compatibility remain part of the operational burden. This is server-mediated chat, not an off-grid transport; compare Matrix and Delta Chat, or use the messenger comparison.

Primary sources

Page history

Updated
2026-10-25
Origin
Written for ungovernable.tech.
Improve this page
Suggest an edit — issues and pull requests are welcome.