442b46ec243008d4fff82ec51a77ce09.png

Это продолжение темы о безопасности нашей переписки и звонков в популярных мессенджерах. В прошлый раз я подробно рассказал о Viber и WhatsApp - если коротко, то им, оказывается, можно доверять при соблюдении некоторых условий. Также мы подробно разобрали заявления Telegram о его полной безопасности, и выяснили, что мессенджер, в целом, защищен, но информация о недоступности данных слегка приукрашена - при определенных обстоятельствах у сотрудников Telegram таки-может быть доступ к перепискам. Подробности - в первой части, welcome.
  • Кстати, после первой части подписчики спрашивали меня о звонках через Viber, WhatsApp и Telegram. Согласно их технической документации, звонки шифруются точно так же, как сообщения, то бишь по стандарту «end-to-end». Исключение - Telegram, в котором по умолчанию нет сквозного шифрования чатов, однако есть сквозное шифрование звонков.
Сегодня на повестке дня - iMessage и Signal, мастодонты шифрования, безопасности и авторитетности. Я изучил всю информацию о методах шифрования и хранения данных пользователя, которую эти бренды посчитали нужным рассказать на своих официальных ресурсах. Информации много, она подробна - как и в случае с «большой тройкой» из первой части. Но кое-что отличается. Обо всём по порядку.
Предупреждаю сразу - текста очень много!



Signal Messenger
Продукт не очень известен, и, на мой взгляд, обществом недооценен. С другой стороны, Signal никогда не позиционировал себя как попсовый мессенджер для ути-пути. Хотя ути-пути тут тоже вполне возможны. О «Сигнале» как о продукте я делал большой подробный обзор - там можно найти всё, что может заинтересовать простого пользователя. А здесь поговорим только о его приватности.

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

В случае с Signal, реализовано почти классическое оконечное шифрование - с использованием ключей, разбитых на публичную и приватную часть. Публичные половинки ключей устанавливают соединение, приватные - шифруют переписку и звонки. Что касается сообщений, которые не могут быть доставлены сразу - они шифруются на устройстве отправителя и ожидают доставки на сервере в течение 30 дней. Всё классически. В этом смысле, «секретные чаты» Telegram работают по более «честному шифрованию» - сообщения просто не отправляются, если устройство получателя не может их принять. Но, так как шифрование происходит на устройстве отправителя его приватной половинкой ключа, беды в этом нет, и уязвимости тоже.


Новостью для меня было то, что в Signal, оказывается, шифруется абсолютно всё, включая даже контакты и данные личного профиля. Да-да, здесь нет ошибки - даже данные профиля. В этом смысле Signal-ом мы довольны больше, так как Viber, WhatsApp и Telegram хранят у себя наши контакты.

В чем уязвимость?
  • во-первых, данные контактов могут быть слиты и попасть в лучшем случае в спам-базу;
  • во-вторых, в случае необходимости, можно сверить список контактов пользователя с другим пользователем и идентифицировать его как одного и того же.
Такие дела. Signal в этом смысле выглядит сильно надежнее, хотя сама переписка и звонки у всех, кроме Telegram, защищена плюс-минус одинаково хорошо.


Образец ответа Signal на запросы спецслужб (источник - signal.org)

Signal официально заявляет, что он может поделиться данными пользователя, когда это согласуется с законом, а также используется для выявления мошенничества/преступления. Это заявление чуть было не подорвало мою веру в Signal, пока я не углубился в техноты и не увидел, какую именно информацию Signal может предоставить. Причем эта информация достоверна, так как в свое время Signal проверяло на прочность американское правительство, требуя выдачи максимальной информации по громкому теракту в 2016-м году.
Готовы?
  • «дата и время регистрации в Signal
  • «дата последнего подключения».
  • всё.
Я считаю, что это победа.

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

Контакты. Signal работает с ними полнофункционально, в штатном режиме. То бишь, я вижу, кто из моих контактов есть в Signal, вижу, когда кто-то из них присоединился, вижу статусы «В сети». Всё это с одним исключением - информация из списка контактов шифруется на устройстве, а уже потом передается на сервер, для обеспечения всего вышеперечисленного. То бишь, слив/анализ моих контактов третьими лицами полностью исключен.
Дополнительные устройства. Signal полноценно работает с iPad и Desktop. При этом для каждого подключенного устройства создается отдельный ключ из двух половинок, и каждое входящее сообщение ширфуется и расшифровывается уникально именно столько раз, сколько устройств подключено к моему аккаунту. С этим проблем нет. Из этого вытекает другой факт - одни и те же переписки на трех моих девайсах зашифрованы тремя разными ключами.
А что с историей переписок? Неоднозначно. С одной стороны, подразумевается, что использование сквозного шифрования исключает возможность хранения переписок где-либо еще с целью их резервного копирования. С другой - иногда историю чатов действительно необходимо перенести с устройства на устройство.

Signal (по канонам end-to-end) не хранит историю переписок где-либо вне устройства пользователя. Однако совсем недавно Signal обзавелся возможностью переноса истории чатов при переходе со смартфона на смартфон - делает он это напрямую между устройствами, без подключения к серверу. Новое устройство авторизуется в старом с помощью сгенерированного QR-кода, после чего в течение нескольких минут вся переписка перемещается на новый девайс. Перенести их можно только на подобные устройства (то бишь, смартфон→смартфон, или iPad→iPad). Старый девайс при этом вылетает из аккаунта и больше не сможет отправлять и принимать сообщения. Вот так просто и безопасно.

Однако этот способ не решает все проблемы. Однозначно могут возникнуть ситуации, когда переписок пользователь просто лишится. Это нужно учитывать. Signal не идет на компромиссы, подобно Telegram, поэтому стоит учитывать этот момент. Переписки хранятся только на устройстве юзера, и могут быть утеряны, если определенные условия не будут соблюдены.





