OMEMO

OMEMO 로고

OMEMO는 안드레아스 슈트라우브가 개발한 다중 클라이언트 단대단 암호화를 위한 Extensible Messaging and Presence Protocol(XMPP) 확장 프로토콜이다. 슈트라우브에 따르면, OMEMO는 더블 래칫 알고리즘을 사용하여 "다중 단말 간(multi-end to multi-end) 암호화를 제공하며, 일부 클라이언트가 오프라인 상태이더라도 여러 클라이언트 간에 메시지를 안전하게 동기화할 수 있도록 한다." "OMEMO"라는 이름은 "OMEMO Multi-End Message and Object Encryption"의 재귀 약자이다. 이는 더블 래칫 알고리즘과 퍼스널 이벤팅 프로토콜(Personal Eventing Protocol, PEP, XEP-0163)을 기반으로 하는 개방형 표준이다. OMEMO는 메시지 동기화 및 오프라인 전송과 함께 미래 및 전방향 보안과 부인 방지 기능을 제공한다.

특징

OTR과 비교할 때, OMEMO 프로토콜은 약간 더 큰 메시지 크기 오버헤드를 대가로 다대다 암호화 채팅, 오프라인 메시지 대기열, 전방향 보안, 파일 전송, 검증 가능성 및 부인 방지 기능을 제공한다.

역사

이 프로토콜은 2015년 구글 서머 오브 코드 프로젝트로서 안드레아스 슈트라우브에 의해 개발되고 처음 구현되었다. 이 프로젝트의 목표는 Conversations라는 안드로이드 기반 XMPP 인스턴트 메시징 클라이언트에 더블 래칫 기반의 다중 단말 간 암호화 방식을 구현하는 것이었다. 이는 Conversations에 도입되었으며, 2015년 가을에 XMPP Standards Foundation(XSF)에 제안된 XMPP Extension Protocol(XEP)로 제출되었고, 2016년 12월에 XEP-0384로 승인되었다.

2016년 7월, ChatSecure 프로젝트는 차기 릴리스에서 OMEMO를 구현할 것이라고 발표했다. ChatSecure v4.0은 OMEMO를 지원하며 2017년 1월 17일에 출시되었다.

크로스 플랫폼 XMPP 클라이언트인 Gajim을 위한 OMEMO 플러그인의 첫 실험적 릴리스는 2015년 12월 26일에 공개되었다.

2016년 6월, 비영리 컴퓨터 보안 컨설팅 회사인 Radically Open Security는 OMEMO 프로토콜에 대한 분석 보고서를 발표했다.

지원 클라이언트

OMEMO를 지원하는 주요 클라이언트(전체 목록도 존재함):

라이브러리 지원

각주

  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” (PDF) (영어). Amsterdam: Radically Open Security. 2025년 4월 4일에 원본 문서 (PDF)에서 보존된 문서. 2025년 4월 10일에 확인함.
  8. ↑ “Are we OMEMO yet?” (미국 영어). 《Are we OMEMO yet?》. 2019년 1월 22일에 확인함.
  9. ↑ “Beagle OMEMO support”. 2019년 7월 7일.
  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”. 《깃허브》. 2018년 3월 4일에 확인함.
  18. ↑ Vyacheslav Karpukhin. “Psi+ snapshots”. 《깃허브》. 2018년 3월 4일에 확인함.
  19. ↑ Richard Bayerle. “lurch - OMEMO for libpurple”. 《깃허브》. 2017년 2월 12일에 확인함.
  20. ↑ Olivier Mehani. “Lurch4Adium - OMEMO Xtra for Adium”. 《깃허브》. 2017년 6월 8일에 확인함.
  21. ↑ René Calles. “profanity-omemo-plugin: A Python plugin to use (axolotl / Signal Protocol) encryption for the profanity XMPP messenger”. 《깃허브》. 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”. 《깃허브》. 2021년 10월 26일.
  25. ↑ “Robbiehanson/XMPPFramework”. 《깃허브》. 2021년 10월 26일.
  26. ↑ “SignalProtocolObjC”. 《깃허브》. 2021년 1월 30일.

외부 링크