Сигнальный протокол - Signal Protocol

Сигнальный протокол
Протокол связи
Цель Сквозная зашифрованная связь
Разработчики) Фонд сигнальных технологий
На основе OTR , SCIMP
Под влиянием OMEMO , Матрица
Слой OSI Уровень приложения
Веб-сайт сигнал .org / docs

Signal Protocol (ранее известный как Протокол TextSecure ) является не- федеративного криптографическим протоколом , который может быть использован для обеспечения шифрования конца в конец для голосовых вызовов и обмена мгновенных сообщений разговоров. Протокол был разработан Open Whisper Systems в 2013 году и впервые был представлен в приложении TextSecure с открытым исходным кодом , которое позже стало Signal . Протокол реализован в нескольких приложениях с закрытым исходным кодом , таких как WhatsApp , который, как говорят, шифрует разговоры «более миллиарда человек по всему миру», или Google, который по умолчанию обеспечивает сквозное шифрование для всех разговоров между пользователями на основе RCS. своего приложения Сообщения для личных бесед. Facebook Messenger также заявляет, что предлагает протокол для дополнительных секретных разговоров, как и Skype для частных разговоров.

Протокол объединяет алгоритм двойного храповика, предварительные ключи и рукопожатие Диффи – Хеллмана с тройной эллиптической кривой (3-DH) и использует в качестве примитивов Curve25519 , AES-256 и HMAC-SHA256 .

История

Разработка протокола Signal была начата Тревором Перрином и Мокси Марлинспайком (Open Whisper Systems) в 2013 году. Первая версия протокола, TextSecure v1, была основана на передаче сообщений вне записи (OTR).

24 февраля 2014 года компания Open Whisper Systems представила TextSecure v2, которая перешла на Axolotl Ratchet. Дизайн Axolotl Ratchet основан на обмене эфемерными ключами, который был введен OTR, и сочетает его с храповым механизмом с симметричным ключом, смоделированным на основе Silent Circle Instant Messaging Protocol (SCIMP). Он обеспечил поддержку асинхронной связи («автономные сообщения») в качестве основной новой функции, а также улучшил устойчивость к искаженному порядку сообщений и упростил поддержку разговоров с несколькими участниками. Axolotl Ratchet был назван в честь находящейся под угрозой исчезновения водной саламандры Axolotl , которая обладает исключительными способностями к самовосстановлению. Разработчики называют алгоритм самовосстановлением, потому что он автоматически запрещает злоумышленнику доступ к открытому тексту более поздних сообщений после компрометации сеансового ключа .

Третья версия протокола, TextSecure v3, внесла некоторые изменения в криптографические примитивы и проводной протокол. В октябре 2014 года исследователи из Рурского университета в Бохуме опубликовали анализ TextSecure v3. Среди других выводов они представили неизвестную атаку с использованием общего ключа на протокол, но в целом они обнаружили, что она безопасна.

В марте 2016 года разработчики переименовали протокол в Signal Protocol. Они также переименовали Axolotl Ratchet в алгоритм Double Ratchet, чтобы лучше различать храповик и полный протокол, потому что некоторые использовали название Axolotl при обращении к полному протоколу.

По состоянию на октябрь 2016 года протокол сигналов основан на TextSecure v3, но с дополнительными криптографическими изменениями. В октябре 2016 года исследователи из Оксфордского университета Великобритании , Технологического университета Квинсленда в Австралии и Университета Макмастера в Канаде опубликовали формальный анализ протокола и пришли к выводу, что протокол является криптографически надежным.

Очередной аудит протокола был опубликован в 2017 году.

Характеристики

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

Signal Protocol также поддерживает групповые чаты с сквозным шифрованием. Протокол группового чата представляет собой комбинацию попарного двойного храпового механизма и многоадресного шифрования . В дополнение к свойствам, предоставляемым протоколом один-к-одному, протокол группового чата обеспечивает согласованность говорящих, отказоустойчивость, устойчивость к отброшенным сообщениям, вычислительное равенство, равенство доверия, обмен сообщениями в подгруппах, а также сокращаемое и расширяемое членство. .

Аутентификация

Для аутентификации пользователи могут вручную сравнить отпечатки открытых ключей через внешний канал. Это позволяет пользователям проверять личности друг друга и избегать атаки «злоумышленник в середине» . Реализация также может выбрать использование механизма доверия при первом использовании , чтобы уведомить пользователей об изменении ключа корреспондента.

Метаданные

