Введение
Телеграм довольно ответственно относится к конфиденциальности пользователей. В частности, можно удалить любое сообщение в переписке, как у себя, так и у собеседника. И сообщение действительно удалится, у обоих и навсегда. Но есть пара «но».
Если сообщение было написано не слишком давно, то, скорее всего, на устройстве собеседника есть его локальная копия. Так что:
Во-первых. Чтобы сообщение удалилось с устройства собеседника, он должен открыть телеграм с включённым интернетом. Только тогда чаты синхронизируются, и сообщение будет удалено из базы данных на устройстве.
Во-вторых. Даже если сообщение уже удалилось, всё равно есть небольшой шанс на его восстановление. Хотя для этого на устройствах Android понадобится рут, а на устройствах iOS — джейлбрейк.
Шанс на восстановление будет близок к 100%, если:
а) вы сами удалили сообщение со своего устройства,
б) сразу закрыли телеграм и больше его не открывали,
в) выключили интернет.
Потому что каждое вновь полученное сообщение (из любого, в т.ч. замьюченного, чата) может записаться на место удалённого.
Итого.
Если хотите понадёжнее удалить сообщение, — делайте это заранее и позвольте новым сообщениям окончательно затереть удалённые на вашем устройстве. И собеседника тоже вытаскивайте в онлайн.
Если же хотите восстановить сообщение, которое могло быть удалено без вашего ведома, — наоборот, не допускайте синхронизации данных, как можно быстрее выключите интернет. И, если в самом приложении найти сообщение всё равно не удаётся, готовьтесь взламывать собственное устройство (если в вашем случае оно того стоит, конечно).
Практика
Как делать рут или джейлбрейк, я описывать не стану. Но если вам хочется просто потренироваться «на кошках» (как мне), — то вместо реального устройства можно использовать эмулятор из Android Studio. Эмуляторы по умолчанию имеют рут и, соответственно, дают доступ ко всей файловой системе.
В Android Studio создаём и запускаем эмулятор, ставим на него телеграм. Открываем в студии вкладку Device Explorer и идём в /data/data/org.telegram.messenger.web/ (название может немного отличаться в зависимости от вашей версии телеграма). Ищем там обычную базу данных SQLIite с расширением «.db» (в моём случае это был файл «cache4.db» в подпапке «files») и сохраняем её к себе.
Далее можно пойти разными путями. Если нужно просто просмотреть базу в наглядном виде, то стоит использовать просмотрщик БД, вроде DB Browser for QSLite. Если нужно восстановить сообщения, то можно воспользоваться специальными утилитами, либо простым текстовым редактором. Утилиты для восстановления (я попробовал с десяток) сегодня фактически бесполезны. Возможно, они успешно восстанавливали что-то на базах SQLite старых версий, но не на современных. Так что остаётся лишь вручную разбирать текст.
Чтобы открыть базу данных в виде текста, можно воспользоваться любым редактором. Главное чтобы он мог открыть файл как текст в кодировке UTF-8. Можно сделать это через Notepad++ (после открытия выбрать Кодировки > UTF8). Или через банальный Microsoft Word (сразу при открытии db-файла выбрать Другая > Юникод (UTF-8)). Большая часть текста всё равно останется кракозябрами, но родную речь в нём уже можно будет найти. Если помните какие-то ключевые слова нужного сообщения, воспользуйтесь поиском. Если сообщение было удалено, но ещё не было перезаписано чем-то новым, — вы его найдёте.
Если интересно просто посмотреть, как телеграм хранит ваши данные, стоит открыть базу в просмотрщике БД. Открыв наш файл в DB Browser, во вкладке «Данные» можно выбрать таблицу «messages_v2» и поискать сообщения в ней. Текст каждого сообщения хранится в столбце «data». В DB Browser его можно открыть выделив ячейку и выбрав на панели «Редактирование ячейки БД» (справа) кнопку «>>», затем «Open in external application». Далее не забываем про кодировку.
Сообщения от конкретного пользователя можно найти в таблице по полю «uid». Идентификатор пользователя можно выяснить либо через Telegram Desktop, либо на web.telegram.org. В веб-версии uid пользователя будет виден в адресной строке, если просто открыть чат с ним. В версии для ПК нужно зайти в Настройки > Продвинутые настройки > Экспериментальные настройки > Show Peer IDs in Profile, затем открыть профиль нужного пользователя.
Заключение
Очевидно, данная статья не раскрывает каких-то фундаментальных тем и является лишь описанием личного опыта по довольно специфическому вопросу. Однако мне не удалось найти публикаций, которые раскрывали бы эту тему так же подробно и конкретно. Возможно, статья может оказаться полезной в некоторых жизненных ситуациях для самого широкого круга лиц. А также будет занятной и поучительной для тех, кто слишком полагается в вопросах безопасности на инструменты мессенджеров.
Комментарии (72)
Kovurr
23.10.2024 14:50Что сообщения остаются в базе до очистки, это очевидно. Вот более интересный момент:
Два телефона, на обоих стоит TG, под одной учеткой. Второй телефон часто без интернета. Включаешь инет на втором телефоне и в шторке начинают быстро всплывать и исчезать уведомления с текстом сообщений, которые давно прочитаны и удалены на первом телефоне.
Получается что при удалении сообщений, они не удаляются с сервера и синхронизируются со всеми устройствами (даже если второе устройство включено через неделю и больше), и только потом помечаются как удаленные...
denisemenov
23.10.2024 14:50Была вроде история, когда после какого-то бага у людей стали появляться удалённые переписки, не говоря уже про сообщения. То есть, удалены все сообщения и переписки у вас, но не на серверах ТГ.
Upd. Про уведомления именно в шторке - это возможно как ТГ отправил на телефон уведомление и оно хранится на серверах Android/Apple, пока не дойдёт до устройства. ТГ же не может получить к ним доступ, чтобы отменить отправленные push-уведомления?
Kovurr
23.10.2024 14:50Думаю вы правы. Скорее всего это накопленные пуши всем скопом сваливаются. Но должно быть какое-то разумное ограничение срока на доставку? Даже без отзыва. И вообще, как андроид разработчик, когда делал похожее приложение, я пушил устройствам команду синхронизироваться, а не сообщения пачками... Не глупее же "супер профи" телеграм команда андроид джуна?
knstqq
23.10.2024 14:50нет, команда "синхронизироваться" не всегда эффективней. В случае текстовых сообщений я бы даже сказал худший возможный способ.
В случае если с плохой связью (в горах, например), пуш может придти, а на синхронизацию данных уже не хватить. Это дополнительный объём + установка нового соединения + возможно DNS спросить ещё надо... Сообщение лучше сразу показать пользователю, а не прислать запрос на синхронизацию.
Второй пример более надуманный но не менее реалистичный и полезный - в случае если ваше приложение в конкретной WiFi сети или стране заблокировано, то сообщение в пуш всё равно придёт. После этого можете подключить vpn и скачать сообщения, и синхронизироваться, и отправить ответ. А если придёт push "Синхронизируйся давай, приложение", то пользователь увидет ничего.
Spyman
23.10.2024 14:50Разумное ограничение срока доставки пушей кстати в gms/fms есть, вроде 30 дней.
FlyHighOnTheSky
23.10.2024 14:50я пушил устройствам команду синхронизироваться, а не сообщения пачками... Не глупее же "супер профи" телеграм команда андроид джуна?
При плохом интернете часто бывает что пуш с сообщением прилетел и даже читается в шторке, но в самом чате приложения его нет и крутит значок синхронизации.
K0styan
23.10.2024 14:50Не знаю как насчёт отмены, но как минимум на Android при редактировании сообщения его превьюшка в шторке тоже изменяется.
konst90
23.10.2024 14:50в шторке начинают быстро всплывать и исчезать уведомления с текстом сообщений
Возможно, они идут через пуши, и тут надо смотреть, может ли Телеграм их "отозвать". Т,е. условно в Телеграм пришло сообщение, и на устройство был отправлен пуш с ним. Потом устройство оказалось онлайн, пуш таки дошёл (и сообщение всплыло в шторке), но почит тут же пришла информация об удалении сообщения.
saboteur_kiev
23.10.2024 14:50Что сообщения остаются в базе до очистки, это очевидно.
Получается что при удалении сообщений, они не удаляются с сервера и синхронизируются со всеми устройствами
На сервере, думаете, сообщения не в базе лежат?
eps
23.10.2024 14:50Телеграм довольно ответственно относится к конфиденциальности пользователей
При этом удалённые сообщения не удаляются, а хранятся в куче, пока их случайно что-то не затрёт. Что-то не сходится.
Но и в принципе «Удалить у собеседника» — это фарс и защита от честных людей.
Ваш собеседник всегда может сохранить себе копию сообщения и пометить её как особо интересную — раз вы так захотели, чтобы он это не прочитал.
Кроме случая, когда собеседник честный и вам полностью доверяет.Kovurr
23.10.2024 14:50Мошенники особенно любят эту функцию. Развести человека, потом удалить у него чат, чтобы доказательств не осталось.
K0styan
23.10.2024 14:50Телеграм довольно ответственно относится к конфиденциальности пользователей
Если бы он действительно ответственно относился к конфиденциальности, он бы:
а) таки реализовал end-to-end шифрование с сихронизацией, чтобы ей по-настоящему было бы удобно пользоваться в режиме многих девайсов;
б) вытащил эту функцию поближе - сейчас куча пользователей про неё в принципе не знают.
И тогда вопрос был бы решён. Конфиденциальный чат - пусть будет с опцией полного удаления. Открытый - без таковой.
tyomitch
23.10.2024 14:50а) таки реализовал end-to-end шифрование с сихронизацией, чтобы ей по-настоящему было бы удобно пользоваться в режиме многих девайсов;
Разве это возможно хотя бы в теории? E2E значит, что ключ шифрования не покидает устройство. Если ключ попадает на сервер и может оттуда синхронизироваться на второе устройство -- значит кто угодно может с сервера взять этот ключ и расшифровать всю переписку.
zuek
23.10.2024 14:50end-to-end шифрование с сихронизацией
что ключ шифрования не покидает устройство
Ключи между своими устройствами можно синхронизировать не только через серверы - QR, BT, ручным переносом файла ключа, в конце концов.
lonelysuch
23.10.2024 14:50Удаление сообщений - самая дебильная функция в современных мессееджерах. Пришлось ставить Notification Edge, чтобы хотя бы понять о чем собеседник хотел сказать, но передумал...
IvanBodhidharma
23.10.2024 14:50Имхо, самая дебильная функция, недавно добавленная в телегу, это неотключаемый запрет в личночатах на редактирование сообщений после нескольких часов прошедших с отправки.
urvanov
23.10.2024 14:50Да ладно, пройдёт лет пять, они сами подчистят всё. Ну или телеграм сам закроется, как и все предыдущие мессенджеры.
anasana
23.10.2024 14:50Не скажу за всех собеседников, но часто я пишу сообщение, особенно если это диалог и переписка идет в режиме чата, я формирую типа свою основную мысль текстом и отправляю, потом правлю орфографические ошибки, и может чуток подкрашиваю акценты.
После этого у собеседника висит плашка Изменено. Если к этому моменту моё сообщение еще не прочитали, то я его копирую и вставляю-отправляю одним блоком как свежее, а старое удаляю у себя и собеседника.
Не хочу устраивать соревнование в измерении самых дебильных функций мессенджеров, но, что бы прям на самую-самую, имхо, пока не тянет )
tyomitch
23.10.2024 14:50После этого у собеседника висит плашка Изменено. Если к этому моменту моё сообщение еще не прочитали, то я его копирую и вставляю-отправляю одним блоком как свежее, а старое удаляю у себя и собеседника.
Всё это только ради того, чтобы убрать плашку? :-/
tyomitch
23.10.2024 14:50Да ну? Допустим, я попросил партнёршу по дороге домой купить продуктов, но она за день не вышла в онлайн, так что я пошёл и купил сам. Какой ей интерес вечером увидеть у себя в телеге неактуальный список покупок, а потом отдельным сообщением "уже не надо"?
lonelysuch
23.10.2024 14:50Можно написать, что это уже не актуально.
А вот когда ты с человеком договариваешься о чем-то по рабочим вопросам, а потом не можешь найти этого обсуждения, а человек заявляет, что не в курсе и ему об этом не говорили - вот это очень плохо. Поэтому приходится переходить на почту, что несёт затраты по времени реакции. Ну или постоянно делать скриншоты всех обсуждений - бред же.
zuek
23.10.2024 14:50Ну, ТГ - это не про обсуждение стратегических вопросов по работе - мы, например, его используем для оповещения ("доехал до ЦОД, начинаю работы - на алярмы не обращаем внимания") или общения по оперативным вопросам ("заменил SFP в порту 7 - ошибки ушли?"). Всё мало-мальски стратегическое - в почте и тикетной системе.
А так - это как раз список покупок, фотки продуктов ("бананы зеленоватые - брать?") и прочие бытовые обсуждения - смысл их хранить вечно? - только память засорять.
lonelysuch
23.10.2024 14:50Тикеты и т.д. - хорошо, когда работаешь на компанию. Когда ты частный подрядчик - дела обстоят немного хуже.
DennisP
23.10.2024 14:50Да вот даже по несложным оперативным вопросам возникают сложности, когда человек на том конце провода не особо честный. Я лично считаю, что удалять или редактировать можно только непрочитанные сообщения.
kogemrka
23.10.2024 14:50Чем это отличается от ситуации, что человек устно или по телефону что-то вам сказал и соврал?
milkground
23.10.2024 14:50Я не понимаю, почему любой собеседник может удалить сообщения с моего телефона вообще без всяких следов. Почему я не могу отключить эту функцию? Это мой телефон и моя часть чата. Какой-то scam first мессенджер получается. Я не могу представить ни одной честной ситуации, когда нужно удалить весь чат без следов у собеседника.
Grey83
23.10.2024 14:50Почему я не могу отключить эту функцию?
Есть клиенты, где такое имеется: https://habr.com/ru/articles/852902/comments/#comment_27456898
p07a1330
23.10.2024 14:50Я не могу представить ни одной честной ситуации, когда нужно удалить весь чат без следов у собеседника
Обсуждали что-то конфиденциальное/компроментирующее, после завершения диалога - потерли все лишнее, чтобы случайно не засветить.
И речь не обязательно о чем-то незаконном или аморальном, это может быть и подарок-сюрприз, или что-то глубоко личное
qenoamej
23.10.2024 14:50Если в удалении заинтересованы обе стороны, то они сами и удалят.
Если нет, то есть варианты сохранения сообщений от простейших скриншотов до ботов и альтернативных клиентов.
В итоге получается, что злоумышленник как раз и сохранит весь ваш компромат, и удалит свои сообщения у вас, а добропорядочный пользователь, не привыкший подстраховываться, останется с носом.
tyomitch
23.10.2024 14:50Если в удалении заинтересованы обе стороны, то они сами и удалят.
Если нет, то есть варианты сохранения сообщений от простейших скриншотов до ботов и альтернативных клиентов.
Как насчёт третьего варианта "да ничего там прямо ценного нету, чтобы сохранять вне телеги, но сам стирать бы я не стал"? Как в случае с перепиской с бывшей.
p07a1330
23.10.2024 14:50Если в удалении заинтересованы обе стороны, то они сами и удалят.
Если полагать, что люди идеальные и ответственные - то да
Но если информация достаточно чувствительная, чтобы было неприятно ее случайно сделать публичной, но при этом - не тянущая на полноценный компромат - я бы проедпочел удалить ее сам, в том числе у безответственного чувака, с которым я это обсуждал. И в котором я достаточно уверен, что он не попытается/ не сможет это использовать, но - не уверен, что не альттабнется случайно на телегу во время конференции и не уверен, что своевременно все почистит.
А что там конкретно будет - уже другой вопрос. Может мы с ним на оргию ходили. Или на Русский Марш. Или - в протестантскую церковь, при работе с радикальными католиками.
milkground
23.10.2024 14:50Обсуждали что-то конфиденциальное/компроментирующее, после завершения диалога - потерли все лишнее, чтобы случайно не засветить.
И речь не обязательно о чем-то незаконном или аморальном, это может быть и подарок-сюрприз, или что-то глубоко личное
Проблема в том, что любой собеседник без следа может удалить всю переписку на вашем телефоне без вашего желания в любой момент. Т.е. собеседник контролирует чат на вашем телефоне. Отключить нельзя.
konst90
23.10.2024 14:50Я не могу представить ни одной честной ситуации, когда нужно удалить весь чат без следов у собеседника.
Да банально сообщение не в тот чат отправил.
milkground
23.10.2024 14:50Да банально сообщение не в тот чат отправил.
Тут дело в том, что собеседник в любой момент может удалить весь чат на вашем телефоне и всё будет выглядеть так, что чата никогда не существовало.
konst90
23.10.2024 14:50Может, я не спорю.
Но вопрос-то был - зачем может понадобиться удалять чат.
Ответ - по ошибке отправил сообщение не тому человеку, что начало чат с ним.
Но да, понятно, что это можно использовать с плохими намерениями.
milkground
23.10.2024 14:50У телеграма ещё проблема в том, что не остаётся никаких следов. Просто пропадает чат и всё. Например, в whatsapp остаётся примечание, что были удалены какие-то сообщения.
K0styan
23.10.2024 14:50Ну так-то можно гибкую систему наладить. Пока нет ответа - сообщение удаляется без следа, если появились в ленте сообщения после - то с пометкой "тут было сообщение", если конкретно на него был реплай - оно остаётся. Это так, первое что в голову пришло, можно и оптимальнее придумать.
tyomitch
23.10.2024 14:50Я не могу представить ни одной честной ситуации, когда нужно удалить весь чат без следов у собеседника.
Например, девушка, с которой я расстался, удалила всю нашу переписку. Разве не честная ситуация? Или надо было, чтобы она у меня спрашивала разрешение её удалить?
K0styan
23.10.2024 14:50Тема тонкая, чисто эмоциональная, поэтому рационального решения тут нет. Но ИМХО - у себя она пусть удаляет всё, что угодно. А вот мой телефон - это мой телефон, со всеми данными.
С третьей стороны есть ситуации шантажа бывших нюдсами из частной переписки. И они нередки. И дать инструмент для защиты от такого - выглядит правильным.
DennisP
23.10.2024 14:50А если я не хочу, чтобы моя бывшая девушка удаляла нашу переписку? Может мне она дорога как история моей жизни, ведь это переписка со мной.
Ну и как поступают расставшиеся пары, которые переписыались не в Телеграме? Как-то же живут дальше без функции удаления.
rebug
23.10.2024 14:50А еще можно заблаговременно написать простенький скрипт, который будет работать 24\7 и сохранять все сообщения новые сообщения где-то на сервере или может быть даже на локальной машине
Finesse
23.10.2024 14:50Я как раз писал такой специально для сохранения удалённых сообщений из одного чата: https://github.com/Finesse/TelegramDeletions
Agne
23.10.2024 14:50Уже есть как написано выше правильные, альтернативные клиенты , один из них у меня стоит и на windows и на андроид. Выбирал как раз с возможностью сохранять сообщения. Более того например для Обсидиан есть плагин может работать как бот или как клиент и при необходимости хранить сообщения нужные в отдельной базе. Думаю и других специальных клиентов полно.
fronik
23.10.2024 14:50Не знаю как в других Android, в Samsung есть полезный Журнал уведомлений (Настройки -> Уведомления -> Дополнительные параметры -> Журнал уведомлений)
Если Telegram не закрыт отдельным пин-кодом и в его настройках разрешено отображение содержания уведомлений, то все пишется в журнал. И если кто-то удалил сообщение, можно его найти в этом журнале.
Chupaka
23.10.2024 14:50При попытке раскрыть 5339 уведомлений Телеги за последние 24 часа телефон стал настойчиво просить закрыть приложение "Настройки". Но за наводку в любом случае спасибо, познавательно.
fronik
23.10.2024 14:50Да, такое количество я себе даже не представлял, действительно сложно будет что-то найти, даже если не будет зависать.
У меня в сумме столько уведомлений и за неделю не наберется, в личных чатах и от клиентов по работе.
С другой стороны я проводил тотальную гигиену от уведомлений, в шторке появляются только реально важные уведомления (от людей и нескольких личных групп). Рабочие группы без уведомлений (периодический ручной просмотр). Почты тоже с жестким фильтром (также только важное, остальное в спам или архив).
Возможно и Вам стоит обратить на это внимание. В Telegram раскидать контакты/каналы/группы по вкладкам и приоритетам, отключить весь спам в уведомлениях.
Chupaka
23.10.2024 14:50Вы будете смеяться, но я тоже работал над уменьшением числа уведомлений от Телеги :) Правда, чуть раньше этого я перешёл на перманентно беззвучный режим в телефоне, так что, видимо, выработал некий аналог рекламной слепоты в шторке уведомлений...
Flux
23.10.2024 14:50Полезно.
Но всё-таки там только превью сообщений, картинки не отображаются и длинные сообщения обрезаются.fronik
23.10.2024 14:50Да, действительно, картинки не попадают в журнал. Сообщения до 5 строк полноценно умещаются, а все, что больше уже нет. Видимо как и в самих уведомлениях в шторке.
georgiy08
23.10.2024 14:50Эмуляторы по умолчанию имеют рут
Хотел бы поправить. Если говорить про эмулятор в Android Studio, то он не имеет рут, но имеет возможность через Device Explorer получать доступ к почти всем системным папкам и файлам.
nevzorofff
23.10.2024 14:50Телеграм довольно ответственно относится к конфиденциальности пользователей.
Это не гигиена а рай для балаболов. Всё что было прислано в мой аккаунт должно быть только моим. Свои переписки пусть трут как хотят, а у меня без моего ведома ничего стирать не надо. Всегда можно носом ткнуть кто и что написал.
ProgerMan
23.10.2024 14:50Мне однажды удалось сохранить важную, но удалённую переписку довольно простым способом. Когда я не обнаружил чата в телефоне, придя домой, первым делом выключил роутер и уже после этого включил комп. Не дав Телеграму синхронизироваться, сумел сохранить нужные сообщения.
Да и вообще любые действительно важные сообщения лучше просто отдельно куда-нибудь сохранять, чтобы в нужный момент не искать в мессенджере.
antaki93 Автор
23.10.2024 14:50Это очень простой и очень хороший совет! Если бы мне пришло это в голову в одной жизненной ситуации, я бы избежал довольно серьёзных проблем.
Slick_Santana
Даже не знаю где и для чего все еще актуален джейлбрейк, мало того что начиная с 14 ios уже проблематично его поставить.
Ну а для андроидов и так хватает программ с помощью которых не удаляются сообщения из тг и других мессенджеров, когда был андроид только так называемыми "модами" и пользовался.
Grey83
Есть просто сторонние клиенты с такой функцией (не обязательно, чтобы это был мод какой-то).
Разве что это нарушение правил телеги и она может пытаться их блочить (по какому-то ключу или подписи, не помню уже).
Только чтобы эта антиудалялка сработала сначала этот самый клиент должен будет получить сообщение, прежде чем его удалят.
rebug
А можете подсказать такие клиенты? Давно искал, но не нашел ни в одном описании сторонних клиентов
Grey83
Такие вроде только на ведроиде есть. На 4pda находил когда-то.
AyuGram, Telegraher и Ninjagram сейчас умеют в такое.
rebug
Благодарю
Grey83
AyuGram есть и на десктоп (обе версии были на гитхабе). Правда я не в курсе есть ли там эта функция.
Остальные имеют версии только под ведроид, емнип.
CorruptotronicPervulator
Она есть и на дектопной, и на андроид версиях AyuGram.
FreeDobby
Вопрос в том насколько это безопасно использовать сторонние клиенты)) Я долго думал прежде чем решился Kate Mobile попробовать. А тут Телега с кучей переписок. Вдруг они там себе отсылают данные для входа.
Adlem
Аюграм сто процентов не ворует сессии))
etofiasko
как вы можите знать ето