Новости и события » Общество » Почему Telegram не защищает приватность переписки

Почему Telegram не защищает приватность переписки

Почему Telegram не защищает приватность переписки

Когда в 2011 году за Павлом Дуровым пришел спецназ хотя есть версия, что это инсценировка, он написал своему брату Николаю. И понял, что надежного способа обмениваться сообщениями у него, в общем-то, нет.

Николай Дуров ранее разработал протокол шифрования переписки MTProto. Она легла в основу Telegram. Фактически мессенджер стал попыткой тестирования MTProto на больших нагрузках.

Но даже сейчас, после тысяч багфиксов и улучшений, Telegram не гарантирует безопасность и конфиденциальность. И сквозное шифрование - не панацея.

Как работает сквозное шифрование в Telegram

В Telegram используется два вида шифрования: "клиент-сервер" для обычных облачных, в том числе групповых чатов, и "клиент-клиент" (сквозное, или оконечное шифрование, E2EE, end-to-end encryption).

В общих чертах сквозное шифрование работает так.

У отправителя и получателя есть по паре ключей: один приватный, второй публичный. Приватные ключи создаются и хранятся на устройствах пользователей. На сервер эти ключи не попадают.

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

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

Доступ к исходному тексту сообщения есть только у отправителя, а после расшифровки - и у получателя. и ни у кого больше.

Схема работы алгоритма Диффи-Хеллмана. Алиса и Боб имеют по паре ключей - публичный и приватный. g и p - публичные ключи, А и В - приватные. mod - деление по модулю (остаток от деления), К - секрет, или эфемерный ключ.

Метод действительно мощный. Но... все не так однозначно.

Главное достоинство алгоритма Диффи-Хеллмана - возможность передавать открытые ключи и сообщения по публичным каналам. Но все ломается, если хакер проведет активную MITM-атаку (атаку "человек посередине") и подменит трафик.

Что же с ключами для облачных чатов? Один ключ у пользователя, второй - в облаке. И теоретически "облачный" ключ можно выдать кому угодно.

Увы, Telegram уже взламывали, причем демонстративно

Пользователь Habr под ником ne555 год назад подробно описал, как взломать Telegram. Он обошел сквозное шифрование мессенджера в Android и отправил разработчикам баг-репорт.

Не получив ответа, ne555 связался с волонтерами, которые пообещали донести информацию до руководства Telegram. Но реакции не последовало.

ne555 использовал смартфоны с Android 7.0, Android 6.0 (root-доступ), Android 4.4.2 (root-доступ), а также ПК с GNU/Linux/Windows (с root-доступом) и программу для восстановления паролей по их хешам John The Ripper (JTR, доступна в публичном репозитории на GitHub). JTR позволил распарсить Telegram local code (pin приложения) за секунды, получить нужные файлы и данные для взлома.

Результат: хакер обошел двухфакторную авторизацию, получил доступ к секретным чатам со сквозным шифрованием, смог читать и отправлять сообщения в них.

При этом реальный владелец аккаунта даже не видел, что его взломали.

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

В общем, хакер успел провести еще несколько экспериментов, пока аккаунт в Telegram не заблокировали и не удалили секретные чаты. Небыстро, прямо скажем.

Пароль любой длины в Telegram тоже можно обойти

Действительно, четырехзначный pin - не самая надежная защита аккаунта. Полноценный пароль надежнее. Но ne555 выяснил, что и он не спасает - существует схема обхода пароля любой длины.

Хакер взломал пароль длиной более 30 символов, настроил на своем устройстве разблокировку отпечатком пальца. А также смог повторно войти в чужой аккаунт и получить доступ ко всем секретным чатам.

Эксперт отметил: в Telegram принудительно интегрирована функция "разблокировка отпечатком пальца". Если на вашем смартфоне нет сканера отпечатка, вы не сможете настроить или отключить ее в Telegram.

Кроме того, хакеру удалось обойти шифрование самого устройства. И получить данные Telegram для доступа к секретным чатам.

Серверы Telegram уже взламывали, причем публично

Еще один Habr-пост - от пользователя Bo0oM, написан в июле 2019 года. Хакер заявил, что взломал сервер Telegram через стандартные уязвимости и искренне удивился, как отвратительно компания относится к безопасности.

Взломщик подчеркнул: в 2019 году весь Telegram использует nginx, а этот конкретный сервер - не самый надежный Apache. Bo0oM отправил некорректный запрос, и сервер слегка приуныл... За описание этого и других найденных в процессе багов получил 2500 долларов от службы безопасности мессенджера.

С одной стороны, в этом случае Bo0oM взломал не весь мессенджер, а лишь конкретный сервер. Но если пойти дальше, можно было бы наворотить гораздо больше - научиться "ронять" серверы, вытаскивать логи падения и т. д.

И вы можете попробовать заработать. Письма с багами можно отправлять на [email protected].

Передаваемые через Telegram файлы уже перехватывали

В июне Symantec рассказал об уязвимости Media File Jacking для Android-версиях Telegram и WhatsApp. Оказалось, что мессенджеры сохраняют изображения в своем внутреннем хранилище, либо во внешнем разделе памяти. Второе опасно.

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

Так что скриншоты с номерами карт и кошельков таким способом точно передавать не стоит. Как и приватные фото из душа.

