Hi,
I'm curious which server-side support for OMEMO you have in mind. Care to elaborate?
So there are a few things about the PEP-based approach that are not ideal. The devicelist contention that the proposed change aims to address is really only one example of several scenarios where the client has to carefully manage the data in PEP by itself because the server doesn't act as anything more than a key/value store for our purposes.
It would be cool if we could have the server enforce some of the business logic for us, so that the client doesn't have to. Basically, the server would not only manage the devicelist more intelligently but also actually act like a X3DH key server[1].
Mostly, this would just entail offering more "atomic" primitives than is possible with PEP, e.g. publishing prekeys individually rather than having to overwrite the entire bundle. It would also only hand out any prekey once, so no two initiators could end up using the same prekey to build a session with the responder. The server could also assign device ids to new clients to prevent collisions there. Having some server-side constraints like this in place just makes life easier for the clients.
Some details would still have to be figured out, like whether we want the server to require some kind of proof from the client that it's actually "allowed" to publish/modify the data (signatures with the identity key or something?), or how to handle removing stale devices. But in essence, server-assisted OMEMO wouldn't look all that different from what we have currently at all.
So as you can see, this wouldn't actually be a very complicated thing to implement, it's really just a few different IQ get/sets and some simple constraint checks. The bigger issue is going to be deployment, which is of course why we went with PEP in the first place...
[1] https://whispersystems.org/docs/specifications/x3dh/#roles _______________________________________________ Standards mailing list Info: https://mail.jabber.org/mailman/listinfo/standards Unsubscribe: [email protected] _______________________________________________
