OMEMO

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".[1] 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).[2] OMEMO offers future and forward secrecy and deniability with message synchronization and offline delivery.

## Contents

* 1 Features
* 2 History
* 3 Client support
* 4 Library support
* 5 References
* 6 External links

## 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.[3]

## 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.[1]

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.[4][5]

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

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

## Client support

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

* BeagleIM (macOS)[9]
* ChatSecure (iOS)[10]
* Conversations (Android)
* Converse.js (Browser-based)[11]
* Dino (Linux, macOS)[12]
* Gajim (Linux, Windows, BSD)[13][14]
* Kaidan (Linux)[15]
* Movim (Browser-based)[16]
* Psi via official plugin (Linux, Windows, macOS, Haiku, FreeBSD)[17]
* libpurple clients such as Pidgin or Finch via experimental plugin [18]
* Adium via an Xtra based on the libpurple plugin[19]
* Profanity via experimental plugin (BSD, Linux, macOS, Windows)[20]
* SiskinIM (iOS)[21]

## Library support

* Smack supports OMEMO using the two modules smack-omemo and smack-omemo-signal[22]
* XMPPFramework (macOS, iOS, tvOS) [23] supports OMEMO via the OMEMOModule extension [24] when used in conjunction with the SignalProtocol-ObjC library.[25]

## References

1. ↑ 1.0 1.1 "[Standards] NEW: XEP-0384 (OMEMO Encryption)". 2016-12-07. https://mail.jabber.org/pipermail/standards/2016-December/031712.html.
2. ↑ Daniel Gultsch. "OMEMO Multi-End Message and Object Encryption". https://conversations.im/omemo/.
3. ↑ "OMEMO Multi-End Message and Object Encryption" (in en). https://conversations.im/omemo/.
4. ↑ "ChatSecure iOS v3.2.3 - XMPP Push". 2016-07-25. https://chatsecure.org/blog/chatsecure-v323-xmpp-push/.
5. ↑ "ChatSecure v4.0 - OMEMO and Signal Protocol". 2017-01-17. https://chatsecure.org/blog/chatsecure-v4-released/.
6. ↑ Bahtiar Gadimov (2015-12-26). "Initial OMEMO commit". https://dev.gajim.org/gajim/gajim-plugins/commit/67d6ed441dc059a8b9a74dc3840711b2c8322d4e.
7. ↑ Radically Open Security (2016-06-01). "OMEMO: Cryptographic Analysis Report" (in en). Radically Open Security. https://conversations.im/omemo/audit.pdf.
8. ↑ "Are we OMEMO yet?" (in en-US). http://omemo.top/.
9. ↑ "Beagle OMEMO support". July 7, 2019. https://tigase.org/blog/beagleim-and-siskin-just-got-oemo-support/.
10. ↑ "ChatSecure v4.0 - OMEMO and Signal Protocol". 17 January 2017. https://chatsecure.org/blog/chatsecure-v4-released/.
11. ↑ "XEP-0384: OMEMO Encryption · Issue #497 · conversejs/converse.js" (in en). https://github.com/conversejs/converse.js/issues/497.
12. ↑ "Dino - Modern Jabber/XMPP Client using GTK+/Vala". https://dino.im.
13. ↑ Bahtiar Gadimov. "Omemogajimplugin · Wiki · gajim / gajim-plugins · GitLab". https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin.
14. ↑ Developers, Gajim. "Gajim 1.8.0" (in en). https://gajim.org/post/2023-05-27-gajim-1.8.0-released/.
15. ↑ "Kaidan 0.9: End-to-End Encryption & XMPP Providers". 2023-05-05. https://www.kaidan.im/2023/05/05/kaidan-0.9.0/.
16. ↑ "End to end encryption in Movim - OMEMO is (finally) there!". https://mov.im/?node/pubsub.movim.eu/Movim/end-to-end-encryption-in-movim-omemo-is-finally-there-yudZPP/.
17. ↑ Vyacheslav Karpukhin. "OMEMO for Psi · GitHub". https://github.com/psi-im/plugins/tree/master/generic/omemoplugin.
18. ↑ Richard Bayerle. "lurch - OMEMO for libpurple". https://github.com/gkdr/lurch.
19. ↑ Olivier Mehani. "Lurch4Adium - OMEMO Xtra for Adium". https://github.com/shtrom/Lurch4Adium.
20. ↑ René Calles. "profanity-omemo-plugin: A Python plugin to use (axolotl / Signal Protocol) encryption for the profanity XMPP messenger". https://github.com/ReneVolution/profanity-omemo-plugin.
21. ↑ "BeagleIM and SiskinIM just got OMEMO support". https://tigase.net/blog-entry/beagleim-and-siskinim-just-got-omemo-support.
22. ↑ Schaub, Paul (6 June 2017). "Ignite Realtime Blog: Smack v4.2 Introduces OME... | Ignite Realtime" (in en). https://community.igniterealtime.org/blogs/ignite/2017/06/06/smack-v42-introduces-omemo-support.
23. ↑ "Robbiehanson/XMPPFramework". 26 October 2021. https://github.com/robbiehanson/XMPPFramework.
24. ↑ "Robbiehanson/XMPPFramework". 26 October 2021. https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/OMEMO/OMEMOModule.h.
25. ↑ "SignalProtocolObjC". 30 January 2021. https://github.com/ChatSecure/SignalProtocol-ObjC.

