コンテンツにスキップ

OMEMO

出典: フリー百科事典『ウィキペディア(Wikipedia)』
OMEMOのロゴ

OMEMOとは、Andreas Straubによって開発された複数クライアントエンドツーエンド暗号化のためのExtensible Messaging and Presence Protocol(XMPP)の拡張である。OMEMOはDouble Ratchetアルゴリズムを使用しており、Straubは「複数の末端から複数の末端への暗号化を提供し、一部のクライアントがオフラインだとしても複数のクライアント間でメッセージを安全に同期できるようにします」と述べている[1]。「OMEMO」という名前は「OMEMO Multi-End Message and Object Encryption」の再帰的頭字語である。OMEMOはDouble RatchetアルゴリズムとPersonal Eventing Protocol(PEP、XEP-0163)に基づいたオープン標準である[2]。OMEMOはメッセージ同期とオフライン配信で後方秘匿性、前方秘匿性、否認可能性を提供する。

特徴

[編集]

OTR英語版と比較して、OMEMOプロトコルは複数対複数の暗号化チャット、オフラインメッセージの順番待ち、前方秘匿性、ファイル転送、検証可能性と否認可能性を提供するが、メッセージの大きさの計算量がわずかに大きくなる[3]

歴史

[編集]

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として承認された[1]

2016年7月、ChatSecure英語版プロジェクトは次のリリースでOMEMOを実装すると発表した。OMEMOに対応したChatSecure v4.0は2017年1月17日に公開された[4][5]

クロスプラットフォームXMPPクライアントのGajim英語版向けのOMEMOプラグインの最初の実験的リリースは2015年12月26日に公開された[6]

2016年6月、非営利コンピュータセキュリティコンサルティングファームのRadically Open SecurityがOMEMOプロトコルの分析結果を公開した[7]

クライアントの対応

[編集]

OMEMOに対応するクライアントの例[注釈 1]:

ライブラリの対応

[編集]
  • Smackはsmack-omemoとsmack-omemo-signalという2つのモジュールを使ってOMEMOに対応している[23]
  • XMPPFramework(macOSiOStvOS[24]はSignalProtocol-ObjCライブラリと結合して使うときにOMEMOModule拡張[25]経由でOMEMOに対応している[26]

脚注

[編集]

注釈

[編集]
  1. 完全な一覧も存在する[8]

出典

[編集]
  1. 1 2 [Standards] NEW: XEP-0384 (OMEMO Encryption) (2016年12月7日). 2016年12月23日閲覧。
  2. Daniel Gultsch. OMEMO Multi-End Message and Object Encryption”. 2015年11月23日閲覧。
  3. OMEMO Multi-End Message and Object Encryption (英語). conversations.im. 2019年1月22日閲覧。
  4. ChatSecure iOS v3.2.3 - XMPP Push (2016年7月25日). 2016年9月7日閲覧。
  5. ChatSecure v4.0 - OMEMO and Signal Protocol (2017年1月17日). 2017年2月7日閲覧。
  6. Bahtiar Gadimov (2015年12月26日). Initial OMEMO commit”. dev.gajim.org. 2017年9月8日閲覧。
  7. Radically Open Security (2016年6月1日). OMEMO: Cryptographic Analysis Report (英語). Radically Open Security. 2025年4月4日時点のオリジナルよりアーカイブ。2025年4月10日閲覧。
  8. Are we OMEMO yet? (英語). Are we OMEMO yet?. 2019年1月22日閲覧。
  9. Beagle OMEMO support (2019年7月7日). 2025年4月10日閲覧。
  10. ChatSecure v4.0 - OMEMO and Signal Protocol”. chatsecure.org (2017年1月17日). 2017年1月17日閲覧。
  11. XEP-0384: OMEMO Encryption · Issue #497 · conversejs/converse.js (英語). GitHub. 2019年11月20日閲覧。
  12. Dino - Modern Jabber/XMPP Client using GTK+/Vala”. dino.im. 2017年11月6日閲覧。
  13. Bahtiar Gadimov. Omemogajimplugin · Wiki · gajim / gajim-plugins · GitLab”. 2016年12月4日閲覧。
  14. Developers, Gajim. Gajim 1.8.0 (英語). Gajim. 2023年6月15日閲覧。
  15. Kaidan 0.9: End-to-End Encryption & XMPP Providers”. Kaidan (2023年5月5日). 2023年10月20日閲覧。
  16. End to end encryption in Movim - OMEMO is (finally) there!”. mov.im. 2021年12月15日閲覧。
  17. Vyacheslav Karpukhin. OMEMO for Psi · GitHub”. GitHub. 2018年3月4日閲覧。
  18. Vyacheslav Karpukhin. Psi+ snapshots”. GitHub. 2018年3月4日閲覧。
  19. Richard Bayerle. lurch - OMEMO for libpurple”. GitHub. 2017年2月12日閲覧。
  20. Olivier Mehani. Lurch4Adium - OMEMO Xtra for Adium”. GitHub. 2017年6月8日閲覧。
  21. René Calles. profanity-omemo-plugin: A Python plugin to use (axolotl / Signal Protocol) encryption for the profanity XMPP messenger”. GitHub. 2017年1月10日閲覧。
  22. BeagleIM and SiskinIM just got OMEMO support”. tigase.net. 2019年6月7日閲覧。
  23. Schaub, Paul (2017年6月6日). Ignite Realtime Blog: Smack v4.2 Introduces OME... | Ignite Realtime (英語). community.igniterealtime.org. 2017年7月11日閲覧。
  24. Robbiehanson/XMPPFramework”. GitHub (2021年10月26日). 2025年4月10日閲覧。
  25. Robbiehanson/XMPPFramework”. GitHub (2021年10月26日). 2025年4月10日閲覧。
  26. SignalProtocolObjC”. GitHub (2021年1月30日). 2025年4月10日閲覧。

外部リンク

[編集]