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

Раздел 14. Транспортное против сквозного шифрования

TLS «клиент — сервер» против end-to-end; что видит сервер в каждом случае; модель угроз — кто от кого защищается.

Главная проблема: сообщение идёт через чужие руки

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

Если сообщение не зашифровано, оно идёт обычным читаемым текстом. А значит, любой на этом пути может его прочитать, скопировать и даже незаметно изменить.

Аналогия: открытка. Если ты пишешь на открытке, её прочтёт каждый, через чьи руки она пройдёт по дороге. Шифрование превращает открытку в запечатанное письмо, которое может открыть только адресат.

Что вообще делает шифрование

Если совсем просто: оно превращает сообщение в бессмыслицу, которую можно вернуть в читаемый вид только при наличии правильного «ключа». Для всех, у кого ключа нет, это просто мусор из символов.

От чего конкретно оно защищает

Три разные вещи, и это полезно различать:

  • Подслушивание. Тот, кто следит за сетью, видит только кашу из байтов, а не твои слова. Это важно даже не столько для «секретов», сколько для паролей, кодов из банка, личных фото, геолокации.
  • Подмена. Шифрование позволяет заметить, если кто-то по дороге изменил сообщение. Без него злоумышленник мог бы тихо переправить «переведи 100» в «переведи 10000», и никто бы не понял.
  • Подмена собеседника. Когда устройство и сервер «договариваются» о шифровании, они заодно проверяют, что говорят с тем самым, а не с самозванцем, который влез посередине (это называют «человек посередине»).

Кто эти «плохие» на самом деле

Это не паранойя — речь о вполне реальных участниках пути:

  • кто-то в том же публичном Wi-Fi (кафе, аэропорт);
  • интернет-провайдер или мобильный оператор;
  • тот, кто управляет сетью, в которой ты сидишь;
  • а для сквозного шифрования — ещё и сами серверы мессенджера и любой, кто в них взломается.

А если «мне нечего скрывать»

Частое возражение, и вот почему оно не работает. Шифрование — это не только про секреты, а про то, кто распоряжается твоей информацией. Через сообщения текут пароли, коды подтверждения, личные фото, рабочие договорённости — это ценно само по себе. К тому же ты защищаешь не только себя, но и собеседника и тех, о ком вы пишете. И без этого мессенджером просто нельзя пользоваться для чего-то важного — никто не доверит ему ничего серьёзного.

Два вида шифрования

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

Аналогия: бронированный фургон между тобой и почтой. По дороге письмо не вскроют. Но на почте его достают, сортируют, читают — почта видит, что внутри.

Сквозное шифрование (end-to-end, сокращённо E2EE). Шифрует само сообщение от устройства отправителя до устройства получателя. По пути — включая сам сервер — его никто не может прочитать. Сервер видит только зашифрованные байты.

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

Важно: сквозное шифрование обычно идёт поверх транспортного, а не вместо него. То есть слоёв два — и канал зашифрован (TLS), и содержимое отдельно (E2EE).

Что видит сервер — главный вопрос

Вся разница сводится к одному: что доступно серверу.

Только транспортное (без сквозного): сервер видит полное содержимое сообщений. Он их расшифровывает у себя, хранит в открытом виде, может искать по ним, читать, строить на них серверные функции. Это модель «облачных» мессенджеров (про неё подробно — Раздел 17).

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

Отсюда, кстати, ограничение из Раздела 5: при сквозном шифровании сервер не может положить текст в пуш-уведомление — он его не видит.

Модель угроз: кто от кого защищается

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

Транспортное (TLS) защищает от подслушивания сети: злоумышленника на том же Wi-Fi, провайдера, перехвата сигнала в пути. Но не защищает от самого сервера: оператор видит содержимое, при взломе сервера переписка утечёт, а по запросу властей оператор может её выдать — он же её видит.

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

Чего не закрывает ни одно из них:

  • взлом самого устройства — если телефон в руках злоумышленника, он видит всё уже расшифрованным;
  • «слив» собеседником — получатель может показать переписку кому угодно;
  • метаданные — кто, кому, когда и как часто писал; это видно даже при сквозном шифровании (отдельно разберём в Разделе 19).

Зачем это знать продакту

Выбор «облачно (сервер читает) или сквозно (не читает)» — это продуктовый компромисс, а не просто галочка безопасности:

  • Сквозное шифрование даёт сильное обещание приватности — «мы не можем прочитать вашу переписку» (так позиционируются Signal и WhatsApp).
  • Но оно мешает облачным удобствам: поиску по сообщениям на сервере, простому мультидевайсу (вспомни Раздел 10 — нужно шифровать под каждое устройство), серверным функциям, лёгкому восстановлению истории.

Поэтому это осознанная развилка между приватностью и удобством, и её надо уметь объяснить (детали — Раздел 17).

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

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

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

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


#мессенджер #безопасность #шифрование #tls #e2ee #модель-угроз #подготовка-к-интервью