## External links

* OMEMO Top \- OMEMO support toplist in instant message clients
* XEP-0384: implementations list of messengers and libraries that supports the OMEMO.
* XEP-0384: OMEMO Encryption specification
* Python library for implementing OMEMO in other clients
* OMEMO protocol implementation in C

* v
* t
* e

Cryptographic software

Email clients|

* Apple Mail
* Autocrypt
* Claws Mail
* Enigmail
* GPG (Gpg4win)
* Kontact
* Outlook
* p≡p
* PGP
* Sylpheed
* Thunderbird

Secure
communication|

| OTR|

* Adium
* BitlBee
* Centericq
* ChatSecure
* climm
* Jitsi
* Kopete
* MCabber
* Profanity

|

SSH|

* Dropbear
* lsh
* OpenSSH
* PuTTY
* SecureCRT
* WinSCP
* wolfSSH

TLS & SSL|

* Bouncy Castle
* BoringSSL
* Botan
* cryptlib
* GnuTLS
* JSSE
* LibreSSL
* MatrixSSL
* NSS
* OpenSSL
* mbed TLS
* RSA BSAFE
* SChannel
* SSLeay
* stunnel
* wolfSSL

VPN|

* Check Point VPN-1
* Hamachi
* Openswan
* OpenVPN
* SoftEther VPN
* strongSwan
* Tinc
* WireGuard

ZRTP|

* CSipSimple
* Jitsi
* Linphone
* Jami
* Zfone

P2P|

* Bitmessage
* RetroShare
* Tox

DRA|

* Matrix
* OMEMO
* Conversations
* Cryptocat
* ChatSecure
* Proteus
* Signal Protocol
* Google Allo
* Facebook Messenger
* Signal
* TextSecure
* WhatsApp

Disk encryption
(Comparison)|

* BestCrypt
* BitLocker
* CrossCrypt
* Cryptoloop
* DiskCryptor
* dm-crypt
* DriveSentry
* E4M
* eCryptfs
* FileVault
* FreeOTFE
* GBDE
* geli
* LUKS
* PGPDisk
* Private Disk
* Scramdisk
* Sentry 2020
* TrueCrypt
* History
* VeraCrypt

Anonymity|

* GNUnet
* I2P
* Java Anon Proxy
* Tor
* Vidalia
* RetroShare
* Ricochet
* Wickr

File systems (List)|

* EncFS
* EFS
* eCryptfs
* LUKS
* PEFS
* Rubberhose
* StegFS
* Tahoe-LAFS

Service providers|

* Freenet
* Tresorit
* Wuala

Educational|

* CrypTool

Related topics|

* Outline of cryptography
* Timeline of cryptography
* Hash functions
* Cryptographic hash function
* List of hash functions
* S/MIME

* Category
* Commons

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/OMEMO. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=OMEMO&oldid=4344589"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template