Курс «Архитектура мессенджера» · Часть 5 · Протоколы безопасности

Раздел 19. Чего E2EE НЕ закрывает, метаданные и бэкапы

Метаданные (кто, кому, когда, как часто) видны даже при E2EE; облачные бэкапы как «дыра» в защите; устройство как слабое звено.

Несколько разделов мы строили броню для содержимого переписки — X3DH, Double Ratchet, групповые ключи. Сквозное шифрование, E2EE (End-to-End Encryption — «шифрование от конца до конца»), действительно надёжно прячет что ты написал. Но это не волшебный щит. Есть три большие вещи, которые оно НЕ закрывает, — и именно об них спотыкается обещание «у нас зашифрованный мессенджер». Разберём все три конкретно.

Дыра 1: метаданные

Метаданные — это данные вокруг сообщения, а не его текст: кто кому писал, когда, как часто, сколько сообщений, с какого устройства, из какой точки (сетевой адрес). Сквозное шифрование прячет содержание, но метаданные оставляет на виду.

Проще всего представить это как запечатанное письмо в прозрачном конверте:

   ┌──────────────────────────────────────┐
   │  ОТ: Алиса    КОМУ: Боб    23:47       │ ← конверт: метаданные ВИДНЫ
   │   ┌────────────────────────────────┐  │
   │   │  ▓▓▓▓ зашифровано ▓▓▓▓          │  │ ← письмо: содержимое СКРЫТО
   │   └────────────────────────────────┘  │
   └──────────────────────────────────────┘

Само письмо не прочесть. Но по конверту видно отправителя, получателя и время. А теперь смотри, как много говорит один лишь конверт, без единого слова содержания:

«Пользователь A с 23:00 до 02:00 обменялся 47 сообщениями с пользователем B, а наутро оба написали в поддержку наркологической клиники.»

Содержание скрыто полностью — но картина и так ясна. Поэтому есть жёсткая фраза, которую любят на интервью: метаданные часто говорят больше, чем содержание. По ним строят «граф связей» — кто с кем общается.

Почему сервер неизбежно их видит. Чтобы доставить сообщение, серверу необходимо знать отправителя, получателя и время — иначе он физически не сможет его маршрутизировать (Разделы 4 и 12). Конверт нельзя запечатать так же, как письмо: по нему и работает доставка. Некоторые приложения метаданные минимизируют (скрывают отправителя, не хранят логи), но свести к нулю их нельзя.

Дыра 2: бэкапы

Самая контринтуитивная ловушка. Твои сообщения зашифрованы сквозным образом и в пути, и на сервере. Но если ты включаешь резервную копию (бэкап) истории в облако — в iCloud, Google Drive или облако самого мессенджера — и этот бэкап не зашифрован сквозным образом, то содержимое лежит читаемым в этом облаке.

По шагам, почему это «ломает» защиту:

  1. Мессенджер бережно шифрует переписку, сервер видит только кашу.
  2. Ты включаешь обычный облачный бэкап «чтобы не потерять историю».
  3. Бэкап — это копия переписки, сделанная ВНЕ защищённого канала.
  4. Если копия незашифрована, вся та переписка, которую так берегли, теперь спокойно читается в облаке.

Реальный пример: переписка в WhatsApp зашифрована сквозным образом, но долгое время облачный бэкап в Google Drive или iCloud был незашифрованным — то есть аккуратно зашифрованное содержимое утекало через копию. Позже добавили сквозное шифрование бэкапов, но по желанию (надо включить вручную).

И коварная деталь: даже если ты сам(а) не делаешь бэкап, твои сообщения лежат и на устройстве собеседника — а он может включить незашифрованный бэкап. Тогда твоя переписка окажется читаемой в его облаке. То есть твоя приватность частично зависит и от чужих настроек.

Вывод: цепочка крепка лишь настолько, насколько крепка её слабейшая копия. Один незашифрованный бэкап открывает всю заботливо зашифрованную переписку.

Дыра 3: само устройство

Сквозное шифрование защищает сообщения между устройствами и от сервера. Но на самом устройстве сообщение приходится расшифровать — иначе ты его не прочитаешь. Значит, кто контролирует устройство, видит всё:

  • шпионская программа на телефоне читает уже расшифрованные сообщения прямо с экрана;
  • разблокированный телефон в чужих руках;
  • скриншот, который сделает сам собеседник.

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

Что это значит для продукта

«У нас есть сквозное шифрование» ≠ «ваше общение приватно». Зрелый ответ называет, что остаётся открытым: метаданные, бэкапы, конечные устройства. Это прямо перекликается с нашим разбором мессенджера MAX: даже будь там настоящее сквозное шифрование, оно не спрятало бы метаданные — а агрессивный сбор метаданных сам по себе бьёт по приватности.

На интервью сильный ход — не размахивать флагом «зашифровано», а честно перечислить модель угроз (Раздел 14): от чего защищает, а что остаётся уязвимым.

Вопросы интервьюера (с разбором)

«Что сервер всё равно знает при включённом сквозном шифровании?» Образец: «Содержимое — нет, а метаданные — да: кто кому писал, когда, как часто, сколько, с какого устройства и адреса. Видит он их неизбежно, потому что без отправителя, получателя и времени не сможет доставить сообщение. И по этим метаданным строится граф связей, который нередко говорит больше, чем сам текст.»

«Почему бэкап в облако может сломать сквозное шифрование?» Образец: «Потому что бэкап — это копия переписки, сделанная вне защищённого канала. Если резервная копия в облаке не зашифрована сквозным образом, то содержимое, которое мессенджер так берёг, лежит там читаемым. Причём это может быть бэкап даже не мой, а собеседника — тогда моя переписка утекает через его облако. Цепочка крепка лишь настолько, насколько крепка слабейшая копия.»

«Где на самом деле самое слабое звено?» Образец: «Конечные устройства. На устройстве сообщения по необходимости расшифрованы, поэтому шпионская программа, разблокированный телефон или скриншот собеседника обходят любое шифрование, ничего не взламывая. Сквозное шифрование защищает путь между концами, но не сами концы — и именно концы атаковать проще всего.»


#мессенджер #безопасность #метаданные #бэкапы #слабое-звено #e2ee #подготовка-к-интервью