
Большинство пользователей уверены, что их переписка в мессенджерах «на замке». Но немногие знают, как именно этот замок устроен. За лаконичной фразой «сквозное шифрование» скрываются сложные криптографические протоколы, архитектурные компромиссы и решения, принятые разработчиками под давлением реальных угроз. Cyber Media разбирает, как устроено шифрование в популярных мессенджерах, почему важна смена ключей, и как мессенджер может защитить ваши старые сообщения даже после компрометации устройства.
На заре систем мгновенного обмена сообщениями никто особенно не задумывался о безопасности. Шифрование трафика через HTTPS считалось более чем достаточным — ведь главное, чтобы никто не подглядел переписку в общественном Wi-Fi. Но вскоре стало ясно: настоящий риск вовсе не в хакерах с ноутбуками в кофейне, а в том, что сами мессенджеры или их инфраструктура могут оказаться уязвимыми — или просто слишком открытыми к внешнему миру.
Переломным моментом стал 2013 год, когда Эдвард Сноуден раскрыл масштабы глобальной слежки американскими спецслужбами. Появились вопросы: кто имеет доступ к нашим сообщениям, где они хранятся, и почему мы до сих пор передаем личные данные через центральные сервера как открытки? Ответом стало сквозное шифрование — архитектура, при которой только отправитель и получатель могут прочитать сообщение, а серверы выполняют лишь транспортную функцию. Первопроходцами стали Signal и Telegram (в своих «секретных чатах»), затем подтянулись WhatsApp (мессенджер принадлежит корпорации Meta, чья деятельность признана экстремистской и запрещена в России), iMessage и другие крупные игроки.
Шифрование в мессенджерах решает сразу несколько критичных задач:
Все это подводит нас к ключевому различию между двумя подходами к защите: транспортному и сквозному шифрованию. Транспортное шифрование, например, TLS, защищает данные только до сервера. Там они могут быть расшифрованы, прочитаны, сохранены. А вот сквозное шифрование обеспечивает защиту всего пути: от устройства отправителя до устройства получателя, без права сервера на вмешательство. В мире, где доверие — редкость, это уже не бонус, а базовое требование.
Когда мессенджер говорит, что у него «сквозное шифрование», это не маркетинговая мантра, а довольно конкретное техническое обещание: ни один посредник — даже сам мессенджер — не сможет прочитать то, что вы отправляете. Сообщение шифруется на устройстве отправителя и расшифровывается только на устройстве получателя. Все. Сервер, через который сообщение проходит, видит только зашифрованный мусор и не имеет ключей для расшифровки.
Чтобы это работало, используется связка симметричного и асимметричного шифрования. Асимметричное шифрование нужно на старте — для обмена ключами. Когда два устройства начинают диалог, они обмениваются публичными ключами и создают общий секрет, не передавая его напрямую. После этого вступает в игру симметричное шифрование — быстрое, легкое и подходящее для шифрования уже непосредственно содержимого сообщений.
Протокол шифрования Telegram
Источник:core.telegram.org/mtproto/description
Ключевая идея в том, что каждый участник знает только свои секреты. Сервер не участвует в генерации, передаче или хранении ключей — и, следовательно, не может ничего расшифровать. Это значит, что если вы, например, переписываетесь в Signal или в «секретном чате» Telegram, то даже администратор сервиса с полным доступом к инфраструктуре не сможет подсмотреть ваш разговор.
Для ИБ-специалистов это звучит как музыка: минимизация доверия к третьим сторонам, локальная генерация ключей, отсутствие хранилищ с расшифрованными данными. Все, как мы любим. Но и здесь есть свои нюансы — особенно когда дело доходит до синхронизации устройств, восстановления доступа и ротации ключей.
Сквозное шифрование — уже серьезная защита. Но современным угрозам этого мало. Если злоумышленник получит один ключ, как насчет всех будущих сообщений? А старых? Чтобы минимизировать ущерб от любой потенциальной утечки, современные мессенджеры идут дальше: они меняют ключи постоянно. В идеале — на каждое сообщение. И вот тут на сцену выходит протокол Double Ratchet.
Сергей Полунин
Руководитель группы защиты инфраструктурных ИТ-решений компании «Газинформсервис»
Если совсем просто, то сам по себе Double Ratchet — это гибрид двух независимых механизмов, отсюда и название. Первый — это Diffie-Hellman Ratchet, который обеспечивает асинхронную смену ключей между сторонами, а второй — Symmetric-key Ratchet, то есть, симметричная цепочка, которая двигается вперед с каждым отправленным сообщением.
Когда Петя собирается написать Маше, то в каждом новом сообщении используется новый симметричный ключ, а после каждого полученного публичного DH-ключа происходит автоматический пересчет корневого ключа и сброс цепочки, поэтому получается, что каждое сообщение подписано и зашифровано своим уникальным ключом. При этом клиенты кэшируют эти ключи в буфере, а сообщения нумеруются, поэтому всегда можно понять, сколько ключей надо пропустить, чтобы найти нужный для расшифровки.
Преимущество очевидно: даже если кто-то получит доступ к текущему ключу, он не сможет расшифровать ни прошлые, ни будущие сообщения. Это — forward secrecy и post-compromise security в действии. Компрометация не превращается в катастрофу.
Что особенно ценно — протокол устойчив к нестабильному соединению. Если вы получили пять сообщений, пока были офлайн, клиент сможет корректно сдвинуть «цепочку» ключей и расшифровать все в нужном порядке. При этом каждое сообщение все равно останется зашифрованным своим уникальным ключом. Никаких проблем с доставкой и расшифровкой, даже если пакеты приходят с задержкой, не будет.
Почему это критично? Потому что устройства не живут в вакууме. Они теряются, их взламывают, ими пользуются неосторожные пользователи. В мире, где угроза может быть «здесь и сейчас», Double Ratchet делает так, чтобы одна утечка не превратилась в полный провал. Это не универсальная «броня», но очень умный способ контролировать ущерб.
Сквозное шифрование само по себе — вещь мощная, но есть тонкий момент: а вы уверены, что шифруете именно для того, с кем хотите говорить? Входящий публичный ключ — это всего лишь набор байтов, и мессенджер не всегда знает, кто за ним стоит. Чтобы не шифровать сообщения для злоумышленника, нужна аутентификация ключей. И здесь начинается самое интересное.
Дмитрий Овчинников
Архитектор информационной безопасности UserGate
Почти все современные мессенджеры, которые считаются безопасными, используют модель TOFU, — то есть, пользователь должен доверять конечной точке при первом подключении. Если впоследствии точка меняет свой идентификатор без предупреждения, то становится не доверенной.
Данная модель хорошо показывает себя в небольших сетях, однако постоянные предупреждения о возможных рисках, получаемые пользователем, и вызывают у него усталость и раздражение. Поэтому во многих современных приложениях подобные оповещения часто стараются скрыть от глаз аудитории, чтобы не провоцировать на возврат к менее надежным, но более дружелюбным средствам связи.
Чтобы подстраховаться, мессенджеры добавляют способы проверки ключей: отображение отпечатков, QR-коды для сверки, уведомления о смене ключей и другие механизмы. В Signal, например, можно лично сравнить отпечатки ключей или отсканировать QR-код при встрече. WhatsApp (мессенджер принадлежит корпорации Meta, чья деятельность признана экстремистской и запрещена в России) показывает предупреждение, если у собеседника сменился ключ, например, после переустановки приложения. Это уже лучше, чем слепое доверие.
А вот в корпоративной среде на такие штуки никто не полагается. Здесь нужно гарантированное знание, кто есть кто, и полное управление жизненным циклом ключей. Поэтому в бизнес-мессенджерах и защищенных платформах часто используют централизованную PKI — инфраструктуру открытых ключей.
Константин Ларин
Руководитель направления «Киберразведка» компании «Бастион»
PKI может оказаться удобнее TOFU по нескольким критериям, например, такой метод позволяет централизованно проводить аудиты, отзывы ключей, интеграции с системами, а также обеспечивает юридически подкрепленную базу данных.
Альтернативы TOFU:
- Out-of-band верификация (OOB) — сравнение отпечатков ключей через другой канал (QR-код, голосовой звонок).
- Web-of-Trust (WoT) — децентрализованная подпись ключей (использовался в PGP).
- Централизованные сертификаты (PKI) — сервер подписывает ключи пользователей (Matrix, корпоративные Jabber).
Администраторы выпускают и подписывают ключи, хранят записи о пользователях, могут отзывать или обновлять сертификаты централизованно. Это сложнее, дороже, но обеспечивает куда более высокий уровень контроля и соответствие требованиям регуляторов. Для домашнего чата с бабушкой TOFU сойдет. Для финансового отдела — уже нет.
Самый страшный сценарий — это когда злоумышленник уже внутри. Он получил доступ к устройству пользователя, и теперь не нужно перехватывать трафик или подменять ключи — все уже у него в руках. Что делать в такой ситуации? Современные мессенджеры стараются не просто шифровать переписку, но и ограничить последствия взлома. Здесь на сцену выходят две важные концепции: forward secrecy и post-compromise security.
Forward secrecy означает, что, даже если кто-то завладеет текущим ключом, он не сможет расшифровать старые сообщения — ключи уже удалены, и каждая часть переписки защищена отдельно. Это похоже на сжигание замка после того, как дверь закрылась.
Post-compromise security идет дальше. Она предполагает, что даже после взлома устройства можно восстановить безопасное общение — без переустановки приложения и полной перерегистрации. Иными словами, мессенджер умеет «вылезать из зараженной ямы» и восстанавливать защищенный канал при первой же возможности.
Алексей Ермаков
Инженер направления в группе развития продуктов управления доступом ГК «Солар»
Post-compromise security обеспечивается за счет регулярного обновления ключей с использованием новых DH-обменов. Даже если старый ключ скомпрометирован, злоумышленник не сможет расшифровать будущие сообщения после следующего обновления. Это свойство достигается благодаря тому, что каждый DH-обмен полностью заменяет ключи, а не обновляет их на основе скомпрометированного состояния.
Все это звучит сложно, но в реальности уже работает. В Signal протокол Double Ratchet как раз и обеспечивает forward secrecy и post-compromise security — каждый ключ живет очень недолго, и устройства автоматически договариваются о новых, а Telegram применяет подобные принципы в своих «секретных чатах» (хотя общие чаты у него не end-to-end).
Итог — взлом устройства неприятен, но не фатален. Хорошо спроектированный протокол сделает все, чтобы ущерб остался локальным и не распространился на всю переписку. Это не чудо, а уже базовая гигиена безопасности в современных мессенджерах.
Шифрование решает многое, но, к сожалению, не все. Даже самый продвинутый криптопротокол не может защитить то, что выходит за пределы шифрованного канала. А таких зон довольно много.
Первое — это метаданные. Даже если текст сообщений защищен, мессенджер почти всегда знает, кто с кем общается, когда и как часто. Эти данные могут быть очень чувствительными, особенно если речь идет о политически активных пользователях, корпоративных расследованиях или просто конкурентах, внимательно изучающих внешние связи. Некоторые мессенджеры, вроде Signal, стараются минимизировать сбор метаданных и даже шлют трафик через прокси, чтобы скрыть IP-адреса. Но полностью избавиться от утечек на этом уровне почти невозможно.
Второе — это облачные бэкапы. Многие пользователи включают резервное копирование переписки в iCloud, Google Drive и другие облака. Проблема в том, что такие бэкапы часто не шифруются на стороне клиента, а значит, могут быть прочитаны провайдером — или кем-то, кто получит к нему доступ.
И наконец, третье — доверие к клиентским приложениям. Все шифрование работает «на устройстве», но что если приложение скомпрометировано? Или в него добавлен бэкдор? Или пользователь установил фейковую версию с трояном? Сквозное шифрование здесь бессильно. Поэтому безопасность начинается с простого: качать клиент только из официальных источников, регулярно обновлять его, и не давать доступ к телефону кому попало.
Мессенджеры пытаются бороться с этими рисками: ограничивают сбор логов, дают контроль над бэкапами, внедряют проверку целостности клиента, вводят PIN-коды и биометрию на уровне приложения. Но в конечном счете безопасность — это не только криптография. Это целая экосистема, где важно все — от архитектуры до привычек пользователя.
Даже самый надежный мессенджер не гарантирует конфиденциальность переписки, если вы не обновляете приложение годами или ставите его из сомнительных источников. Обновления — это не просто новые эмодзи, а закрытие уязвимостей, о которых уже знают злоумышленники.
Если вы работаете с чувствительными данными, например, в бизнесе, ИБ или журналистике, периодически стоит вручную проверять безопасность: сверять отпечатки ключей, включать предупреждения о смене устройств, отключать бэкапы, защищать доступ к самому приложению.
А при выборе мессенджера нужно смотреть не только на удобство. Если ваша работа — это риски, ориентируйтесь на архитектуру: сквозное шифрование по умолчанию, открытый код, отсутствие облачных бэкапов и минимальный сбор метаданных. Такие мессенджеры не всегда самые «удобные», но точно самые надежные.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.
Зарегистрироваться