Apple iMessage

На десерт я оставил нативный мессенджер от Apple. В РФ его также не особо жалуют, предпочитая более попосовые продукты. Однако у iMessage в плане безопасности есть кое-что, чего нет ни у одного из разобранных выше мессенджеров.
  • Кстати, нужно упомянуть, что, говоря про iMessage, я подразумеваю и FaceTime, так как способы их защиты у Apple идентичны.
iMessage, как и все остальные, использует сквозное end-to-end шифрование. Это классический метод, с уже поднадоевшими нам половинками ключей, генерируемыми устройством юзера. Ничего нового в этом смысле на сайте Apple я не нашел.
С сообщениями, ожидающими доставки всё точно так же, как у других - они шифруются на устройстве отправителя и ожидают доставки на сервере в течение 30 дней. Сообщения до 16Кб используют протокол APNs (Apple Push Notifications), это и есть своего рода разновидность применения оконечного шифрования от Apple. Если сообщение длинное или содержит вложения - вложения шифруются с AES-256 случайным ключом и выгружается в iCloud, а не передается напрямую получателю. Такой метод, в целом, не дает уязвимости, как таковой, просто нужно знать, что вложения в зашифрованном виде на серверах имеются (опять-таки, хранение до 30 дней).

7d5bba91301983361260a5c93dd945b7.png
Схема доставки сообщений - с сайта Apple

  • Один момент, которого не найдешь у прочих популярных мессенджеров - iMessage можно использовать без авторизации по номеру телефона. По личному желанию можно не позволять iPhone использовать твой номер телефона для добавления в iMessage и использовать для звонков и переписок только адрес электронной почты, который в таком случае будет использоваться как логин. При таком методе усложняется создание диалога, так как у каждого, кто захочет с тобой поговорить, должна быть сохранена твоя почта Apple ID, иначе он просто не найдет тебя в iMessage. Но сам факт - это интересно.
Какие данные о пользователях iMessage хранятся в Apple?
Из того, что я нашел:
  • телефонные номера и адреса электронной почты, привязанные к учетке,
  • информация о вызовах FaceTime: кто был в разговоре и конфигурация сети на девайсе участников (то бишь, это был Wi-Fi, 3G или LTE, например).
  • в Службе идентификации Apple (IDS) могут храниться открытые ключи iMessage (они хранятся у всех, на то они и открытые), адреса APNs (смитри выше), номера телефонов и адреса e-mail, которые используются для установки соединения между пользователями.
Ничего необычного, в общем. Получается, при обычном сценарии переписки iMessage и звонки FaceTime защищены полностью, а данных о самих пользователях у Apple не так много (хотя рекорд по минимизации хранения данных остается у Signal).

И вот здесь у меня возник серьезный вопрос - а как же «Сообщения iCloud»?

Ведь этот функционал хранит полную резервную копию моей переписки iMessage на сервере и дает возможность восстановить ее на новом устройстве. Как же тогда быть с оконечным шифрованием?


В первую очередь, стоит сказать, что использовать «Сообщения iCloud» или нет - юзер решает сам. Одно переключение тумблера в Настройках девайса - и всё. В Telegram, например, такой возможности нет - чтобы не хранить переписку в облаке, нужно сознательно каждый раз с каждым контактом создавать «секретный чат».

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

Из того, что можно найти на сайте Apple в разделах «iMessage», «iCloud» и «Шифрование», я сделал вывод, что облачное хранилище «Сообщений iCloud»… как бы это сказать попроще… в общем, имитирует отдельный девайс. То бишь, входящие и исходящие сообщения отдельно шифруются для моего айфона, айпада и «Сообщений iCloud». А восстановление происходит путем генерации AES-256 ключа, так как, чтобы восстановить сообщения из облака, требуется ввести код-пароль от старого устройства. По-видимому, код-пароль от каждого девайса служит для генерации приватного ключа к сообщениям в облаке из каждого девайса.
  • Эти выводы косвенно подтверждаются тем фактом, что, при включении ранее не использовавшейся мною функции «Сообщения iCloud» на трех моих девайсах, история переписок с них не объединяется в облаке и на самих устройствах, а остается различной на каждом. То бишь, как не было у меня некоторых сообщений в истории сообщений iPhone, так их и нет - хотя эти сообщения имеются в истории сообщений iPad.
Иными словами, для каждого моего устройства в облаке создается отдельная «песочница», которая работает как отдельный девайс, и которую защищает сквозное шифрование с ключом, сгенерированным с помощью код-пароля конкретного девайса. Все это вполне доступно для «придирок», однако реализовано однозначно лучше и надежнее, чем в Viber и WhatsApp, где облачное резервное копирование лучше отключить вовсе.

Знаю, сложнаа, простите.
Как смог.


Ну и, наконец, синхронизация всех подключенных к аккаунту устройств работает без вопросов. Точно так же, как у всех, создается ключ для каждого отдельного устройства, и входящие/исходящие сообщения/звонки шифруются отдельно для каждого моего устройства. То бишь, если на момент получения сообщения мой iPad вдруг в аккаунте не авторизован, после авторизации этого сообщения он не получит (если «Сообщения iCloud» выключены, разумеется).
Всё по стандарту, всё хорошо.

Цикл о мессенджерах закончен. Выводы делать тебе самому!
На подготовку этой статьи ушло около 5 часов, так что я буду рад получить «лайк» за подробность и мозговой штурм))
~~~
👍 Подписаться на блог:
Telegram → https://t.me/jeronimos_tech
ВКонтакте → https://vk.com/jeronimos_tech
~