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

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

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

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

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

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

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

[править | править код]

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

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

Примечания

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