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

Протокол Signal

Протокол Signal — это криптографический протокол end-to-end шифрования, предназначенный для обеспечения конфиденциальности, целостности и аутентификации сообщений, передаваемых в системах мгновенного обмена сообщениями и голосовой связи. Протокол разработан на основе более ранних протоколов Off-the-Record Messaging (OTR) и TextSecure Protocol, а его современная реализация лежит в основе мессенджеров Signal, WhatsApp (принадлежит Meta — организация признана экстремистской и запрещена в РФ) и Google Messages (в режиме RCS). Основное свойство протокола — «прямая секретность» (forward secrecy) и возможность асинхронной передачи сообщений, когда отправитель и получатель могут не находиться в сети одновременно.

История

Протокол Signal берёт начало в 2013 году, когда компания Open Whisper Systems (основана Мокси Марлинспайком) выпустила протокол TextSecure для одноимённого мессенджера. В 2014 году TextSecure был объединён с голосовым протоколом RedPhone, в результате чего появился протокол Signal, который лёг в основу мессенджера Signal. В 2016 году протокол был формализован в виде научной статьи «The X3DH Key Agreement Protocol» и «The Double Ratchet Algorithm». В 2018 году Meta (организация признана экстремистской и запрещена в РФ) внедрила протокол Signal в WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ), а в 2020 году Google — в RCS-сообщения. В 2023 году протокол был расширен для поддержки квантово-устойчивых алгоритмов (PQXDH), что стало ответом на угрозу будущих квантовых вычислений.

Ключевые компоненты

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

X3DH (Extended Triple Diffie-Hellman)

X3DH — это протокол установления ключей, который позволяет двум сторонам, не имеющим предварительного общего секрета, сгенерировать общий ключ сеанса. Он использует комбинацию долговременных (identity key), среднесрочных (signed pre-key) и одноразовых (one-time pre-key) асимметричных ключей, а также эфемерные ключи. Алгоритм включает три раунда обмена по схеме Диффи — Хеллмана, что обеспечивает аутентификацию и защиту от атак типа «человек посередине». X3DH гарантирует, что даже если долговременный ключ одной из сторон будет скомпрометирован, предыдущие сеансы останутся защищёнными.

Double Ratchet Algorithm

Double Ratchet — это алгоритм генерации ключей для каждого сообщения, который обеспечивает прямую секретность и защиту от компрометации ключей. Он состоит из двух «храповиков» (ratchets):

  • Цепочка Диффи — Хеллмана (DH ratchet): обновляет ключи на основе эфемерных обменов Диффи — Хеллмана при каждом новом сообщении. Это позволяет сбрасывать состояние ключа, если старый был скомпрометирован.
  • Цепочка ключей (KDF ratchet): использует криптографическую функцию вывода ключей (KDF) для генерации ключей шифрования и ключей для следующего шага цепочки. Каждое сообщение получает уникальный ключ, что делает невозможным расшифровку других сообщений при компрометации одного ключа.

Протокол аутентификации

Для проверки подлинности собеседников протокол использует «безопасные номера» (safety numbers) — короткие строки, вычисляемые из долговременных ключей обеих сторон. Пользователи могут сравнивать эти номера вне канала связи (например, лично или по телефону), чтобы убедиться, что они общаются именно с тем, с кем намеревались. В мессенджере Signal эта функция реализована как «проверка безопасности» (verify safety number).

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

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

Прямая секретность и защита от компрометации

Одно из главных свойств протокола Signal — прямая секретность (forward secrecy). Это означает, что если злоумышленник получает доступ к долговременным ключам одной из сторон (например, после взлома сервера), он не сможет расшифровать ранее переданные сообщения, так как ключи для каждого сообщения генерируются из эфемерных значений, которые не хранятся. Кроме того, протокол обеспечивает «защиту от будущей компрометации» (future secrecy): если ключ сеанса скомпрометирован, последующие сообщения остаются защищёнными благодаря DH ratchet.

Асинхронная работа

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

Применение

Протокол Signal используется в следующих мессенджерах и сервисах:

  • Signal — основной клиент, разработанный Open Whisper Systems (ныне Signal Foundation). Обеспечивает шифрование текстовых сообщений, голосовых и видеозвонков, а также файлов.
  • WhatsApp (принадлежит Meta — организация признана экстремистской и запрещена в РФ) — с 2016 года использует протокол Signal для шифрования всех сообщений и звонков. Однако реализация включает некоторые изменения, такие как возможность резервного копирования на облачные сервисы, что может ослаблять защиту.
  • Google Messages — с 2020 года использует протокол Signal для шифрования RCS-сообщений (Rich Communication Services) в режиме end-to-end.
  • Facebook Messenger (принадлежит Meta — организация признана экстремистской и запрещена в РФ) — в режиме «секретных бесед» (Secret Conversations) использует протокол Signal, но не для всех сообщений по умолчанию.
  • Skype — с 2018 года использует протокол Signal для шифрования голосовых и видеозвонков в режиме Private Conversation.

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

Несмотря на высокую криптографическую стойкость, протокол Signal имеет ряд критических замечаний:

  • Зависимость от сервера: хотя протокол не требует доверия к серверу для расшифровки сообщений, сервер может видеть метаданные (кто, кому и когда отправляет сообщения). В мессенджере Signal сервер не хранит метаданные, но в WhatsApp и Facebook Messenger (организации признаны экстремистскими и запрещены в РФ) метаданные собираются для рекламных целей.
  • Сложность реализации: протокол требует точной реализации всех криптографических шагов, и ошибки могут привести к уязвимостям. Например, в 2019 году была обнаружена уязвимость в реализации X3DH в WhatsApp, позволявшая злоумышленнику отправлять сообщения от имени другого пользователя.
  • Квантовая угроза: классическая версия протокола (X3DH + Double Ratchet) уязвима для атак с использованием квантовых компьютеров, которые могут взломать алгоритмы на основе эллиптических кривых. Версия PQXDH (2023) решает эту проблему, но пока не внедрена во всех реализациях.
  • Отсутствие анонимности: протокол не скрывает факт общения между пользователями, так как для установления сеанса требуется знание идентификатора получателя (например, номера телефона в Signal).

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

  • Протокол Signal был разработан Мокси Марлинспайком, который ранее создал протокол Off-the-Record Messaging (OTR) и работал в Twitter.
  • В 2016 году протокол был независимо проанализирован и признан безопасным группой исследователей из Университета Оксфорда и Квинслендского университета.
  • В 2020 году протокол Signal был рекомендован Европейским агентством по сетевой и информационной безопасности (ENISA) как один из лучших для защиты конфиденциальности.
  • В 2023 году Signal Foundation выпустила спецификацию PQXDH, которая добавляет квантово-устойчивый алгоритм Kyber, что делает протокол одним из первых, готовых к постквантовой эпохе.

Источники

  • M. Marlinspike, T. Perrin. «The X3DH Key Agreement Protocol». Open Whisper Systems, 2016.
  • T. Perrin, M. Marlinspike. «The Double Ratchet Algorithm». Open Whisper Systems, 2016.
  • K. Cohn-Gordon, C. Cremers, B. Dowling, L. Garratt, D. Stebila. «A Formal Security Analysis of the Signal Messaging Protocol». University of Oxford, 2017.
  • Signal Foundation. «The PQXDH Key Agreement Protocol». 2023.
  • ENISA. «Recommendations for End-to-End Encryption». 2020.

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

На главную BFOmetr →