
OMEMO è un'estensione dell'Extensible Messaging and Presence Protocol (XMPP) per la crittografia end-to-end multi-client sviluppata da Andreas Straub. Secondo Straub, OMEMO utilizza l'algoritmo Double Ratchet "per fornire una crittografia da multi-end a multi-end, consentendo la sincronizzazione sicura dei messaggi tra più client, anche se alcuni di essi non sono in linea". Il nome "OMEMO" è un acronimo ricorsivo che sta per "OMEMO Multi-End Message and Object Encryption".
È uno standard aperto basato sull'algortimo Double Ratchet e sul Personal Eventing Protocol (PEP, XEP-0163).
OMEMO offre segretezza futura e negabilità con la sincronizzazione dei messaggi e la consegna offline.
Rispetto a OTR, il protocollo OMEMO offre chat crittografate molti-a-molti, accodamento dei messaggi offline, forward secrecy, trasferimento di file, verificabilità e negabilità a scapito di un overhead leggermente più grande delle dimensioni dei messaggi.
Il protocollo è stato sviluppato e implementato per la prima volta da Andreas Straub come progetto al Google Summer of Code del 2015. L'obiettivo del progetto era quello di implementare uno schema di crittografia da multi-end a multi-end basato sull'algoritmo Double Ratchet in un client per Android di messaggistica istantanea basato su XMPP, chiamato Conversations.
È stato introdotto in Conversations e presentato alla XMPP Standards Foundation (XSF) come XMPP Extension Protocol (XEP) proposto nell'autunno 2015 ed è stato accettato come XEP-0384 a dicembre 2016.
Nel luglio 2016, il progetto ChatSecure ha annunciato che avrebbero implementato OMEMO nelle versioni successive. ChatSecure v4.0 supporta OMEMO ed è stato pubblicato il 17 gennaio 2017.
Una prima versione sperimentale di un plugin OMEMO per il client XMPP multipiattaforma Gajim è stata resa disponibile il 26 dicembre 2015.
Nel giugno 2016, la società di consulenza di sicurezza informatica no profit Radically Open Security ha pubblicato un'analisi del protocollo OMEMO.
Client selezionati che supportano OMEMO (esiste anche un elenco completo dei client ):