Сквозное шифрование в современных мессенджерах
Изучите протокол Signal, лежащий в основе WhatsApp и Signal: прямую секретность, ратчеты и запечатанного отправителя
«Сквозное шифрование в современных мессенджерах» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Обзор протокола Signal
Протокол Signal — криптографическая основа Signal, WhatsApp и других защищенных мессенджеров. Он объединяет два алгоритма: X3DH для установления исходного общего секрета, когда получатель не в сети, и двойной ратчет для получения нового ключа шифрования для каждого отдельного сообщения. В результате обеспечиваются надежная конфиденциальность и прямая секретность, незаметные для пользователя.
X3DH: расширенный тройной обмен ключами Диффи — Хеллмана
X3DH позволяет двум сторонам установить общий секрет, даже если одна из них не в сети. Он использует четыре вычисления по протоколу Диффи — Хеллмана, объединяя долговременные ключи идентификации, среднесрочные подписанные предварительные ключи и одноразовые предварительные ключи. Сервер заранее хранит предварительные ключи, загруженные получателем. Отправитель выполняет X3DH с использованием этих ключей, получает общий секрет и отправляет зашифрованное исходное сообщение, не дожидаясь выхода получателя в сеть.
Алгоритм двойного ратчета
После того как X3DH устанавливает исходный общий секрет, для дальнейшего общения начинает работать двойной ратчет. Он объединяет ратчет Диффи — Хеллмана, который продвигается при каждом обмене новыми ключами DH, и ратчет симметричных ключей, который продвигается с каждым отдельным сообщением. Каждое сообщение шифруется уникальным ключом, который сразу удаляется после использования, поэтому получение одного ключа сообщения не ставит под угрозу никакое другое сообщение.
Прямая секретность на практике
Прямая секретность означает, что если злоумышленник сегодня записывает зашифрованный трафик, а позднее получает Ваш долговременный закрытый ключ, он все равно не сможет расшифровать старые сообщения. Двойной ратчет обеспечивает это, поскольку ключи отдельных сообщений являются временными и сразу удаляются. Расшифровать прошлые сообщения может только устройство, участвовавшее в разговоре в тот момент, и только если оно не удалило их локально.
Восстановление после взлома
Двойной ратчет также обеспечивает восстановление после взлома, иногда называемое защитой после компрометации. Если злоумышленник на короткое время получает контроль над устройством и считывает его текущие ключи, следующий шаг ратчета DH создаст новые ключи, которые злоумышленник не сможет предсказать. Будущие сообщения снова станут защищенными без ручного вмешательства, в отличие от систем, где компрометация одного ключа раскрывает все последующие сообщения.
WhatsApp внедряет протокол Signal
В 2016 году WhatsApp завершил полное развертывание сквозного шифрования протокола Signal на всех своих платформах, охватившее на тот момент более миллиарда пользователей. Это было крупнейшее в истории внедрение сквозного шифрования. Интеграция была разработана в партнерстве с Open Whisper Systems, организацией, создавшей Signal. Реализация WhatsApp прошла независимый аудит и была признана корректной.
Запечатанный отправитель: сокрытие метаданных сообщения
Даже при зашифрованном содержимом протокол Signal изначально раскрывал серверу, кто кому отправляет сообщения. Запечатанный отправитель — это расширение, которое шифрует личность отправителя внутри конверта сообщения. Сервер знает только получателя, но не отправителя, что уменьшает объем метаданных, доступных серверу или любому, кто получает записи сервера по судебному запросу. Получатель расшифровывает внешний конверт, чтобы узнать, кто отправил сообщение.
Исчезающие сообщения и временные ключи
Исчезающие сообщения добавляют таймер, по истечении которого сообщения удаляются с устройств и отправителя, и получателя. В сочетании с эфемерными ключами двойного ратчета это означает, что даже криминалистическое исследование изъятого устройства позднее может не обнаружить пригодного для восстановления открытого текста. Функция Signal «Заметка для себя» и настройки исчезающих сообщений по умолчанию поощряют минимальное хранение данных как практику защиты конфиденциальности.
iMessage: гибридный подход
Apple использует сквозное шифрование, когда у обеих сторон включен iMessage, а если у одной из них он не включен, переходит на SMS. iMessage хранит зашифрованные ключи сообщений в связке ключей iCloud, обеспечивая доступ с нескольких устройств, но это также означает, что Apple технически может получить доступ к сообщениям, если ее обяжут это сделать и если включено резервное копирование в iCloud. В отличие от Signal, iMessage не использует двойной ратчет, поэтому не обеспечивает таких же гарантий прямой секретности.
Почему групповую переписку сложнее защищать
В разговоре между двумя участниками двойной ратчет эффективен. В группе из N участников каждое сообщение необходимо отдельно зашифровать для каждого участника либо управлять общим групповым ключом. Безопасное управление групповыми ключами сложно: когда участник выходит из группы, все оставшиеся участники должны обновить свои ключи (это называют защитой групп после компрометации). Протокол защиты сообщений на уровне обмена (MLS/RFC 9420) решает эту задачу, обновляя ключи с логарифмической сложностью.
Сравнение Signal, WhatsApp и Telegram
Signal полностью использует открытый исходный код, собирает минимум метаданных и повсеместно применяет протокол Signal. WhatsApp использует протокол Signal для сообщений, но принадлежит Meta и собирает значительный объем метаданных. Telegram использует собственный протокол MTProto только в секретных чатах; обычные чаты не защищены сквозным шифрованием и хранятся на серверах Telegram. Для максимальной конфиденциальности рекомендуется использовать Signal с исчезающими сообщениями.
Свойства протокола Signal
Какая особенность двойного ратчета гарантирует, что получение ключа одного сообщения не раскроет другие сообщения?
Сквозное шифрование: основные выводы
Протокол Signal сочетает X3DH для согласования ключей без подключения к сети и двойной ратчет для получения отдельного ключа для каждого сообщения. Прямая секретность защищает прошлые сообщения, а восстановление после компрометации — будущие сообщения после взлома. WhatsApp внедрил эту систему в промышленном масштабе в 2016 году. Групповая переписка требует более сложных протоколов управления ключами, таких как MLS. Для защиты метаданных нужны дополнительные методы, например механизм «запечатанного отправителя».
Часто задаваемые вопросы
Урок «Сквозное шифрование в современных мессенджерах» бесплатный?
Да — полный текст урока «Сквозное шифрование в современных мессенджерах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Сквозное шифрование в современных мессенджерах»?
Изучите протокол Signal, лежащий в основе WhatsApp и Signal: прямую секретность, ратчеты и запечатанного отправителя Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Сквозное шифрование в современных мессенджерах»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему электронная почта изначально небезопасна
- Шифрование электронной почты с помощью PGP и GPG
- S/MIME в корпоративной электронной почте
- Сквозное шифрование в современных мессенджерах