OMEMO — це розширення до відкритого протоколу XMPP, яке реалізує шифрування для декількох клієнтів, розроблене Андреасом Страубом (Andreas Straub). Згідно зі Страубом, OMEMO використовує алгоритм, який «забезпечує шифрування від кількох адресантів до кількох отримувачів, що дозволяє безпечно синхронізувати повідомлення між кількома клієнтами, навіть якщо деякі з них перебувають поза мережею».[1] Назва «OMEMO» є рекурсивним акронімом «OMEMO Multi-End Message and Object Encryption» («OMEMO шифрування повідомлень і об'єктів між кількома учасниками»). Це відкритий стандарт, заснований на алгоритмі «Double Ratchet Algorithm» та розширенні XEP-0163 («PEP»).[2] OMEMO поєднує майбутню та пряму секретність і можливість заперечення авторства з синхронізацією повідомлень та доставкою повідомлень поза мережею.
Наявні рішення для шифрування повідомлень, такі як OTR, відомі браком інтеграції з протоколом обміну повідомлень. Розробники Empathy, офіційної програми для обміну повідомленнями для GNOME, зазначали цю причину при обґрунтуванні відмови реалізувати[3] OTR або будь-яке інше рішення для шифрування повідомлень. OMEMO пропонує рішення цієї проблеми, оскільки він інтегрований із протоколом обміну повідомленнями.[4][5]
OMEMO також відзначено як такий, що надає підтримку шифруванню між декількома пристроями одночасно в децентралізованій (тобто федеративній) платформі обміну повідомленнями (XMPP).[6]
Андреас Страуб вперше розробив та реалізував цей протокол як проєкт Google Summer of Code у 2015 році. Метою проєкту було реалізувати схему шифрування повідомлень із кількома адресантами і кількома отримувачами, засновану на алгоритмі «double-ratchet», в програмі для обміну повідомленнями на платформі Android для протоколу XMPP, яка отримала назву «Conversations» («Розмови»). Схема була подана до організації зі стандартизації XMPP Standards Foundation (XSF) як запропоноване розширення до XMPP (XEP) восени 2015 року.[1][7]
У жовтні 2015, проєкт ChatSecure оголосив про перенесення своєї програми обміну повідомленнями на ядро Conversations і роботу над підтримкою OMEMO в iOS.[8]
Перший експериментальний випуск розширення OMEMO для XMPP клієнта Gajim став доступним 26 грудня 2015 року.[9]