Jump to content

OMEMO: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
JCBrand (talk | contribs)
MOS:HEAD
Line 17: Line 17:
In June 2016, the non-profit computer security consultancy firm Radically Open Security published an analysis of the OMEMO protocol.<ref>[https://conversations.im/omemo/audit.pdf OMEMO: Cryptographic Analysis Report]. June 2016</ref>
In June 2016, the non-profit computer security consultancy firm Radically Open Security published an analysis of the OMEMO protocol.<ref>[https://conversations.im/omemo/audit.pdf OMEMO: Cryptographic Analysis Report]. June 2016</ref>


== Client Support ==
== Client support ==
<!-- PLEASE RESPECT ALPHABETICAL ORDER -->
<!-- PLEASE RESPECT ALPHABETICAL ORDER -->
Selected clients supporting OMEMO (full list of clients also exists<ref>{{Cite web|url=http://omemo.top/|title=Are we OMEMO yet?|website=Are we OMEMO yet?|language=en-US|access-date=2019-01-22}}</ref>):
Selected clients supporting OMEMO (full list of clients also exists<ref>{{Cite web|url=http://omemo.top/|title=Are we OMEMO yet?|website=Are we OMEMO yet?|language=en-US|access-date=2019-01-22}}</ref>):
Line 28: Line 28:
|website=dino.im|access-date=2017-11-06}}</ref>
|website=dino.im|access-date=2017-11-06}}</ref>
* [[Gajim]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[Berkeley Software Distribution|BSD]])<ref name="gajim-omemo"/>
* [[Gajim]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[Berkeley Software Distribution|BSD]])<ref name="gajim-omemo"/>
* [[Psi_(instant_messaging_client)|Psi]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[macOS]])<ref name="psi-omemo"/>
* [[Psi (instant messaging client)|Psi]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[macOS]])<ref name="psi-omemo"/>
* [[Psi_(instant_messaging_client)#History|Psi+]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[macOS]], [[Haiku_(operating_system)|Haiku]], [[FreeBSD]])<ref name="psi-plus-omemo"/>
* [[Psi (instant messaging client)#History|Psi+]] via official plugin ([[Linux]], [[Microsoft Windows|Windows]], [[macOS]], [[Haiku_(operating_system)|Haiku]], [[FreeBSD]])<ref name="psi-plus-omemo"/>
* [[libpurple]] clients such as [[Pidgin (software)|Pidgin]] or Finch via experimental plugin <ref name="lurch"/>
* [[libpurple]] clients such as [[Pidgin (software)|Pidgin]] or Finch via experimental plugin <ref name="lurch"/>
* [[Adium]] via an Xtra based on the libpurple plugin<ref name="Lurch4Adium"/>
* [[Adium]] via an Xtra based on the libpurple plugin<ref name="Lurch4Adium"/>
Line 35: Line 35:
* [https://siskin.im/ SiskinIM] ([[iOS]])<ref name="beagle-siskin-announcement"/>
* [https://siskin.im/ SiskinIM] ([[iOS]])<ref name="beagle-siskin-announcement"/>


== Library Support ==
== Library support ==
* Smack supports OMEMO using the two modules smack-omemo and smack-omemo-signal<ref>{{Cite web|url=https://community.igniterealtime.org/blogs/ignite/2017/06/06/smack-v42-introduces-omemo-support|title=Ignite Realtime Blog: Smack v4.2 Introduces OME... {{!}} Ignite Realtime|last=Schaub|first=Paul|website=community.igniterealtime.org|language=en|access-date=2017-07-11}}</ref>
* Smack supports OMEMO using the two modules smack-omemo and smack-omemo-signal<ref>{{Cite web|url=https://community.igniterealtime.org/blogs/ignite/2017/06/06/smack-v42-introduces-omemo-support|title=Ignite Realtime Blog: Smack v4.2 Introduces OME... {{!}} Ignite Realtime|last=Schaub|first=Paul|website=community.igniterealtime.org|language=en|access-date=2017-07-11}}</ref>
* XMPPFramework ([[macOS]], [[iOS]], [[tvOS]]) <ref>https://github.com/robbiehanson/XMPPFramework</ref> supports OMEMO via the OMEMOModule extension <ref>https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/OMEMO/OMEMOModule.h</ref> when used in conjunction with the SignalProtocol-ObjC library <ref>https://github.com/ChatSecure/SignalProtocol-ObjC</ref>.
* XMPPFramework ([[macOS]], [[iOS]], [[tvOS]]) <ref>https://github.com/robbiehanson/XMPPFramework</ref> supports OMEMO via the OMEMOModule extension <ref>https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/OMEMO/OMEMOModule.h</ref> when used in conjunction with the SignalProtocol-ObjC library <ref>https://github.com/ChatSecure/SignalProtocol-ObjC</ref>.

Revision as of 15:12, 4 February 2020

Logo of OMEMO

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".[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.

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]):

Library support

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

References

  1. ^ a b "[Standards] NEW: XEP-0384 (OMEMO Encryption)". 2016-12-07. Retrieved 2016-12-23.
  2. ^ Daniel Gultsch. "OMEMO Multi-End Message and Object Encryption". Retrieved 2015-11-23.
  3. ^ "OMEMO Multi-End Message and Object Encryption". conversations.im. Retrieved 2019-01-22.
  4. ^ "ChatSecure iOS v3.2.3 - XMPP Push". 2016-07-25. Retrieved 2016-09-07.
  5. ^ "ChatSecure v4.0 - OMEMO and Signal Protocol". 2017-01-17. Retrieved 2017-02-07.
  6. ^ Bahtiar Gadimov (2015-12-26). "Initial OMEMO commit". dev.gajim.org. Retrieved 2017-09-08.
  7. ^ OMEMO: Cryptographic Analysis Report. June 2016
  8. ^ "Are we OMEMO yet?". Are we OMEMO yet?. Retrieved 2019-01-22.
  9. ^ a b "BeagleIM and SiskinIM just got OMEMO support". tigase.net. Retrieved 2019-06-07.
  10. ^ "ChatSecure v4.0 - OMEMO and Signal Protocol". chatsecure.org. Retrieved 2017-01-17.
  11. ^ "XEP-0384: OMEMO Encryption · Issue #497 · conversejs/converse.js". GitHub. Retrieved 2019-11-20.
  12. ^ "Dino - Modern Jabber/XMPP Client using GTK+/Vala". dino.im. Retrieved 2017-11-06.
  13. ^ Bahtiar Gadimov; et al. "Omemogajimplugin · Wiki · gajim / gajim-plugins · GitLab". Retrieved 2016-12-04.
  14. ^ Vyacheslav Karpukhin. "OMEMO for Psi · GitHub". Retrieved 2018-03-04.
  15. ^ Vyacheslav Karpukhin. "Psi+ snapshots". Retrieved 2018-03-04.
  16. ^ Richard Bayerle. "lurch - OMEMO for libpurple". Retrieved 2017-02-12.
  17. ^ Olivier Mehani. "Lurch4Adium - OMEMO Xtra for Adium". Retrieved 2017-06-08.
  18. ^ René Calles. "profanity-omemo-plugin: A Python plugin to use (axolotl / Signal Protocol) encryption for the profanity XMPP messenger". Retrieved 2017-01-10.
  19. ^ Schaub, Paul. "Ignite Realtime Blog: Smack v4.2 Introduces OME... | Ignite Realtime". community.igniterealtime.org. Retrieved 2017-07-11.
  20. ^ https://github.com/robbiehanson/XMPPFramework
  21. ^ https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/OMEMO/OMEMOModule.h
  22. ^ https://github.com/ChatSecure/SignalProtocol-ObjC