OMEMO explained

OMEMO is an extension to the Extensible Messaging and Presence Protocol (XMPP) for multi-client end-to-end encryption developed by Andreas Straub. According to Straub, OMEMO uses the Double Ratchet Algorithm "to provide multi-end to multi-end encryption, allowing messages to be synchronized securely across multiple clients, even if some of them are offline". The name "OMEMO" is a recursive acronym for "OMEMO Multi-End Message and Object Encryption".It is an open standard based on the Double Ratchet Algorithm and the Personal Eventing Protocol (PEP, XEP-0163).OMEMO offers future and forward secrecy and deniability with message synchronization and offline delivery.

Features

In comparison with OTR, the OMEMO protocol offers many-to-many encrypted chat, offline messages queuing, forward secrecy, file transfer, verifiability and deniability at the cost of slightly larger message size overhead.[1]

History

The protocol was developed and first implemented by Andreas Straub as a Google Summer of Code project in 2015. The project's goal was to implement a double-ratchet-based multi-end to multi-end encryption scheme into an Android XMPP-based instant messaging client called Conversations.It was introduced in Conversations and submitted to the XMPP Standards Foundation (XSF) as a proposed XMPP Extension Protocol (XEP) in the autumn of 2015 and got accepted as XEP-0384 in December 2016.

In July 2016, the ChatSecure project announced that they would implement OMEMO in the next releases. ChatSecure v4.0 supports OMEMO and was released on January 17, 2017.[2] [3]

A first experimental release of an OMEMO plugin for the cross-platform XMPP client Gajim was made available on December 26, 2015.

In June 2016, the non-profit computer security consultancy firm Radically Open Security published an analysis of the OMEMO protocol.[4]

Client support

Selected clients supporting OMEMO (full list of clients also exists[5]):

Library support

Notes and References

  1. Web site: OMEMO Multi-End Message and Object Encryption. conversations.im. en. 2019-01-22.
  2. Web site: ChatSecure iOS v3.2.3 - XMPP Push. 2016-07-25. 2016-09-07.
  3. Web site: ChatSecure v4.0 - OMEMO and Signal Protocol. 2017-01-17. 2017-02-07.
  4. https://conversations.im/omemo/audit.pdf OMEMO: Cryptographic Analysis Report
  5. Web site: Are we OMEMO yet?. Are we OMEMO yet?. en-US. 2019-01-22.
  6. Web site: Beagle OMEMO support. July 7, 2019 .
  7. Web site: ChatSecure v4.0 - OMEMO and Signal Protocol. chatsecure.org. 17 January 2017 . 2017-01-17.
  8. Web site: XEP-0384: OMEMO Encryption · Issue #497 · conversejs/converse.js. GitHub. en. 2019-11-20.
  9. Web site: Dino - Modern Jabber/XMPP Client using GTK+/Vala. dino.im. 2017-11-06.
  10. Web site: Developers . Gajim . Gajim 1.8.0 . 2023-06-15 . Gajim . en.
  11. Web site: Kaidan 0.9: End-to-End Encryption & XMPP Providers . 2023-05-05 . 2023-10-20 . Kaidan.
  12. Web site: End to end encryption in Movim - OMEMO is (finally) there!. mov.im. 2021-12-15.
  13. Web site: BeagleIM and SiskinIM just got OMEMO support. tigase.net. 2019-06-07.
  14. Web site: Ignite Realtime Blog: Smack v4.2 Introduces OME... Ignite Realtime. Schaub. Paul. community.igniterealtime.org. 6 June 2017. en. 2017-07-11.
  15. Web site: Robbiehanson/XMPPFramework. . 26 October 2021.
  16. Web site: Robbiehanson/XMPPFramework. . 26 October 2021.
  17. Web site: SignalProtocolObjC. . 30 January 2021.