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를 지원하는 주요 클라이언트(전체 목록도 존재함):

 BeagleIM (MacOS)
 ChatSecure (IOS)
 Conversations (안드로이드)
 Converse.js (브라우저 기반)
 Dino (리눅스, MacOS)
 Gajim (리눅스, 윈도우, BSD)
 Kaidan (리눅스)
 Movim (브라우저 기반)
 Psi (공식 플러그인 이용) (리눅스, 윈도우, MacOS)
 Psi+ (공식 플러그인 이용) (리눅스, 윈도우, MacOS, 하이쿠, FreeBSD)
 libpurple 기반 클라이언트 (피진 또는 Finch 등, 실험적 플러그인 이용)
 Adium (libpurple 플러그인 기반의 Xtra 이용)
 Profanity (실험적 플러그인 이용) (BSD, 리눅스, MacOS, 윈도우)
 SiskinIM (IOS)

 라이브러리 지원 
 Smack은 smack-omemo 및 smack-omemo-signal 두 모듈을 사용하여 OMEMO를 지원한다.
 XMPPFramework (MacOS, IOS, TvOS)는 SignalProtocol-ObjC 라이브러리와 함께 사용할 때 OMEMOModule 확장을 통해 OMEMO를 지원한다.

 각주 

 외부 링크 
 홈페이지
 XEP-0384: OMEMO Encryption (실험적)
 다른 클라이언트에서 OMEMO를 구현하기 위한 Python 라이브러리
 C로 구현된 OMEMO 프로토콜
 OMEMO Top - 인스턴트 메시지 클라이언트들의 OMEMO 지원 현황 목록

분류:인스턴트 메시징
분류:암호 프로토콜
분류:자유 보안 소프트웨어
분류:인터넷 프라이버시 소프트웨어
분류:XMPP