Сигнальный протокол не мешает компании сохранять информацию о том, когда и с кем общаются пользователи. Поэтому могут быть различия в том, как поставщики услуг обмена сообщениями решают обрабатывать эту информацию. Политика конфиденциальности Signal гласит, что идентификаторы получателей хранятся на серверах Signal только столько, сколько необходимо для передачи каждого сообщения. В июне 2016 года Мокси Марлинспайк сказал The Intercept : « Самая близкая к метаданным информация, которую хранит сервер Signal, - это последний раз, когда каждый пользователь подключался к серверу, и точность этой информации снижается до дня, а не часа. , минута и секунда ".

В октябре 2018 года Signal Messenger объявил, что они внедрили в Signal функцию «запечатанного отправителя», которая сокращает объем метаданных, к которым имеют доступ серверы Signal, за счет сокрытия идентификатора отправителя. Идентификационные данные отправителя передаются получателю в каждом сообщении, но шифруются с помощью ключа, которого у сервера нет. Это делается автоматически, если отправитель входит в список контактов получателя или имеет доступ к его сигнальному профилю. Пользователи также могут включить опцию получения сообщений «запечатанного отправителя» от лиц, не являющихся контактами, и людей, не имеющих доступа к их профилю сигнала. Одновременное прослушивание устройства пользователя и / или серверов Signal может по-прежнему показывать, что IP-адрес устройства обращался к серверу Signal для отправки или получения сообщений в определенное время.

использование

Open Whisper Systems впервые представила протокол в своем приложении TextSecure . Позже они объединили приложение для зашифрованных голосовых вызовов RedPhone с приложением TextSecure и переименовали его в Signal .

В ноябре 2014 года Open Whisper Systems объявила о партнерстве с WhatsApp для обеспечения сквозного шифрования путем включения протокола Signal в каждую клиентскую платформу WhatsApp. Open Whisper Systems заявили, что они уже включили протокол в последний клиент WhatsApp для Android и что вскоре после этого появится поддержка других клиентов, групповых / медиа-сообщений и проверки ключей. 5 апреля 2016 года WhatsApp и Open Whisper Systems объявили, что они завершили добавление сквозного шифрования для «всех форм связи» в WhatsApp, и что теперь пользователи могут проверять ключи друг друга. В феврале 2017 года WhatsApp анонсировал новую функцию WhatsApp Status, которая использует протокол Signal для защиты своего содержимого. В октябре 2016 года материнская компания WhatsApp Facebook также развернула дополнительный режим под названием Secret Conversations в Facebook Messenger, который обеспечивает сквозное шифрование с использованием реализации протокола Signal.

В сентябре 2015 года G Data Software запустила новое приложение для обмена сообщениями под названием Secure Chat, в котором использовался протокол Signal. G Data прекратил обслуживание в мае 2018 года.

В сентябре 2016 года Google запустил новое приложение для обмена сообщениями под названием Allo с дополнительным режимом инкогнито, в котором для сквозного шифрования использовался протокол Signal. В марте 2019 года Google прекратил поддержку Allo в пользу своего приложения Сообщения для Android. В ноябре 2020 года Google объявил, что они будут использовать протокол Signal для обеспечения сквозного шифрования по умолчанию для всех разговоров на основе RCS между пользователями их приложения Messages , начиная с разговоров один на один.

В январе 2018 года Open Whisper Systems и Microsoft объявили о добавлении поддержки Signal Protocol в дополнительный режим Skype под названием Private Conversations.

Влиять

Сигнальный протокол оказал влияние на другие криптографические протоколы. В мае 2016 года Viber заявил, что их протокол шифрования представляет собой настраиваемую реализацию, которая «использует те же концепции», что и протокол Signal. Разработчики Forsta заявили, что в их приложении используется специальная реализация Signal Protocol.

Алгоритм Double Ratchet , который был представлен как часть протокола Signal также был принят другими протоколами. OMEMO - это протокол расширения XMPP (XEP), который был представлен в приложении для обмена сообщениями Conversations и одобрен XMPP Standards Foundation (XSF) в декабре 2016 года как XEP-0384. Matrix - это открытый протокол связи, который включает Olm, библиотеку, которая обеспечивает дополнительное сквозное шифрование для каждой комнаты с помощью реализации алгоритма Double Ratchet. Разработчики Wire заявили, что в их приложении используется специальная реализация алгоритма Double Ratchet.

Безопасность уровня обмена сообщениями , предложение IETF , использует асинхронные храповые деревья для эффективного улучшения гарантий безопасности по сравнению с двойным храповым механизмом Signal .

Реализации

Signal Messenger поддерживает следующие библиотеки Signal Protocol под лицензией GPLv3 на GitHub :

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

Смотрите также

использованная литература

Литература

внешние ссылки