OMEMO is an extension to the Extensible Messaging and Presence Protocol (XMPP, "Jabber") 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.
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.
In July 2016, the ChatSecure project announced that they would implement OMEMO in the next releases.
A first experimental release of a OMEMO plugin for the cross-platform XMPP client Gajim was made available on December 26, 2015.
- Andreas Straub (2015-10-25). "OMEMO Encryption". XMPP Standards Foundation website. Retrieved 2015-11-23.
- Daniel Gultsch. "OMEMO Multi-End Message and Object Encryption". Retrieved 2015-11-23.
- Daniel Gultsch (2 September 2015). "OMEMO Encrypted Jingle File Transfer". XMPP Standards Foundation website. Retrieved 16 January 2016.
- "ChatSecure iOS v3.2.3 - XMPP Push". 2016-07-25. Retrieved 2016-09-07.
- Bahtiar Gadimov (2015-12-26). "Release 0.1 – kalkin/gajim-omemo". GitHub. Retrieved 2016-01-19.
- OMEMO: Cryptographic Analysis Report. June 2016
- "Cryptocat - Security". crypto.cat. Retrieved 2016-05-24.
- Bahtiar Gadimov; et al. "Omemogajimplugin · Wiki · gajim / gajim-plugins · GitLab". Retrieved 2016-12-04.