OMEMO

OMEMO (XEP-0384) — это расширение для открытого протокола XMPP, которое реализует сквозное шифрование для нескольких клиентов. OMEMO было разработано Андреасом Штраубом (Andreas Straub). OMEMO использует Olm, реализацию протокола Signal, для обмена ключами и для синхронизации сообщений между несколькими клиентами, даже если некоторые из них отключены.[1] Имя OMEMO это рекурсивный акроним для «OMEMO Multi-End Message and Object Encryption» (OMEMO многоконечные сообщения и шифрование объектов). OMEMO кроме того базируется на протоколе Personal Eventing Protocol (PEP, XEP-0163) [2] и предоставляет совершенную прямую секретность (Perfect Forward Secrecy) и правдоподобное отрицание (англ. plausible deniability).

Значение

Самый распространенный способ шифрования для мессенджеров, OTR, тоже поддерживает совершенную прямую секретность и правдоподобное отрицание, но требует чтобы все участники были в сети. OpenPGP поддерживает офлайн сообщения, но не предоставляет прямую конфиденциальность и правдоподобие. Olm и, соответственно, OMEMO поддерживают все три требования.[2]

Кроме того, существующие решения шифрования мессенджеров, такие как OTR, подвергались критике за отсутствие в них интеграции XMPP. Разработчики Empathy, официальный мессенджер оболочки Gnome, указали это как причину из-за которой эта часто желаемая функция[3] не была встроена.[4] Благодаря интеграции в чат протоколы, OMEMO является улучшением в этом отношении.

История

Протокол был разработан и реализован Андреасом Штраубом в 2015 году в рамках инициативы Google Summer of Code. Целью проекта была реализация многоконечного сквозного шифрования на базе Axolotl для Android мессенджера Conversations[5]. Оно было встроено в Conversations осенью 2015 года и одновременно предложено Фонду стандартов XMPP (XMPP Standards Foundation, XSF) в качестве расширения (XMPP Extension Protocol, XEP), которое было принято как XEP-0384 в декабре 2016 года.

С сентября 2016 года спецификация OMEMO больше не использует протокол Signal, а вместо этого применяет собственную реализацию Olm, написанную для сетевого протокола Matrix.[6]

В октябре 2015 года проект ChatSecure объявил, что планирует создать свой шифрующий мессенджер на основе «Conversations» и работать над мессенджер OMEMO для iOS.[7] Эта поддержка OMEMO доступна с января 2017 года.[8]

Первая экспериментальная версия расширения OMEMO для кросс-платформенного клиента XMPP Gajim была опубликована 26 декабря 2015 года.[9]

Поддержка клиентов

Поддержка библиотек

  • Smack предлагает экспериментальную поддержку посредством двух модулей smack-omemo + smack-omemo-signal[18]

Примечания

  1. Andreas Straub OMEMO Encryption (нем.) (25 октября 2015). Дата обращения: 23 ноября 2015. Архивировано 29 января 2016 года. Архивная копия от 29 января 2016 на Wayback Machine
  2. Webseite von OMEMO Архивная копия от 10 апреля 2016 на Wayback Machine, siehe Abschnitt Feature Comparison, abgerufen am 16.
  3. US$ 621.42 bounty on FreedomSponsors: Telepathy should support OTR encryption (нем.). FreedomSponsors. Дата обращения: 19 января 2016. Архивная копия от 25 января 2016 на Wayback Machine
  4. Eric Hopper Empathy and OTR (нем.). Journal of Omnifarious (31 августа 2009). Дата обращения: 18 января 2016. Архивная копия от 24 февраля 2016 на Wayback Machine
  5. https://www.google-melange.com/archive/gsoc/2015/orgs/xmpp. Дата обращения: 20 июня 2018. Архивировано 9 июля 2017 года.
  6. XEP-0384: OMEMO Encryption – Appendix H: Revision History (нем.). Дата обращения: 22 января 2017. Архивная копия от 25 февраля 2017 на Wayback Machine
  7. Chris Ballinger ChatSecure, Conversations and Zom (нем.). ChatSecure (2 октября 2015). Дата обращения: 19 января 2016. Архивная копия от 26 января 2016 на Wayback Machine
  8. ChatSecure v4.0 – OMEMO and Signal Protocol (нем.). chatsecure.org. Дата обращения: 17 января 2017. Архивная копия от 19 июня 2018 на Wayback Machine
  9. 1 2 Omemogajimplugin · Wiki · gajim / gajim-plugins · GitLab. Дата обращения: 19 июня 2018. Архивировано 19 июня 2018 года.
  10. Cryptocat – Security (нем.). crypto.cat. Дата обращения: 22 сентября 2016. Архивировано 7 апреля 2016 года. Архивная копия от 7 апреля 2016 на Wayback Machine
  11. Dino – Modern Jabber/XMPP Client using GTK+/Vala. dino.im. Дата обращения: 19 июня 2018. Архивировано 24 июня 2018 года.
  12. OMEMO for Psi · GitHub. Дата обращения: 12 июля 2019. Архивировано 5 мая 2022 года.
  13. Psi+ snapshots. Архивировано 10 апреля 2025 года.
  14. profanity-omemo-plugin (нем.). Дата обращения: 22 января 2017. Архивная копия от 11 июня 2018 на Wayback Machine
  15. Richard Bayerle. lurch – OMEMO for libpurple. Дата обращения: 14 февраля 2017. Архивировано 18 февраля 2017 года.
  16. mancho / libpurple-omemo-plugin. Дата обращения: 24 марта 2017. Архивировано 28 марта 2017 года.
  17. Zom mobile messenger (нем.). Дата обращения: 19 сентября 2017. Архивная копия от 19 июня 2018 на Wayback Machine
  18. Paul Schaub Ignite Realtime Blog: Smack v4.2 Introduces OME… | Ignite Realtime (нем.). Дата обращения: 11 июля 2017. Архивная копия от 15 июля 2017 на Wayback Machine