Whatsapp хранит переписку на смартфоне в открытом виде

Disclaimer:
Пост несёт сугубо информативно-познавательный характер, не несёт в себе призывов к действию. За рейтингом не гонюсь, можете минусить, но советую сначала прочесть
Однажды, почти случайно, залез я посмотреть что хранит Whatsapp в своих базах данных на смартфоне. Изначально цель была не эта, но потом стало интересно.

Мой смартфон — на андроиде. Поскольку есть рут и я не боюсь экспериментов над своим девайсом, мне не составляет труда изредка пользоваться приложением, название которого я не назову :) Во-первых, это может спровоцировать кого-то на неразумные действия в чей-то адрес, а такую ответственность брать на себя мне не хочется, а во-вторых, пикабушники люто не одобряют рекламные (либо похожие на таковые) посты.

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

В андроиде есть встроенный механизм баз данных (на движке SQLite). Мулечка в том, что любое приложение может иметь БД в защищённом хранилище системы, где будет накапливать и хранить свои данные. Это если на пальцах объяснять, более опытные разработчики могут внести дополнения в комментах.

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

После появления Телеграма, Whatsapp начал хвастаться сквозным шифрованием. Даже если оно есть по факту и работает, то почему в БД этого месссенджера хранятся все данные в открытом виде и никак (от слова совсем) не зашифрованы?

Отправляю тестовое сообщение:
Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Смотрю в базу (БД msgstore, таблица messages):

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Список всех баз данных:

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Там хранятся различные настройки, которые в рамках данного поста неинтересны.

Список всех таблиц самой интересной БД msgstore:

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост
Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Если вкратце, тут хранятся служебные данные о чатах, местоположениях и всяком таком.
В том числе — сами переписки.

Список чатов (таблица chat_list). Это тот список контактов, с которыми у вас уже начато общение, и который вы видите в первую очередь, открывая приложение.

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Ещё раз покажу таблицу messages — список всех сообщений.

Отображается ИД собеседника (поле key_remote_jid, значения включают номер телефона), само сообщение в открытом виде (data), Unix-метка даты сообщения (timestamp), прямая ссылка на медиа-контент (адрес ведёт на сервера Whatsapp; поле media_url), подпись к медиа-контенту в открытом виде (к фотографии, например; поле media_caption)и много чего ещё.

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Поле data пустое там, где вместо чистого текста отправлено, например, фото или состоялся звонок.

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Ссылка на медиа примерно следующая:https://mmi652.whatsapp.net/d/кучарандомныхсимволов/кучадруг...
Эту ссылку можно открыть в браузере. Если она действительна, то скачивается файл file.enc, который, к счастью, зашифрован: это может быть фото, аудио, видео, что угодно ещё. Если ссылка оказывается недействительной, то в браузере ответом будет строка Media object not found.

Ниже таблица messages_fts_content (есть ещё аналогичная messages_fts). Тут тоже сообщения, и они тоже в открытом виде. Предназначение таблицы мне непонятно, ибо детально не разбирался.

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

Чем это опасно?

Если смартфон попадёт в руки опытного и знающего подлеца, получить все ваши переписки в Whatsapp ему не составит никакого труда. Вообще никакого. Защищены только медиафайлы, которые зашифрованы и хранятся на серверах WA.

К слову, для тех, кто не в курсе: это объясняет тот факт, что после удаления папки Whatsapp из памяти телефона, где хранится кеш фотографий, зашифрованные бекапы чатов и прочее, медиа-контент заново выкачивается при открытии чата.

Послесловие
На закуску — вот что хранит Telegram. Одна БД, предназначенная для сбора статистики об использовании приложения для отправки в Google. И все таблицы этой БД пусты!

Whatsapp хранит переписку на смартфоне в открытом виде Android, WhatsApp, Мессенджер, Telegram, База данных, Безопасность, Информационная безопасность, Шифрование, Длиннопост

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

Всем добра!

БМ сходил с ума от скриншотов.

62
Автор поста оценил этот комментарий

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

раскрыть ветку
102
Автор поста оценил этот комментарий

Эм.. Ну а чем поможет шифрование базы мессенджера если телефон в руках и незаблокирован?

Тот же вазап не отличит вас от злоумышленника в этом случае, как ему "понять", кому давать доступ а кому нет.


Вот если он бы шифровал базу, и дополнительно требовал аутентфикацию на запуск приложения, вот тогда шифрование будет иметь смысл (как мне кажется)

раскрыть ветку
20
Автор поста оценил этот комментарий

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

раскрыть ветку
17
Автор поста оценил этот комментарий

Ну ок, это сохранил.
А с viber как?

раскрыть ветку