Связи пользователей Telegram друг с другом тоже раскрывали

Еще один скандал вокруг Telegram разразился 30 октября 2018 года. Эксперт по кибербезопасности Натаниэль Сачи выяснил, что десктопный Telegram хранит переписку на жестком диске в незашифрованном виде.

Сачи заявил: Telegram использует базу данных SQLite для хранения сообщений. Прочитать ее "в лоб" не получится, но имена и телефонные номера вполне можно проассоциировать друг с другом.

Конечно, это проблема не столько Telegram Desktop, сколько уровня защиты устройства пользователя в целом. Но... Раздолбайство со стороны разработчиков, мягко говоря. Хотя Павел Дуров не считает проблемой такое хранение данных.

У Telegram закрытый код, поэтому объективно проверить его безопасность не получается

Разработчики Telegram заявляют:

Все хранится в зашифрованном виде, чаты хорошо зашифрованы, а ключи шифрования хранятся по частям в датацентрах в юрисдикции разных стран.

Исходный код клиентов для Telegram является открытым. А вот код сервера открывать не рискнули, и это рождает массу вопросов.

Но клиент работает через API и никак не взаимодействуя напрямую с "безопасными датацентрами". Что происходит внутри этого черного ящика, неизвестно.

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

Telegram для iOS издает компания Telegram LLC, а для Android - Telegram FZ-LLC. Компании основали в США и Великобритании, где действует так называемый Gag order. Он предполагает, в том числе, что правоохранительные органы могут запретить разработчикам разглашать сведения о том, что те предоставляли им информацию. В том числе о серверах, ключах шифрования, пользователях и др.

Telegram объявлял конкурс взлома на $200 тыс., которые нереально выиграть

Братья Дуровы считали MTProto настолько неуязвимым, что в 2013 году даже пообещали награду в 200 тыс. долларов за взлом этого протокола и чтение переписки между ними. В переписке содержался адрес, на который нужно было отправить письмо.

Спустя несколько дней пользователь с ником x7mz, который даже не был экспертом в криптографии, обнаружил уязвимость в протоколе. Она позволяла провести MITM-атаку на секретные чаты. Правда, переписку пользователь не расшифровал, так что ему дали лишь 100 тыс. долларов.

Протокол в дальнейшем доработали и объявили новый конкурс. Модель возможной атаки расширили - например, разрешили выступать в роли сервера MTProto и менять пересылаемые данные.

Но, по мнению экспертов, такие конкурсы - просто дешевая реклама. Они не позволяют доказать безопасности шифрования и вводят пользователей в заблуждение.

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

Присланные отчеты анализируют случайные люди. К тому же 100-200 тыс. долларов - слишком мало, чтобы это было интересно командам опытных криптоаналитиков.

Впрочем, дыры в MTProto находят регулярно (один, два, три). И без финансовой мотивации.

Многие эксперты считают защиту в Telegram просто маркетингом

В Telegram не намерены рассказывать о протоколе MTProto 2.0, да и внешний аудит не проводили ни разу.

Еще один момент: что происходит, когда пользователь Telegram отправляет сообщения, а адресат не в сети? Вероятно, сообщения отправляются на серверы Telegram, объединенные в виртуальное облако. Они синхронизируются между собой. Как только адресат появится в сети, он получит сообщения.

Таким образом, трафик в любом случае проходит через сервер. Хотя многие эксперты считают, что логичнее было бы установить соединение "клиент - клиент" - например, пиринговое (P2P).

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

Также специалисты считают, что алгоритм Диффи-Хеллмана в Telegram специально ослаблен на уровне генератора псевдослучайных чисел. Эти числа не генерируются на вашем смартфоне или ПК - приложение запрашивает их с сервера. Как там организована генерация, знают только разработчики.

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

Привязка к телефону - последний гвоздь в крышку гроба

Учетные записи в Telegram привязаны к номерам телефона. Это сказывается и на анонимности, и на безопасности.

Коды подтверждения приходят в SMS. Давно всем известная дыра в протоколе сотовой связи позволяет перехватывать и подменять их.

Перехватив код, можно получить доступ к переписке в обычных чатах. Даже не придется ломать MTProto. Сервер автоматически сменит ключ и дешифрует недоставленные сообщения. И это как минимум!

Еще одна проблема - push-уведомления. Именно они оповещают о новых входящих без запуска мессенджера. Но сервер push-уведомлений - это фактически разрешенная вами атака "человека посередине". И такая ситуация во всех популярных мессенджерах.

Что делать обычному пользователю Telegram?

Не вести приватных бесед в мессенджерах. Не передавать через них информацию, которая может быть использована против вас.

Альтернатива Telegram - например, Signal. Его рекомендовали основатель WikiLeaks Джулиан Ассандж и экс-сотрудник АНБ и ЦР Эдвард Сноуден.

Но и Signal не раз успешно атаковали. Хотя это сложнее, чем взломать Telegram.

Другой вариант - мессенджеры с поддержкой OTR: Adium, Conversations Legacy, Xabber, Pidgin (с плагином), Conversations и др. И личные встречи в чистом поле без свидетелей.

Почему Telegram не защищает приватность переписки

Почему Telegram не защищает приватность переписки

Почему Telegram не защищает приватность переписки

Почему Telegram не защищает приватность переписки

Android


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх