Just to be sure.

Is it because of the forward secrecy property of OMEMO that if I first login to my XMPP account on one client and discuss with somebody with messages encrypted with OMEMO and then login on another app, all previous messages aren't readable?

If I want to see all messages on all my XMPP clients I need to be logged in at the same time?

Or do I need to be at least once logged in some client in order to have my OMEMO keys assigned to my account?

You need to be at least once logged in so that all clients publish their device keys on the server.

If you start chatting with client A and after a day start using client B too then client B won’t see the old message history.

On the other hand if you start using client A and B but then B is offline (e.g. closed your laptop) it will see the message history when you turn on the laptop.

Of course your contacts can manually disable device keys (effectively clients) and there are many edge cases but in general this works as you would expect. With OTR you had to be online to chat encrypted and it worked with only one client (no shared history). OMEMO fixed all these issues (works when devices are offline and is multi-device).


@wiktor Thank you for explaining!
It is now clear to me how OMEMO works.
It would be nice to have more explaining resources for newbies about XMPP stuff.

Sign in to participate in the conversation
Qowala's Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!