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

Ксения Шестакова avatar | 27
FavoriteLoading В закладки
Почему 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. Давно всем известная дыра в протоколе сотовой связи SS7 позволяет перехватывать и подменять их. 

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

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

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

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

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

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

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

Рейтинг поста:

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (4.86 из 5, оценили: 28)
🤓 Хочешь больше? Подпишись на наш Telegramнаш Telegram.
... и не забывай читать наш Facebook и Twitter 🍒
FavoriteLoading В закладки
undefined
iPhones.ru
Разбираемся, что там на самом деле с безопасностью в Telegram.
Прокомментировать

🙈 Комментарии 27

  1. S647 avatar
    S64710 октябрь в 12:55
    0

    Я кстати, последнее время заметил проблему в нем. Хочу зайти через рабочий компьютер в telegram web(пусть даже это будет зеркало) и когда пароль должен придти в его в итоге нет. Причём аналогичную схему делал и через телефон (заходил в web версию через браузер) и все нормально приходило.

  2. sibalk10 октябрь в 13:14
    2

    «Другой вариант – мессенджеры с поддержкой OTR: Adium, Conversations Legacy, Xabber, Pidgin (с плагином), Conversations и др.»

    Зачем ссылки на Google Play на сайте iphones? Для iOS только Signal?
    Что про wire скажете?

    walkman00 avatar
    walkman0010 октябрь в 21:23
    0

    @sibalk, поддержу. Ни одного вменяемого XMPP-мессенджера на iOS не нашел, но давать ссылку на Гугл – издевательство :)

  3. ZloySega avatar
    ZloySega10 октябрь в 13:26
    8

    думал в конце будет ссылка на тамтам

    ShamanskyRobert avatar
    ShamanskyRobert10 октябрь в 14:19
    1

    @ZloySega, на Mail.ru Агент ))

  4. Sasha Versus avatar
    Sasha Versus10 октябрь в 13:33
    0

    Привет от Threema ;)

  5. Disney avatar
    Disney10 октябрь в 13:46
    1

    Это скорей для политиков, оппозиционеров, бизнесменов встреча в чистом поле (хотя и там могут прослушать, перехватить и тд). Для большинства людей прятать то особо и нечего, максимум политические репосты. Хотя, статья очень интересная))))

  6. Trooper avatar
    Trooper10 октябрь в 14:02
    5

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

    Антон Гpахольский avatar
    Антон Гpахольский10 октябрь в 15:04
    9

    @Trooper, бот всегда говорил и будет говорить, а другие боты его лайкать. только толку от твоей жизни, бот, ноль

  7. v1z avatar
    v1z10 октябрь в 14:08
    11

    Неплохая попытка, маил ру, но нет.

  8. joker2k2 avatar
    joker2k210 октябрь в 15:15
    5

    фигня вся статья.
    пока наркотой в телеге торгуют – значит норм безопасность.
    как свалят массово – значит взломали.
    вот и все.

    гдето читал правприменительную практику по таким делам (не тут ли?)- там нет переписок, если только чел сам не дал свой телефон прочитать.
    так что норм безопасность, не сцыте

    triller avatar
    triller10 октябрь в 15:21
    1

    @joker2k2, наркотой и по смс торгуют, там тоже никто не прочитает?)))

    joker2k2 avatar
    joker2k210 октябрь в 15:23
    3

    @triller, чет не слышал про такое ) это менты наверное )) сами читают, сами торгуют )

    triller avatar
    triller10 октябрь в 15:30
    0

    @joker2k2, да тут же статья была, что многие совсем о безопасности не заботятся))

  9. iphoneriddick avatar
    iphoneriddick10 октябрь в 15:25
    0

    Телега ваша у Билайна не работает уже несколько дней. Усе

    AzbukaIT avatar
    AzbukaIT10 октябрь в 15:53
    1

    @iphoneriddick, в смысле? У меня на билайне пашет

  10. Alek756 avatar
    Alek75610 октябрь в 16:08
    4

    “в 2019 году весь Telegram использует nginx, а этот конкретный сервер – не самый надежный Apache”

    Шта?

    Menzoberonzan avatar
    Menzoberonzan10 октябрь в 17:28
    6

    @Alek756, это называется “как попытаться пересказать Habr своими словами и приуныть в процессе”. Автору на Хабре тоже немного накидал еще в июле, но с ним хоть спорить интересно в отличие от.

  11. skosovsky10 октябрь в 19:19
    3

    Из этого поста я делаю вывод что ФСБ – некомпетентный орган))) глупо ведь блокировать настолько дырявый мессенджер – читай что угодно, зачем блокировать тогда?))

  12. AlexMcSaev avatar
    AlexMcSaev10 октябрь в 19:28
    0

    Можно не читать сразу после слов MITM и телеграм.. А ничего что данные шифруются серверным вшитым ключом, при передаче – если не заешь его то ты никак не встроишься в цепочку.. Всегда можно сверить ключи с собеседником например отправив их другим каналом – почтой через архив к примеру защищённой длинным паролем. Вы всегда можете удостовериться что никого по середине не было.

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

  13. Lioric avatar
    Lioric10 октябрь в 20:10
    0

    “личные встречи в чистом поле без свидетелей” – с поправкой: без какой-либо техники. А назначать встречу через незнакомца, который, через другого незнакомца передаст координаты. При встрече общаться молча, переписываясь на бумаге, в палатке, оклеенной металлом, чтобы ни дрон, ни спутник текст не распознал. И, конечно же, в конце, уничтожить переписку, без возможности восстановления.

    П.С.: голубиная почта – тоже вариант, но менее надёжный.))

  14. ram_ler avatar
    ram_ler10 октябрь в 20:41
    2

    Детский сад! Какие приватные защищенные мессенджеры в свободном доступе? Погуглите что такое Патриотический акт и что он позволяет. А теперь задайте себе вопрос – как может существовать свободно распространяемый мессенджер в магазинах, работающих в американском правовом поле, и принадлежащим американским компаниям?
    ЛЮБОЙ мессенджер из ЭплСтора или ГуглПлея, при необходимости, взламывается и раскрывается – это факт!

    ПС не давайте читать эту статью Артём Баусов @Dralker – у него еще запас бумажных самолетиков наготове )))

    walkman00 avatar
    walkman0010 октябрь в 21:27
    0

    @ram_ler, задайте вопрос, как могут существовать свободно распространяемые протоколы шифрования? :) Поищите историю PGP, например, и не путайте свои домыслы с реальностью. А, еще про Кузнечик почитайте, тоже в тему.

  15. walkman00 avatar
    walkman0010 октябрь в 21:25
    0

    Сложно отделить истину, так перемешанную с мифами.

  16. TAIFUN avatar
    TAIFUN10 октябрь в 22:16
    0

    Достаточно провести поверхностный анализ этого мессенджера;
    1. Закрытый исходный код. Это не даёт провести аудит. Так что, разговоры об анонимности этой платформы – это только разговоры.

    2. Привязка мобильника к аккаунту. О какой анонимности может идти речь в этом случае?! Реально анонимные мессенджеры не используют никаких привязок к мобильному телефону и e-mail.. они генерируют уникальный ID. Кстати, по этой же причине распиареный Signal, который якобы Сноудэн боготворит – шляпа.
    3. Нельзя уйти в invisible.
    4. Мониторинг и доступ к телефонной книге.
    5. Резервное копирование.
    6. Цензура. Удаляют каналы.

  17. Waka avatar
    Waka10 октябрь в 23:17
    6

    Автор пишет хорошие статьи по OSINT, но данная статья крайне поверхностная.
    Грустно, что так много ошибок.
    Взять схему работы Диффи-Хеллмана. Она вообще не понята.
    Передача приватного ключа, серьёзно? Вы понимаете, почему он вообще называется приватным?
    p и g – это псевдослучайные константы, а не публичные ключи, публичные ключи тут A и B. Приватные ключи – a и b – никто никуда не передаёт. И суть его не в передаче открытых ключей, а в том, что он позволяет выработать _секретный_ ключ для дальнейшего использования без непосредственной его передачи между сторонами.

    Ещё вы пишете про ne555. Ёлки, то, что у него всё было рутовано – это очень серьёзное уточнение, если у злоумышленника есть рут – то вообще вся безопасность устройства скомпрометирована. Гейм овер, дальше нет никаких рубежей безопасности.

    “Если на вашем смартфоне нет сканера отпечатка, вы не сможете настроить или отключить её в Telegram.” – так понятное дело, нафига вообще иметь настройку фичи, аппаратно отсутствующей в устройстве?

    Вы упоминаете Бума. Там баг интересный, но всё, что он нашёл – это типичная sql-injection (уже более-менее серьёзно, но не конец света) и немного раскрытия информации. Вот цитата из его статьи о критичности уязвимостей:
    “Пользователей я не взломал (твоя переписка в безопасности), развить атаку дальше не мог, сервер с дампами рандомных пользователей (именно краш-дампы без информации об айдишнике в телеграме, телефоне, сообщениях и чатах) — сомнительная ценность. По идее, можно было бы качать краши и самому изучать и эксплуатировать их.”
    И нет ничего ужасного в использовании апача – он не так популярен сейчас, как nginx, но скорее потому, что он удобнее, шустрее и в целом более гибкий в настройке (и это если не говорить о последних багах nginx). При грамотном администрировании работает Apache без нареканий и есть не просит.

    Привязка к телефону – это гвоздь? Но ведь номер используется для _идентификации_ пользователя. Да, вам приходит код, но во-первых, двухэтапную аутентификацию ещё никто не отменял (в чём разумно упрекнуть создателей телеграма – так это в отсутствии поддержки различных вторых факторов вроде аппаратных модулей или хотя бы гугловского аутентификатора), а во-вторых, SS-7 очень трудно эксплуатировать – для такого нужно быть оператором сотовой связи (или как иметь минимум нехилые связи в уже существующем).
    Да и вообще, если вы залогинены – второй фактор приходит к вам в тот же телеграм, а не по смс.

    Вот насчёт советов обычному пользователю телеграм – с вами трудно не согласиться. Хотя бы потому, что вы находитесь в абсолютно недоверенной среде, и раз уж вы не доверяете телеграму – то как вы можете доверять вашей клавиатуре (которая вполне может содержать скрытый кейлоггер), или компонентам системы с привилегиями повыше ваших, или вообще самой системе?
    Всё это вы принципиально не можете проверить на предмет наличия недекларированных возможностей, и тут вас ни signal, ни собственноручно написанный мессенджер не спасёт. И об этом стоит помнить.

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

    И это не говоря про врезки с “там эксперты сказали…”

  18. Serj11 октябрь в 11:16
    0

    Аахахах )) Спасибо за хорошеее настроение сутра))
    Статья бред, все добра )

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь