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