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

Sender Keys

Sender Keys — это криптографический протокол, используемый для сквозного шифрования (end-to-end encryption) в групповых чатах. Он обеспечивает конфиденциальность и целостность сообщений, передаваемых между несколькими участниками, при этом каждый участник группы имеет свой уникальный ключ шифрования. Протокол был разработан компанией Open Whisper Systems (предшественник Signal Foundation) и является частью семейства протоколов Signal Protocol, который также используется в мессенджерах Signal, WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ) и Google Messages.

История

Протокол Sender Keys был создан как эволюция более раннего протокола группового шифрования, известного как «Group Messaging». В отличие от парного шифрования (как в протоколе Double Ratchet), где для каждого участника группы создаётся отдельный сеанс, Sender Keys позволяет одному отправителю зашифровать сообщение один раз и отправить его всем участникам группы, что значительно снижает вычислительную нагрузку и объём передаваемых данных. Первая реализация протокола была представлена в 2014 году в приложении Signal (разработанном Open Whisper Systems). В 2016 году протокол был открыт и задокументирован, что позволило другим разработчикам интегрировать его в свои продукты.

Принцип работы

Основные компоненты

Протокол Sender Keys основан на нескольких ключевых элементах:

Процесс отправки сообщения

  1. Инициализация: при создании группы каждый участник генерирует свою уникальную цепочку ключей отправителя и ключ подписи. Эти данные распространяются среди всех участников группы через защищённый канал (например, с использованием протокола X3DH для установления начального доверия).
  2. Шифрование: отправитель выбирает следующий ключ из своей цепочки ключей отправителя, вычисляет ключ сеанса и шифрует сообщение с помощью симметричного алгоритма (например, AES-256 в режиме CBC или GCM). Затем сообщение подписывается закрытым ключом подписи отправителя.
  3. Отправка: зашифрованное сообщение и подпись отправляются всем участникам группы. Каждый участник получает одно и то же зашифрованное сообщение, что делает протокол эффективным для больших групп.
  4. Дешифрование: каждый участник группы, получив сообщение, сначала проверяет подпись с помощью открытого ключа подписи отправителя. Затем он использует свой экземпляр цепочки ключей отправителя (который он получил при инициализации) для вычисления того же ключа сеанса и дешифрования сообщения.

Обновление ключей

Для обеспечения прямой секретности (forward secrecy) и предотвращения компрометации прошлых сообщений, ключи в протоколе Sender Keys регулярно обновляются. После каждого отправленного сообщения отправитель обновляет свою цепочку ключей, генерируя новый ключ из предыдущего. Это означает, что даже если злоумышленник получит текущий ключ, он не сможет расшифровать предыдущие сообщения, так как ключи для них уже уничтожены.

Преимущества и недостатки

Преимущества

Недостатки

Применение

Протокол Sender Keys используется в нескольких популярных мессенджерах, реализующих сквозное шифрование:

Критика и альтернативы

Протокол Sender Keys подвергался критике за отсутствие полной прямой секретности для будущих сообщений. В ответ на это, в 2023 году команда Signal представила новую версию протокола, известную как PQXDH (Post-Quantum Extended Diffie-Hellman), которая добавляет устойчивость к квантовым атакам, но не решает проблему компрометации ключей отправителя.

Альтернативой Sender Keys является протокол MLS (Messaging Layer Security), разрабатываемый IETF. MLS использует древовидную структуру ключей (TreeKEM), которая позволяет более эффективно управлять ключами при добавлении или удалении участников, а также обеспечивает лучшую прямую секретность. MLS находит применение в корпоративных мессенджерах и приложениях, требующих высокой безопасности.

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

Источники

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

На главную BFOmetr →