この項目「OMEMO」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版 "OMEMO" 2025年4月10日 (木) 06:20 (UTC)) 修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2025年4月) |

OMEMOとは、Andreas Straubによって開発された複数クライアントエンドツーエンド暗号化のためのExtensible Messaging and Presence Protocol(XMPP)の拡張である。OMEMOはDouble Ratchetアルゴリズムを使用しており、Straubは「複数の末端から複数の末端への暗号化を提供し、一部のクライアントがオフラインだとしても複数のクライアント間でメッセージを安全に同期できるようにします」と述べている。「OMEMO」という名前は「OMEMO Multi-End Message and Object Encryption」の再帰的頭字語である。OMEMOはDouble RatchetアルゴリズムとPersonal Eventing Protocol(PEP、XEP-0163)に基づいたオープン標準である。OMEMOはメッセージ同期とオフライン配信で後方秘匿性、前方秘匿性、否認可能性を提供する。
OTRと比較して、OMEMOプロトコルは複数対複数の暗号化チャット、オフラインメッセージの順番待ち、前方秘匿性、ファイル転送、検証可能性と否認可能性を提供するが、メッセージの大きさの計算量がわずかに大きくなる。
OMEMOは2015年のGoogle Summer of CodeでAndreas Straubによって開発され初めて実装された。プロジェクトの目標はConversationsと呼ばれるAndroidのXMPPを基にしたインスタントメッセンジャーにDouble Ratchetアルゴリズムを基にした複数の末端から複数の末端への暗号化方法を実装することであった。OMEMOはConversationsに導入され、2015年秋にXMPP Extension Protocol(XEP)の提案としてXMPP Standards Foundation(XSF)に提出され、2016年12月にXEP-0384として承認された。
2016年7月、ChatSecureプロジェクトは次のリリースでOMEMOを実装すると発表した。OMEMOに対応したChatSecure v4.0は2017年1月17日に公開された。
クロスプラットフォームXMPPクライアントのGajim向けのOMEMOプラグインの最初の実験的リリースは2015年12月26日に公開された。
2016年6月、非営利コンピュータセキュリティコンサルティングファームのRadically Open SecurityがOMEMOプロトコルの分析結果を公開した。
OMEMOに対応するクライアントの例: