
OMEMO is an extension to the Extensible Messaging and Presence Protocol (
XMPP
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), ...
) for multi-client
end-to-end encryption
End-to-end encryption (E2EE) is a system of communication where only the communicating users can read the messages. In principle, it prevents potential eavesdroppers – including telecom providers, Internet providers, malicious actors, and eve ...
developed by
Andreas Straub
Andreas ( el, Ἀνδρέας) is a name usually given to males in Austria, Greece, Cyprus, Denmark, Armenia, Estonia, Ethiopia, Eritrea, Finland, Flanders, Germany, Norway, Sweden, Switzerland, Romania, the Netherlands, and Indonesia. The name ...
. According to Straub, OMEMO uses the
Double Ratchet Algorithm
In cryptography, the Double Ratchet Algorithm (previously referred to as the Axolotl Ratchet) is a key management algorithm that was developed by Trevor Perrin and Moxie Marlinspike in 2013. It can be used as part of a cryptographic protocol to ...
"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
A recursive acronym is an acronym that refers to itself, and appears most frequently in computer programming. The term was first used in print in 1979 in Douglas Hofstadter's book '' Gödel, Escher, Bach: An Eternal Golden Braid'', in which Hof ...
for "OMEMO Multi-End Message and Object Encryption".
It is an open standard based on the Double Ratchet Algorithm and the
Personal Eventing Protocol
Personal may refer to:
Aspects of persons' respective individualities
* Privacy
* Personality
* Personal, personal advertisement, variety of classified advertisement used to find romance or friendship
Companies
* Personal, Inc., a Washington, ...
(PEP, XEP-0163).
OMEMO offers future and
forward secrecy
In cryptography, forward secrecy (FS), also known as perfect forward secrecy (PFS), is a feature of specific key agreement protocols that gives assurances that session keys will not be compromised even if long-term secrets used in the session key e ...
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.
History
The protocol was developed and first implemented by Andreas Straub as a
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
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
XMPP Standards Foundation (XSF) is the foundation in charge of the standardization of the protocol extensions of XMPP, the open standard of instant messaging and presence of the IETF.
History
The XSF was originally called the Jabber Softwa ...
(XSF) as a proposed
XMPP Extension Protocol (XEP) in the autumn of 2015 and got accepted a
XEP-0384in December 2016.
In July 2016, the
ChatSecure
ChatSecure is a messaging application for iOS which allows OTR and OMEMO encryption for the XMPP protocol. ChatSecure is free and open source software available under the GPL-3.0-or-later license.
ChatSecure has been used by international ...
project announced that they would implement OMEMO in the next releases. ChatSecure v4.0 supports OMEMO and was released on January 17, 2017.
A first experimental release of an OMEMO plugin for the cross-platform XMPP client
Gajim
Gajim is an instant messaging client for the XMPP protocol which uses the GTK toolkit. The name Gajim is a recursive acronym for ''Gajim's a jabber instant messenger''. Gajim runs on Linux, BSD, macOS, and Microsoft Windows. Released under the ...
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.
Client support
Selected clients supporting OMEMO (full list of clients also exists):
BeagleIM(
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
)
*
ChatSecure
ChatSecure is a messaging application for iOS which allows OTR and OMEMO encryption for the XMPP protocol. ChatSecure is free and open source software available under the GPL-3.0-or-later license.
ChatSecure has been used by international ...
(
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
)
*
Conversations (
Android)
*Converse.js (
Browser-based)
* Dino (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
)
*
Gajim
Gajim is an instant messaging client for the XMPP protocol which uses the GTK toolkit. The name Gajim is a recursive acronym for ''Gajim's a jabber instant messenger''. Gajim runs on Linux, BSD, macOS, and Microsoft Windows. Released under the ...
via official plugin (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Be ...
)
*
Monal (
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
)
*
Movim (
Browser-based)
*
Psi via official plugin (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
)
*
Psi+ via official plugin (
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
Haiku
is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 ''On (Japanese prosody), on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, ...
,
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
)
*
libpurple
Pidgin (formerly named Gaim) is a free and open-source software, free and open-source multi-platform instant messaging client, based on a library (computing), library named libpurple that has support for many instant messaging Protocol (comput ...
clients such as
Pidgin
A pidgin , or pidgin language, is a grammatically simplified means of communication that develops between two or more groups of people that do not have a language in common: typically, its vocabulary and grammar are limited and often drawn from s ...
or Finch via experimental plugin
*
Adium
Adium is a free and open source instant messaging client for macOS that supports multiple IM networks, including Google Talk and XMPP. In the past, it has also supported AIM, ICQ, Windows Live Messenger and Yahoo! Messenger. Adium is written usin ...
via an Xtra based on the libpurple plugin
*
Profanity
Profanity, also known as cursing, cussing, swearing, bad language, foul language, obscenities, expletives or vulgarism, is a socially offensive use of language. Accordingly, profanity is language use that is sometimes deemed impolite, ru ...
via experimental plugin (
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Be ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
)
SiskinIM(
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
)
Library support
* Smack supports OMEMO using the two modules smack-omemo and smack-omemo-signal
* XMPPFramework (
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
,
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
,
tvOS
tvOS (formerly known as Apple TV Software) is an operating system developed by Apple Inc. for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. Starting with the second-generatio ...
) supports OMEMO via the OMEMOModule extension when used in conjunction with the SignalProtocol-ObjC library.
References
External links
Homepage(Experimental)
Python library for implementing OMEMO in other clientsOMEMO protocol implementation in COMEMO Top- OMEMO support toplist in instant message clients
{{Cryptographic software
Free security software
Cryptographic protocols
Internet privacy software
Instant messaging
XMPP