Почему мессенджеры не защитят тайну переписки?

Qwelcer

Начинающий
Регистрация
Сообщения
15
Реакции
0
1619623927114.jpg

Сквозное шифрование (end-to-end encryption), считается панацеей от настойчивых попыток хакеров и силовых ведомств получить доступ к вашим перепискам. Давайте посмотрим, как с этим обстоят дела на самом деле, на примере популярных мессенджеров.

Шифрование в мессенджерах
Пожалуй, начнем с того, что E2EE имеет свои особенности в каждом мессенджере. Например в Viber, сквозное шифрование неактивно по умолчанию, да и появилось только в шестой версии. В Telegram E2EE используется только в секретных чатах, причем реализованы они довольно странно.
Изначально, в мессенджерах применялся протокол OTR (Off-the-Record). Он использует симметричное шифрование AES в режиме CTR, протокол обмена ключами DH и хеш-функцию SHA-1. По сути, протокол OTR выполняет аутентификацию собеседников и шифрует переписку между ними. Однако безопасен он до тех пор, пока участники разговора регулярно проверяют отпечатки открытых ключей друг друга и противостоят атакам по другим векторам (включая социальную инженерию).
Главный недостаток OTR заключается в том, что после отправки нового ключа требуется дождаться подтверждения от собеседника. Если он офлайн, то связь будет временно невозможна. Одним из выходов стал алгоритм Double Ratchet (DR), разработанный пять лет назад. Сегодня DR используется в Signal, WhatsApp, Viber и многих других мессенджерах, поддерживающих сквозное шифрование по умолчанию или как отдельную опцию (секретные чаты).

5e0511bf97017cfdd9c32.jpg



Сквозное шифрование
Схема E2EE использует комбинацию из криптографических систем с открытым и закрытым ключом. В ней используется масса взаимосвязанных ключей, часть из которых обязательно попадает на сервер и, более того, обязательно загружается на него до начала переписки, чтобы написать сообщение можно было в произвольный момент.
Термин «сообщение» в данном случае используется в широком смысле. Это может быть текст, медиафайл или служебные метаданные, которыми мессенджер обменивается с сервером.
Основная особенность переписки в мессенджерах в том, что из-за типовых метаданных, атакующий, за короткое время может перехватить большой объем предсказуемого шифротекста, львиная доля которого будет соответствовать известному открытому тексту. В случае, если переписка будет шифроваться одним ключом, то при успешной атаке окажутся скомпрометированными все ранее написанные сообщения и даже те, которые собеседники напишут в будущем.

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

Странности Telegram
С Telegram все покрыто завесой тайны. О протоколе MTProto 2.0 есть только частичные сведения. Его внешний аудит не выполнялся, а опенсорсная модель Telegram используется в сильно искаженном виде и исключительно с маркетинговыми целями.


3f93c7d91338dc4ee8794.jpg



Если исходить из официального описания, все недоставленные сообщения временно хранятся на серверах Telegram, которые в свою очередь синхронизируются между собой, чтобы упорядочить и доставить сообщения одному или нескольким собеседникам в определенном порядке.
В Telegram трафик передается через серверы даже при открытии секретного чата, для которого логичнее было бы сделать P2P-соединение. Напрашивается вполне логичный вывод, что без постоянного использования серверов Telegram, связь в этом мессенджере вообще не работает. Однако другие мессенджеры могут использовать свои серверы лишь на начальном этапе, например, для сопоставления текущих IP-адресов собеседников и организации между ними прямого соединения. Telegram же так не умеет.
Другой частый аргумент в пользу безопасности Telegram — открытый исходный код. Однако в репозиториях нет самого главного - исходного кода серверной части, так как код клиентской обычно неактуален. Репозитории Telegram обновляются с большой задержкой, и в них почти всегда лежат только старые версии. Нет даже возможности проверить, действительно ли из исходников компилируется то, что сейчас раздается как готовая сборка.
Именно поэтому говорить про аудит мессенджера фактически бессмысленно. Пока специалисты несколько месяцев копаются в старом коде, выйдет десяток новых версий Telegram, где будут переписаны огромные куски кода. Чтобы сделать уязвимой всю систему шифрования, достаточно замены одного байта — например, одного условного перехода.
Тысяча и одна уязвимость

c10d707af07ec81b9c173.jpg



Signal — один из немногих мессенджеров, чей протокол проходил внешний аудит (PDF). Ниже будут представлены основные выводы.

Огромная брешь заключается в том, что коды подтверждения приходят в SMS, которые без труда можно перехватить через известную уязвимость в протоколе сотовой связи SS7. Так атакующий получит доступ ко всей переписке, не имея при этом ключей шифрования и даже не пытаясь взломать Signal/Proteus/MTProto.

Еще одна дыра в модели безопасности — push-уведомления. Без них вы не сможете узнать, что вам пришло сообщение, пока сами не откроете приложение. таким образом сервер push-уведомлений выступает в роли «человека посередине».

Выводы
Хоть практически во всех современных мессенджерах и заявлена поддержка сквозного шифрования, но как оказалось, очень часто она реализована со странностями. К тому же в коде самих приложений, много других дыр, которые были оставлены случайно либо намеренно. Но последнее кажется куда более вероятным, если учесть, сколько денег и труда профессионалов было вложено в их разработку. Старайтесь соблюдать баланс между комфортом и привычным наслаждением паранойей, и не ведите через мессенджеры действительно приватных бесед. Для этого есть множество опенсорсных альтернатив.
 

Darkfos

Начинающий
Регистрация
Сообщения
10
Реакции
0
Спасибо автору за реально классный материал.
Мы катимся в бездну…на жабу никто не перейдет,на сигнал и то не охотно переходят…
Вообще почитаю переведенные доп статьи и буду думать об этом.
 
Сверху