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

Протокол Signal Protocol

Signal Protocol — это криптографический протокол сквозного шифрования, предназначенный для обеспечения конфиденциальности, целостности и аутентификации сообщений при передаче через открытые сети. Протокол обеспечивает прямой обмен зашифрованными данными между участниками коммуникации, при котором сервер-посредник не имеет доступа к содержимому сообщений. Signal Protocol сочетает в себе несколько криптографических примитивов, включая протокол Диффи — Хеллмана на эллиптических кривых (X3DH), протокол двойного храповика (Double Ratchet Algorithm) и предварительные ключи (Prekeys). Разработан компанией Open Whisper Systems (позднее — Signal Technology Foundation) и используется в мессенджере Signal, а также в ряде других приложений, таких как WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ), Facebook Messenger (в режиме «секретных чатов») и Google Messages (в режиме RCS с шифрованием).

История

Протокол Signal Protocol берёт своё начало в 2013 году, когда разработчики компании Open Whisper Systems, основанной Мокси Марлинспайком (Trevor Perrin) и Мэттью Розенфельдом, представили протокол TextSecure. Первоначально он использовался в одноимённом приложении для шифрования SMS-сообщений. В 2014 году протокол был адаптирован для передачи данных через интернет и получил название Signal Protocol. В 2015 году протокол был внедрён в мессенджер Signal, а затем лицензирован для использования в WhatsApp (с 2016 года) и Facebook Messenger (с 2017 года). В 2018 году протокол был принят в качестве основы для стандарта шифрования RCS (Rich Communication Services) в Google Messages. По состоянию на 2025 год Signal Protocol остаётся одним из наиболее широко применяемых протоколов сквозного шифрования в мире.

Архитектура и принципы работы

Signal Protocol основан на комбинации двух ключевых алгоритмов: протокола расширенного тройного Диффи — Хеллмана (X3DH) и протокола двойного храповика (Double Ratchet). Дополнительно используются предварительные ключи (Prekeys) для обеспечения асинхронной передачи.

Протокол X3DH (Extended Triple Diffie-Hellman)

X3DH используется для первоначального установления общего секретного ключа между двумя участниками. Он позволяет установить защищённое соединение даже в том случае, если один из участников в данный момент не в сети. Протокол использует три раунда обмена ключами по схеме Диффи — Хеллмана на эллиптических кривых Curve25519. Каждый участник генерирует три типа ключей:

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

Протокол двойного храповика (Double Ratchet Algorithm)

Протокол двойного храповика обеспечивает непрерывное обновление ключей шифрования после каждого отправленного или полученного сообщения. Он состоит из двух «храповиков»:

Благодаря этому даже в случае компрометации одного из ключей злоумышленник не сможет расшифровать предыдущие или последующие сообщения (свойство forward secrecy и future secrecy). Протокол также использует функцию получения ключей на основе HMAC (HKDF) для генерации новых ключей из старых.

Предварительные ключи (Prekeys)

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

Криптографические примитивы

Signal Protocol использует следующие криптографические алгоритмы:

Применение

Signal Protocol является основой для сквозного шифрования в нескольких популярных мессенджерах:

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

Несмотря на широкое признание, Signal Protocol имеет ряд ограничений и подвергался критике:

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

Источники

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

На главную BFOmetr →