Открыть сервис

OTR

OTR (сокр. от англ. Off-the-Record Messaging, дословно — «не для записи») — это криптографический протокол для защищённого обмена мгновенными сообщениями, обеспечивающий конфиденциальность, аутентификацию и, в отличие от многих других протоколов, так называемую «правдоподобную опровержимость» (deniability) содержания переписки. Протокол OTR предназначен для использования в системах мгновенного обмена сообщениями (IM) и позволяет двум участникам вести частный диалог, в котором третья сторона не может прочитать сообщения, а также не может доказать, что конкретное сообщение было отправлено конкретным участником, даже если перехватит сеанс связи.

История

Протокол OTR был разработан в 2004 году группой криптографов и специалистов по информационной безопасности, в которую входили Ян Голдберг (Ian Goldberg), Никита Борисов (Nikita Borisov) и Эрик Бреслин (Eric Rescorla). Первоначальная версия протокола (OTR версии 1) была представлена в 2004 году на конференции по безопасности. Основной мотивацией для создания OTR стало стремление преодолеть ограничения существовавших на тот момент протоколов шифрования, таких как PGP (Pretty Good Privacy) для электронной почты, которые не обеспечивали опровержимости и не были оптимизированы для интерактивного общения в реальном времени.

В 2005 году вышла версия 2 протокола (OTR v2), которая исправила ряд уязвимостей и добавила поддержку более совершенных криптографических алгоритмов, включая обмен ключами по схеме Диффи — Хеллмана (Diffie-Hellman) с использованием эллиптических кривых (ECDH). В 2008 году была опубликована версия 3 (OTR v3), которая, помимо прочего, ввела поддержку фрагментации сообщений для обхода ограничений на размер пакетов в некоторых протоколах IM, а также улучшила механизмы аутентификации. В 2013 году, после разоблачений Эдварда Сноудена, интерес к OTR значительно возрос, и протокол стал активно внедряться в различные мессенджеры и клиенты.

Ключевые свойства

Протокол OTR реализует три основных свойства безопасности, которые отличают его от многих других систем шифрования:

Конфиденциальность (Confidentiality)

Все сообщения, передаваемые между двумя участниками, шифруются с использованием симметричного шифрования (например, AES). Ключи шифрования генерируются динамически для каждого сеанса связи и не хранятся на серверах. Даже если злоумышленник перехватит трафик, он не сможет прочитать содержимое сообщений без знания ключей.

Аутентификация (Authentication)

OTR гарантирует, что сообщения действительно отправлены тем участником, с которым установлен сеанс. Аутентификация достигается за счёт использования цифровых подписей на основе открытых ключей. Однако, в отличие от традиционных схем, где подпись является неопровержимым доказательством авторства, в OTR подпись используется только для проверки в рамках текущего сеанса и не может быть предъявлена третьей стороне как доказательство.

Правдоподобная опровержимость (Deniability)

Это ключевое свойство OTR. Оно означает, что любой участник диалога может впоследствии отрицать, что он отправлял конкретное сообщение, и это отрицание будет правдоподобным. Достигается это за счёт того, что все ключи шифрования и подписи для каждого сеанса генерируются заново. После завершения сеанса ключи уничтожаются, и у третьей стороны нет возможности проверить, был ли подписан конкретный текст данным участником. Кроме того, в протоколе используется механизм «маскируемых ключей» (forgery keys), позволяющий любому участнику скомпрометировать собственный ключ после сеанса, что делает невозможным установление авторства сообщений задним числом.

Устройство протокола

Установление соединения

Процесс установления защищённого канала связи по OTR состоит из нескольких этапов:

  1. Обмен открытыми ключами: Участники обмениваются долговременными открытыми ключами (Long-Term Key), которые используются для аутентификации.
  2. Генерация сеансовых ключей: С помощью протокола Диффи — Хеллмана (или его варианта на эллиптических кривых) генерируются временные сеансовые ключи (Session Keys). Эти ключи используются только для текущего разговора.
  3. Аутентификация: Участники подписывают свои временные открытые ключи с помощью долговременных, чтобы подтвердить свою личность. После этого устанавливается безопасный канал.

Шифрование и дешифрование

Каждое сообщение шифруется с использованием симметричного шифрования (AES-256 в режиме CTR) и аутентифицируется с помощью кода аутентификации сообщения (MAC). Для предотвращения повторной атаки (replay attack) в протоколе используются счётчики.

Передача сообщений

Сообщения передаются в виде бинарных данных, которые могут быть закодированы в Base64 для передачи через текстовые протоколы (например, XMPP). Протокол поддерживает фрагментацию сообщений, если они превышают допустимый размер.

Завершение сеанса

После завершения разговора участники могут отправить специальное сообщение о завершении сеанса. После этого все сеансовые ключи уничтожаются, и восстановить переписку становится невозможно. Кроме того, OTR позволяет в любой момент «сжечь» (burn) ключи, что делает невозможным дешифровку даже перехваченного трафика.

Применение

Протокол OTR используется в различных клиентах для мгновенного обмена сообщениями, а также в специализированных программах, ориентированных на конфиденциальность. Наиболее известные реализации:

Также OTR может быть использован в качестве протокола для защищённого общения в рамках более крупных систем, таких как Matrix (через мосты).

Критика и ограничения

Несмотря на свои достоинства, протокол OTR имеет ряд недостатков:

Сравнение с другими протоколами

СвойствоOTRSignal ProtocolPGP (для email)
КонфиденциальностьДаДаДа
АутентификацияДаДаДа
Правдоподобная опровержимостьДаДаНет (подпись неопровержима)
Совершенная прямая секретность (PFS)ДаДаНет (если скомпрометирован долговременный ключ, все старые сообщения могут быть расшифрованы)
Поддержка групповых чатовНетДаНет (только для двух участников)
Простота использованияСредняя (требуется настройка)Высокая (встроен в мессенджеры)Низкая (требуется управление ключами)
Защита метаданныхНетНетНет

Интересные факты

Источники

  1. Goldberg, I., Borisov, N., & Rescorla, E. (2004). Off-the-Record Messaging Protocol. Internet Draft.
  2. Borisov, N., Goldberg, I., & Rescorla, E. (2005). Off-the-Record Messaging Protocol version 2. Internet Draft.
  3. Goldberg, I., & Stedman, R. (2008). Off-the-Record Messaging Protocol version 3. Internet Draft.
  4. Off-the-Record Messaging Protocol. (n.d.). In Wikipedia. Retrieved from Wikipedia.
  5. The OTR Protocol. (n.d.). Official OTR website.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →