Telegram сохраняет данные из секретных чатов и даже удалённые сообщения
Эксперту в области кибербезопасности Дхирадж Мишра удалось обнаружить сбой в работе популярного мессенджера Telegram – ошибка позволяла получать доступ к самоуничтожающимся файлам даже после их исчезновения из закрытых чатов на устройствах macOS.
Неисправность аналитик выявил в версии Telegram 7.3, поэтому следующая модификация 7.4, появившаяся 29 февраля, уже вышла без багов.
В отличие от большинства мессенджеров, сообщения и разговоры в Telegram не шифруются автоматически, если пользователь самостоятельно не выберет соответствующий функцию, так называемый «секретный чат». Видимое отсутствие конфиденциальности перекрывается наличием возможности отправлять самоуничтожающиеся сообщения, с которыми и был связан баг, обнаруженный Дхираджем Мишрой.
Эксперт уверен, что каждое обыкновенное сообщение, отправленное через Telegram, сохраняется по заданному приложением пути в формате «.mp4».
В случае, если пользователь отправил месседж через секретный чат, информация о пути следования сообщения не сохраняется, но само оно все равно остаётся в системе и может стать доступным в мультимедийном виде, даже если абонент вручную удалил переписку. Грубо говоря, Telegram просто сохраняет копии сообщений, убирая их с экрана пользовательского устройства.
Еще одним недостатком Telegram оказалось хранение локальных паролей в полностью открытом файле JSON. Открытия аналитика были поощрены владельцами программы суммой в три тысячи евро.
На данный момент Telegram уделяет повышенное внимание безопасности данных, что неудивительно, ведь в начале года мессенджер смог похвастаться рекордной посещаемостью в 500 миллионов пользователей. Большая часть аудитории перешла в Telegram после разочарования в WhatsApp, неудачно пересмотревшего политику конфиденциальности. Больше всего пользователям не понравилась хранения их личной безопасности в архивах Facebook.
Пользователям Telegram, переживающим за сохранность своих данных, стоит помнить, что функция сквозного шифрования не распространяется на групповые чаты, хотя сервис и предполагает наличие безопасного клиентского сервера.
Telegram безлимитен, но старые сообщения пропадают. Почему?
Я (Aryn — arynme), и X (teleX) уже давно сидим в Telegram и пытаемся разобраться в нём, вплоть до используемых технологий и состава команды.
Около года назад мы начали тестировать лимит на сообщения в различных видах чатов Telegram. Так мы и узнали об описанной проблеме и последствиях.
Telegram безлимитен
Основа основ
Все полученные пользователем сообщения в личных чатах (обычные группы, с ботами и пользователями) хранятся в его «ящике». Также, «ящик» есть и у других типов чатов — супергрупп и каналов.
У обоих типов ящиков разные лимиты на количество сохраняемых сообщений. Судя из того, что «Telegram безлимитен», означает, что и «ящик» должен быть безлимитен.
Проблема
Как для ваших личных сообщений (все индивидуальные чаты с пользователями и ботами), так и для обычных групп существует единый общий «счетчик» входящих и исходящих сообщений. Этот счетчик, после достижения определенного лимита приведет к тому, что Telegram перестанет показывать Вам ваши сообщения после определенной даты.
Те, кто сталкивается с этой проблемой, являются активными пользователями Telegram и групповых чатов — сообществ и людей, наиболее зависимых от этого мессенджера. Возьмём, к примеру, популярного разработчика ботов, который «по ошибке» настроил своих ботов на отправку логов в личные сообщения, тем самым потеряв множество сообщений из важных личных чатов:
Никогда не засоряйте себе логами и другими ненужным мусором личные сообщения. И в целом храните всю важную информацию в отдельном канале, а если очень важная — тогда дублируйте на другие хранилища.
Я отправлял себе ботом информацию об ошибках. И в итоге он отправил их больше 200 тысяч. После чего у меня везде удалились сообщения с января по октябрь 21 года.
Через специальный бот я узнал, что у меня сейчас как раз 3 миллиона 200 тысяч сообщений. Видимо в телеграме лимит 3 миллиона, хотя раньше писалось о том, что лимит на сообщения был снят. Даже экспорт GDPR не загружает их. Каким‑то чудом потом на Telegram Mac клиенте загрузились сообщения, но медиа не загружаются всё равно.
Проблема не нова и есть не только у вышеупомянутого разработчика ботов, но и других личностей: (на скриншоте обращение к Павлу Дурову, где подписчики жалуются на удаление комментариев из постов канал Вячеслава Володина, подозревая ограничения на свободу слова)

Есть ещё один пример, где у канала Двач не открывались комментарии: (P.S.: комментарии и по сей день включены, просто адрес канала поменяли на более короткий — ru2ch)
Немного дополнительной информации
Вы можете проверить свой лимит сообщений, который Вы «потратили». Для этого необходимо отправить сообщение в Ваше «избранное», воспользовавшись одним из этих двух ботов: ArynIDBot или accountcountbot.
Если id сообщений будет больше 1 миллиона, то, вероятно, что определённая часть ваших сообщений утеряна. Бота можно использовать не только в «Избранном», но и в супергруппах и каналах. Главное запомнить, что в обычной группе будет показываться по-прежнему счётчик сообщений Вашего ящика. Чтобы в поиске найти все сообщения, достаточно в запросе написать «-» (дефис) или «+» (плюс).
Тесты
Для тестов на первый тип ящика мы отправляли teleX большое количество сообщений использую кучу созданных нами ботов.
Также, можно посмотреть как плавно пропадают сообщения в «Избранном»:

А для последующих тестов мы использовали кучу созданных нами ботов и отсылали сообщения в канал и в прикреплённый чат (супергруппа, WhereIsMessages). Начали мы тест 14 июля 2022 го, а закончили 21 сентября 2022-го (с длительными перерывами).
Что же из этого вышло?
Ещё во время тестов мы видели, как пропадают старые сообщения в чате. Мы удалили почти 1 миллион сообщений в надежде, что хотя бы часть сообщений вернётся обратно в групповой чат, но этого не произошло. После окончания тестов мы заметили как быстро менялся счетчик количества сообщений в чате при поиске: (временно)



На сегодняшний день сохранилось лишь около 900 тысяч сообщений.
Решена ли данная проблема с вводом топиков (форумов, тем)?
Нет. В них также действует лимит в 1 миллион сообщений. В них также пропадут старые сообщения, когда группа перевалит за миллион сообщений. Интересно то, что один популярный топик при высокой активности пользователей может затереть все предыдущие созданные топики. Мы проверяли данный лимит и на форумах. Пример данной группы — offtopicgroup
Виджет комментариев для сайтов
Telegram дает возможность использовать их виджет комментариев на вашем сайте, но даже в них есть тот же самый подвох. Давайте представим Хабр с этим виджетом.

Подвох этого виджета в том, что у нас по-прежнему ограничение в 1 млн, но это еще полбеды. Оказывается, что это ограничение распространяется на все страницы сайта. Получается, что если у Хабра произойдет на одной статье хабраэффект, то комментарии начнут пропадать во всех других статьях. Они начнут затираться. Таким образом, этот виджет комментариев мы бы не рекомендовали использовать на больших сайтах.
Ссылка на эксперимент: https://comments.app/view/xrNekuh3/

Как мы пытались решить проблему
Мы создали баг-репорт на официальном сайте Telegram.
После того, как мы начали распространять наш баг-репорт в крупных Telegram чатах и каналах, случилось чудо:
Команда Telegram удалила всю историю сообщений teleX до 2022 года. Он потерял все свои сообщения из-за того, что протестировал, подтвердил и рассказал о баге. У команды Telegram не должно быть прав удалять переписку пользователей. Это буквально то, что происходит, когда сообщения хранятся в открытом виде на серверах Telegram.
Также, Telegram и ранее пытался устранить эту проблему, но не получилось:

Поддержка же утверждает, что дело в используемых пользователями клиентах.
Заключение
В конечном счёте это вынуждает нас прибегать к обходным путям.
Активные пользователи Telegram должны помнить об этом ограничении и создавать отдельные каналы для своих мемов, музыки, логов и т.д.
Для многих крупных сообществ Telegram с тысячами подписчиков в супергруппах и каналах также создает проблему непрерывности, которая неизбежна: старые сообщения просто исчезают, а важная история безвозвратна. Обратите внимание, что с другими сервисами, ориентированными на сообщество, такими как Discord, это не проблема:

Команда Telegram не просто может читать все ваши сообщения в открытом виде из личных чатов, но еще может и удалять их. Также поэтому пока не используйте Telegram для хранения важной информации.
Фидбеки ожидаем в комментариях или в ArynFeedBot.
Telegram хранит переписку в незашифрованном виде. Дуров негодует и оправдывается
Эксперт по безопасности обнаружил, что при некоторых условиях содержимое переписки в Telegram хранится в незашифрованном виде, как и у одной из версий Signal. Павел Дуров назвал эту уязвимость «несуществующей».
Непросто прочитать
Как и у сверхзащищенного мессенджера Signal, Telegram в версии для десктопов сохраняет всю переписку пользователей на жёстком диске без шифрования. Прочитать её не так легко, как в случае с Signal, но вполне возможно.
Как выяснил эксперт по безопасности Натаниэль Сачи (Nathaniel Suchy), Telegram использует базу данных SQLite для хранения сообщений, «которую не очень просто прочитать, но которая в целом лишена шифрования».
Проанализировав «сырые» данные, предварительно сконвертированные в более простой для просмотра формат, Сачи смог найти имена и телефонные номера, которые можно проассоциировать друг с другом. Даже в этом виде, однако, информацию было непросто считать, однако нескольких специально написанных скриптов хватило, чтобы вычленить необходимые данные.
Десктопная версия Telegram предлагает парольную защиту, чтобы предотвратить неавторизованный доступ к приложению. Эта опция не связана с шифрованием, и при должном умении злоумышленник может добраться до ваших чатов и прочитать их. Как утверждает издание Bleeping Computer, в общую базу направляются все сообщения, вне зависимости от того, используется «секретный» режим переписки или «облачные чаты».
Стоит отметить, что Telegram Desktop не поддерживает секретные чаты как таковые, это функция доступна только в мобильных клиентах.
Режим секретности
В режиме Secret Chat Telegram исправно шифрует сообщения и файлы вложений при передаче; в этом режиме используется сквозное шифрование, исключающее возможность перехвата и просмотра содержимого переписки третьей стороной.

Натаниэль Сачи демонстрирует чтение переписки в десктопной версии Telegram
Интересно, однако, что при обмене данными через облако (то есть, не напрямую), сквозное шифрование не используется; разработчики утверждают, что алгоритм шифрования, защищающий каналы клиент-сервер и сервер-клиент, весьма надёжен, а благодаря тому, что переписка сохраняется в облаке, у пользователя существует возможность просматривать её с любого устройства.
«Проблема с восстановлением данных в истории чатов на новом устройстве (в случае потери смартфона, например) не имеет элегантных решений в парадигме сквозного шифрования. В то же время надёжное резервное копирование — базовая функция любого мессенджера для массового рынка. Чтобы решить эту проблему, некоторые приложения (WhatsApp и Viber, в частности) допускают дешифруемые резервные копии, что ставит приватность их пользователь под угрозу — даже если они сами не активировали функцию резервного сохранения данных. Другие приложения вообще отказываются от резервных копий, — и растворяются в небытии ещё до того, как количество их пользователей достигает одного миллиона», — говорится в вопроснике Telegram.
Далее разработчики указывают, что они выбрали «третий путь», в котором чаты дифференцированы: при использовании «облачных» чатов резервное копирование на клиентской стороне отключается, а при использовании секретного режима пользователи получают «полный контроль над данными, хранение которых для вас нежелательно» (иными словами, резервные копии сохраняются локально).
Проблема в том, как именно они сохраняются: судя по тому, что написал Суиш, метод хранения как минимум части архивов далёк от безопасного.
Дутая сенсация?
Создатель Telegram Павел Дуров отреагировал на эту новость в весьма жёсткой форме: «К сожалению, нежелание редакторов СМИ разбираться в деталях проблем с безопасностью приводит к тому, что читатели перестают в итоге обращать на них внимание. И когда появляются сообщения о настоящих угрозах, пользователь может не придать им значения. (Пунктуация сохранена. – CNews)».
Павел Дуров говорит, что суть уязвимости сводится к тому, что «Eсли бы у меня был доступ к Вашему компьютеру, я бы смог прочитать Ваши сообщения».
Можно, сказать, что если некий злоумышленник получает неавторизованный доступ к компьютеру жертвы, это уже лишает смысла дискуссии о безопасности баз данных Telegram, — как и любых других данных.
Существует, однако, ряд вполне жизненных ситуаций, когда архив сообщений в Telegram может утечь на сторону: например, если перед продажей компьютера его данные удалены небезвозвратно, а с возможностью восстановить их. Или же злоумышленник получает удалённый доступ к компьютеру жертвы (например, топ-менеджера) и его в первую очередь интересуют его коммуникации, в том числе содержимое переписки в Telegram. С такой особенностью Telegram мало что может помешать хакеру ознакомиться с этими сообщениями.
«С одной стороны, для того, чтобы скомпрометировать переписку Telegram в таком ключе, потребуется взломать компьютер жертвы, — в таком случае говорить о безопасности данных вообще нет смысла, — считает Олег Галушкин, директор по информационной безопасности компании SEC Consult Services. — Однако вполне возможны сценарии, когда именно содержимое переписки Telegram будет представлять наибольший интерес для потенциальных злоумышленников, а её утечка — наибольшую угрозу для жертвы. В любом случае, наиболее эффективной будет многослойная защита, и если существует минимальная возможность компрометации конфиденциальной переписки Telegram, её следует устранить».
Политика конфиденциальности
Внимание: эта статья давно не обновлялась. Возможно, информация в ней уже устарела.
Общий доступ к данным
Мы не предоставляем доступа к Вашим личным данным. Никому и никогда.
Хранение данных
Telegram хранит только те данные, которые необходимы для корректного функционирования — до тех пор, пока Вы пользуетесь Telegram.
Обычные сообщения
Telegram — облачный сервис. Мы храним Ваши сообщения, фото, видео и остальные файлы из Ваших обычных (не секретных) чатов у нас на серверах, чтобы Вы могли получить доступ к ним в любое время, из любого клиента. Все хранимые данные тщательно зашифрованы, а ключи шифрования хранятся в другом месте в другой юрисдикции. Таким образом, никто, будь то наш персонал или злоумышленник, не сможет получить доступ к пользовательским данным.
Секретные чаты
Секретные чаты используют оконечное шифрование. Мы не храним Вашу переписку из секретных чатов у себя. Также мы не храним никаких логов, связанных с секретными чатами. Таким образом, мы не имеем технической возможности знать кто, кому и когда шлет сообщения в режиме секретного чата. По соображениям безопасности, сообщения из секретных чатов не хранятся на сервере — сообщения есть только на устройстве-отправителе и устройстве-получателе — и больше нигде.
Файлы в секретных чатах
При отправке фото, видео или файла в секретный чат, файл шифруется с помощью ключа, не известного серверу. После этого сам ключ и расположение файла шифруется ещё раз, — на этот раз ключом самого секретного чата, после чего всё это отправляется собеседнику. Теперь он может получить и расшифровать файл. Это значит, что технически файл находится на серверах Telegram, но фактически он выглядит как набор несвязанных зашифрованных символов, расшифровать которые можете только вы и ваш собеседник. Мы, персонал Telegram, не можем ни расшифровать файл, ни определить, кому именно он принадлежит. Зашифрованные файлы периодически удаляются с сервера.
Контакты
По ряду причин Telegram использует телефонный номер в качестве уникального идентификатора. Мы спрашиваем разрешение, прежде чем синхронизировать контакты. Мы храним Ваши контакты с целью оповещения, если кто-либо из них зарегистрируется в Telegram, и чтобы корректно отображать их имя в уведомлениях.
Ваш e-mail
При включении двухэтапной авторизации, вам будет предложено установить адрес e-mail для восстановления пароля. Telegram использует этот адрес только для восстановления пароля, без исключений.
Удаление данных
Аккаунты
Если Вы хотите удалить свой аккаунт, пожалуйста, проследуйте на страницу деактивации. Удаление аккаунта повлечет за собой удаление всех сообщений, групп и контактов. Это действие должно быть подтверждено при помощи Вашего аккаунта Telegram и не может быть отменено.
Сообщения
Когда Вы удаляете сообщение из истории, оно всё же остается на сервере — в истории сообщений Вашего собеседника. Когда и он удалит его из истории, оно удалится навсегда. Telegram — некоммерческий проект, и мы ценим каждый свободный байт дискового пространства на наших серверах.
Самоуничтожающиеся сообщения
Сообщения в секретных чатах могут быть запрограммированы на самоудаление. Как только сообщение прочитано (появилось 2 галочки), начинается обратный отсчет. Как только обратный отсчёт закончен, сообщение удаляется с обоих устройств (и с Вашего, и с устройства собеседника).
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
