Implement OMEMO (Multi-End Message and Object Encryption)
Categories
(Chat Core :: XMPP, enhancement)
Tracking
(Not tracked)
People
(Reporter: nikos, Unassigned)
References
()
Details
Updated•10 years ago
|
Updated•10 years ago
|
Comment 2•9 years ago
|
||
Comment 4•9 years ago
|
||
Comment 6•8 years ago
|
||
Comment 7•8 years ago
|
||
Comment 10•7 years ago
|
||
Comment 11•7 years ago
|
||
Updated•6 years ago
|
Comment 12•6 years ago
|
||
Have you any news about XEP-0384 OMEMO integration?
Comment 13•4 years ago
|
||
There are still existing interested users in support forums for this feature. Any plans for this feature after the latest improvements for Thunderbirds chat features?
| Comment hidden (off-topic) |
| Comment hidden (off-topic) |
Comment 16•4 years ago
|
||
(In reply to Alex Ihrig [:Thunderbird_Mail_DE] from comment #13)
There are still existing interested users in support forums for this feature. Any plans for this feature after the latest improvements for Thunderbirds chat features?
There are no concrete plans, but much of the work happening in bug 1699091 will lay the foundation where it is possible to do protocol-level encryption. Once that's complete it should be much easier to implement this.
Comment 17•4 years ago
|
||
There are no concrete plans, but much of the work happening in bug 1699091 will lay the foundation where
The bug you mentioned is - if I understand correctly - about Matrix, but this discussion is about XMPP. Or have I misunderstood something?
Comment 18•4 years ago
|
||
(In reply to Gerhard from comment #17)
There are no concrete plans, but much of the work happening in bug 1699091 will lay the foundation where
The bug you mentioned is - if I understand correctly - about Matrix, but this discussion is about XMPP. Or have I misunderstood something?
It is about Matrix, the dependent bugs of bug 1699091 start adding support for doing protocol-specific encryption (as opposed to OTR, which is implemented on top of the protocol, not at the protocol layer). I'm confident that after bug 1699091 is done we should be able to added encryption as part of XMPP (or other protocols) fairly easily.
Comment 19•4 years ago
|
||
Thank you for the information.
"By the way": What setting do I have to make so that new comments appear at the top of the list?
Comment 20•4 years ago
|
||
(In reply to Gerhard from comment #17)
There are no concrete plans, but much of the work happening in bug 1699091 will lay the foundation where
The bug you mentioned is - if I understand correctly - about Matrix, but this discussion is about XMPP. Or have I misunderstood something?
Both Matrix and OMEMO use the Double Ratchet protocol with Curve25519-HMAC-AES and XMPP is taking queues from Matrix on the more advanced cross-signing part of the protocol (they both already use Ed25519 for signatures), you can see them plan out the future signing scheme based on Matrix here: https://www.youtube.com/watch?v=oc5844dyrsc - Cryptographic Identity: Conquering the Fingerprint Chaos from XMPP Standards Foundation. Seems like 90% of the core code would be the same.
Comment 21•4 years ago
|
||
(In reply to Caleb from comment #20)
Both Matrix and OMEMO use the Double Ratchet protocol with Curve25519-HMAC-AES and XMPP is taking queues from Matrix on the more advanced cross-signing part of the protocol (they both already use Ed25519 for signatures), you can see them plan out the future signing scheme based on Matrix here: https://www.youtube.com/watch?v=oc5844dyrsc - Cryptographic Identity: Conquering the Fingerprint Chaos from XMPP Standards Foundation. Seems like 90% of the core code would be the same.
Just to manage expectations. The main benefit for XMPP from the Matrix encryption work is adding the UI parts that allow a protocol to offer its own encryption. The actual encryption implementation for Matrix is unlikely to be of much help, unless OMEMO also uses libolm, in which case we would already have that in our tree. But that's about it, most of the actual encryption backend isn't portable, while the big step forward is having a frontend for encryption that OMEMO could be built below.
Updated•3 years ago
|
Comment 22•3 years ago
|
||
Is Anyone interested in developing this? I just added $50 to the bounty, which I know is nothing if you have the skills to implement this feature, but I would sure love to have Thunderbird be my one-stop messaging, email, calendar application for desktop. Especially since I am getting all my SMS messages in Thunderbird over XMPP to cell bridge via JMP.chat. It sure would be nice to have OMEMO in Thunderbird for my contacts that actually use XMPP, rather than receiving a scrambled message, bc I have OMEMO enabled for them in Conversations, Snikket, Cheogram, BeagleIM, and Gajim and they have it enabled for me.
| Comment hidden (advocacy) |
Comment 24•1 year ago
|
||
This is still an in-demand feature request: https://connect.mozilla.org/t5/ideas/omemo-encryption-for-xmpp-messages/idi-p/31548
Comment 25•1 year ago
|
||
@msdosfx, where is the bounty? Iβd love to add to it.
I have recently been struck by this issue too and would love to support it to have it implemented ASAP.
Comment 26•1 year ago
|
||
(In reply to matija from comment #25)
@msdosfx, where is the bounty? Iβd love to add to it.
I have recently been struck by this issue too and would love to support it to have it implemented ASAP.
I can't remember. I thought the bounty was here, or at "Are We OMEMO yet?" https://omemo.top/ but I don't see it. maybe it was on bountysource. If I find it, I will post.
| Comment hidden (me-too) |
Comment 28•2 months ago
|
||
(In reply to msdosfx from comment #26)
(In reply to matija from comment #25)
@msdosfx, where is the bounty? Iβd love to add to it.
I have recently been struck by this issue too and would love to support it to have it implemented ASAP.
I can't remember. I thought the bounty was here, or at "Are We OMEMO yet?" https://omemo.top/ but I don't see it. maybe it was on bountysource. If I find it, I will post.
A good many clients have implemented OMEMO per https://omemo.top/. Is there something that can be levered from these?
I was unable to find reference anywhere to a bounty. And bountysource is gone.
Perhaps someone could submit a pull request at https://omemo.top/#have-something-to-add--update to change the Thunderbird doc to https://developer.thunderbird.net/thunderbird-development/codebase-overview/chat ?
Comment 29•2 months ago
|
||
(In reply to Wayne Mery (:wsmwk) from comment #28)
A good many clients have implemented OMEMO per https://omemo.top/. Is there something that can be levered from these?
It has been a while since I looked, but several years ago I didn't really find any OMEMO libraries which were separate from an application in a language we could leverage (which would probably be JavaScript/C/C++/Rust) in an appropriate license (MPL/MIT/Apache/LGPL). If folks have any suggestions then that would be appreciated.
Comment 30•2 months ago
|
||
(In reply to INTP from comment #24)
This is still an in-demand feature request: https://connect.mozilla.org/t5/ideas/omemo-encryption-for-xmpp-messages/idi-p/31548
Indeed the response at https://connect.mozilla.org/t5/ideas/omemo-encryption-for-xmpp-messages/idi-p/31548 is significant, given the modest size of the chat user population per https://stats.thunderbird.net/#telemetry (though the data there seems incomplete). And OMEMO is important for XMPP given the state of Bug 1909445 - Consider to turn off OTR chat encryption in Thunderbird - because OTRv4 is not making progress. However, OMEMO is not on the Thunderbird Desktop developer roadmap for 2026. So we'd likely be looking for volunteers to implement OMEMO, or help pave the way
Comment 31•2 months ago
|
||
Some potentially useful libraries I've found over time:
- https://github.com/gkdr/libomemo (MIT, C) - 0.3.0 only
- https://github.com/dino/libomemo-c/ (GPL-3.0, C) - 0.3.0 and 0.4.0
- https://github.com/conversejs/libomemo.js/ (GPL-3.0, JavaScript) - 0.8.3
- https://github.com/telldus/xmppjs-client-plugins (ISC, JavaScript) - ?
From what I can tell from https://wiki.xmpp.org/web/Tech_pages/OMEMO, we would ideally want to support both siacs as well as the newer OMEMO:1/OMEMO:2 protocols, but I haven't found a good source for compatibility.
tl;dr I haven't found any libraries which suit our needs.
Comment 32•2 months ago
|
||
OMEMO should be bit-compatible with libsignal and in turn libolm and vodozemac - especially in vodozemac's interolm mode: https://github.com/matrix-org/vodozemac/pull/124
Comment 33•2 months ago
|
||
(In reply to Matthew Hodgson from comment #32)
OMEMO should be bit-compatible with libsignal and in turn libolm and vodozemac - especially in vodozemac's interolm mode: https://github.com/matrix-org/vodozemac/pull/124
I had talked to Denis (one of the vodozemac) maintainers about this and he said heβd maybe be up for including it after the Signal pieces were merged. I think it just has slightly different serialization/constants from Signal. Not sure if that will happen or not though.
Comment 34•2 months ago
|
||
https://codeberg.org/mellium/omemo but has BSD2 license
Comment 35•2 months ago
|
||
There's a Rust library that is licensed under the MPL: https://xmpp.rs
Comment 36•2 months ago
|
||
(In reply to RΓ’u Cao from comment #35)
There's a Rust library that is licensed under the MPL: https://xmpp.rs
Never mind, I missed that there's no complete and modern OMEMO implementation included.
Description
•