Off-the-record Messaging ( OTR ) — это криптографический протокол , который обеспечивает шифрование для обмена мгновенными сообщениями . OTR использует комбинацию алгоритма симметричного ключа AES с длиной ключа 128 бит, обмена ключами Диффи–Хеллмана с размером группы 1536 бит и хэш-функции SHA-1 . В дополнение к аутентификации и шифрованию , OTR обеспечивает прямую секретность и гибкое шифрование .
Основной мотивацией протокола было обеспечение отрицаемой аутентификации для участников разговора при сохранении конфиденциальности разговоров, как приватный разговор в реальной жизни или не для записи в журналистских источниках . Это контрастирует с инструментами криптографии, которые производят вывод, который позже может быть использован в качестве проверяемой записи события коммуникации и личности участников. Первоначальный вводный документ был назван «Не для записи общение, или почему не использовать PGP ». [1]
Протокол OTR был разработан криптографами Яном Голдбергом и Никитой Борисовым и выпущен 26 октября 2004 года. [2] Они предоставляют клиентскую библиотеку для поддержки разработчиков клиентов мгновенного обмена сообщениями, которые хотят реализовать протокол. Существует плагин Pidgin и Kopete , который позволяет использовать OTR поверх любого протокола обмена мгновенными сообщениями, поддерживаемого Pidgin или Kopete, предлагая функцию автоматического определения , которая запускает сеанс OTR с приятелями, у которых он включен, не мешая обычным незашифрованным разговорам. Версия 4 протокола [3] разрабатывается с 2017 года [4] командой под руководством Софии Сели и проверена Ником Унгером и Яном Голдбергом. Эта версия направлена на обеспечение онлайн- и офлайн-отрицания, обновление криптографических примитивов и поддержку доставки вне очереди и асинхронной связи.
OTR был представлен в 2004 году Никитой Борисовым, Яном Аврумом Голдбергом и Эриком А. Брюэром в качестве улучшения по сравнению с OpenPGP и системой S/MIME на «Семинаре по конфиденциальности в электронном обществе» (WPES). [1] Первая версия 0.8.0 эталонной реализации была опубликована 21 ноября 2004 года. В 2005 году Марио Ди Раймондо, Росарио Дженнаро и Хьюго Кравчик представили анализ, в котором обращалось внимание на несколько уязвимостей и предлагались соответствующие исправления, в частности, ошибка в обмене ключами. [5] В результате в 2005 году была опубликована версия 2 протокола OTR, которая реализует вариант предлагаемой модификации, которая дополнительно скрывает открытые ключи. Более того, была введена возможность фрагментировать сообщения OTR для работы с чат-системами, имеющими ограниченный размер сообщения, а также был реализован более простой метод проверки против атак типа «человек посередине». [6]
В 2007 году Оливье Гоффарт опубликовал mod_otr
[7] для ejabberd , что позволило проводить атаки типа «человек посередине» на пользователей OTR, которые не проверяют отпечатки ключей. Разработчики OTR отразили эту атаку, внедрив реализацию протокола социалистического миллионера в libotr. Вместо сравнения контрольных сумм ключей можно использовать знание произвольного общего секрета, для которого может быть допустима относительно низкая энтропия . [8]
Версия 3 протокола была опубликована в 2012 году. В качестве меры против повторного восстановления сеанса в случае, если несколько конкурирующих чат-клиентов одновременно регистрируются на одном и том же адресе пользователя, в версии 3 были введены более точные идентификационные метки для отправки и получения клиентских экземпляров. Кроме того, согласовывается дополнительный ключ, который может использоваться для другого канала данных. [9]
Было предложено несколько решений для поддержки разговоров с несколькими участниками. Метод, предложенный в 2007 году Цзян Бянем, Ремзи Секером и Умитом Топалоглу, использует систему одного участника в качестве «виртуального сервера». [10] Метод под названием «Multi-party Off-the-Record Messaging» (mpOTR), опубликованный в 2009 году, работает без центрального управляющего хоста и был представлен в Cryptocat Яном Голдбергом и др. [11]
В 2013 году был представлен протокол Signal , основанный на OTR Messaging и Silent Circle Instant Messaging Protocol (SCIMP). Он принес поддержку асинхронной коммуникации («офлайн-сообщения») в качестве своей главной новой функции, а также лучшую устойчивость к искаженному порядку сообщений и более простую поддержку разговоров с несколькими участниками. [12] OMEMO , представленный в клиенте Android XMPP под названием Conversations в 2015 году, интегрирует алгоритм Double Ratchet , используемый в Signal, в протокол обмена мгновенными сообщениями XMPP («Jabber»), а также обеспечивает шифрование передаваемых файлов. Осенью 2015 года он был представлен в XMPP Standards Foundation для стандартизации. [13] [14]
В настоящее время разработана версия 4 протокола. Она была представлена Софией Сели и Олой Бини на PETS2018. [15]
Помимо обеспечения шифрования и аутентификации — функций, которые также предоставляются типичными наборами криптографии с открытым ключом, такими как PGP , GnuPG и X.509 ( S/MIME ), — OTR также предлагает некоторые менее распространенные функции:
Начиная с OTR 3.1, протокол поддерживает взаимную аутентификацию пользователей с использованием общего секрета через социалистический миллионерский протокол. Эта функция позволяет пользователям проверять личность удаленной стороны и избегать атаки типа «человек посередине» без неудобств ручного сравнения отпечатков открытых ключей через внешний канал.
Из-за ограничений протокола OTR не поддерживает многопользовательский групповой чат с 2009 года [16], но он может быть реализован в будущем. С версии 3 [9] спецификации протокола во время аутентифицированного обмена ключами выводится дополнительный симметричный ключ, который может использоваться для безопасной связи (например, зашифрованной передачи файлов ) по другому каналу. Поддержка зашифрованного аудио или видео не планируется. ( SRTP с ZRTP существует для этой цели.) Проект по созданию протокола для многостороннего обмена сообщениями off-the-record (mpOTR) был организован Cryptocat , eQualitie и другими участниками, включая Яна Голдберга. [11] [17][обновлять]
Начиная с протокола OTR v3 (libotr 4.0.0) плагин поддерживает несколько разговоров OTR с одним и тем же собеседником, который вошел в систему в разных местах. [18]
Эти клиенты изначально поддерживают функцию Off-the-Record Messaging (неполный список).
Для использования функции «Незаписанные сообщения» следующим клиентам требуется плагин.
Хотя в Google Talk от Gmail используется термин «не для записи», эта функция не имеет никакого отношения к протоколу Off-the-Record Messaging, описанному в этой статье, ее чаты не шифруются описанным выше способом и могут регистрироваться внутри Google, даже если они недоступны конечным пользователям. [32] [33]
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite book}}
: CS1 maint: дата и год ( ссылка ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )