Pull to refresh

Comments 95

Откуда пошла эта истерия озабоченность секретностью? Годами пользовались аськой, смс, да тот же вк. И никого не волновало где там что хранится и как
Там — от Сноудена, у нас — от РКН и Яровой.

PGP, и связанная с ним истерия, появились намного раньше Сноудена и РКН.

PGP по-моему чаще используется для проверки достоверности (отправитель — тот за кого себя выдает, и текст сообщения не был изменен) открытых текстов, нежели для тайной корреспонденции

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

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

Натаниэль Сачи проверил и функцию «секретного чата». Выяснилось, что сообщения из секретного чата попадают в открытом виде в ту же же базу данных, что и обычные сообщения

Но в Telegram Desktop нет поддержки секретных чатов, они работают только на мобильных устройствах.
Да и не обещал никто из разработчиков Telegram защиты от прочтения сообщений, если есть физический доступ к устройству. Они передаются защищённо, и этого достаточно.
В общем, опять подняли хайп на пустом месте. Ну хоть «уязвимостью» не назвали.
В версии для macOS поддержка секретных чатов есть с самого начала.
Нету. В Telegram Desktop для любой платформы их нет. Есть в Telegram for MacOS, но это НЕ Telegram Desktop, это отдельное приложение написанное на swift.
Но тогда и на скриншотах это не Telegram Desktop, а Telegram for macOS.
Я пока убрал абзац про секретные чаты из статьи, так как не еще нашел подтверждения этой информации в оригинальном источнике.

UPD. Сейчас переформулирую и верну
UPD 2. Вернул.

Опять ошибочно. Telegram desktop для macOS также не имеет поддержки секретных чатов. Как впрочем и версия для любой другой ОС

заголовок то тоже поправьте. ничего там не предположительно. на скриншотах явно telegram for macos ( ru.keepcoder.Telegram как-бе намекает)
Telegram на macOS имеет поддержку секретных чатов.
Пруф
2018-10-31-22-20-08
Telegram for macOS это не Telegram Desktop
Кэш переписки телеграмма, это самое меньшее что меня волнует в моих файлах на диске, поэтому и шифрую весь диск. :)
Пфи!)
Винда. В ярлыке телеги на столе добавляешь ключик -debug, запускаешь и в папке с программой появляется папка log и там все сообщения всех чатов в открытом текстовом виде.
Не вижу тут какой-то серьёзной проблемы.

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

Если только попробовать как-то привязаться к паролю пользователя в Windows. Но вот стоит ли оно того — хороший вопрос.
Тут смысл в том, что приложение никак не уведомляет пользователя о том, что локально хранит его переписку и прочие данные без какого либо шифрования.
Ну так можно дойти до того, что приложение должно рассказать пользователю про трояны, кейлоггеры, руткиты, TOR, прокси-серверы и вообще предложить на линукс перейти.
Тут или крест снимать или трусы надевать. Телеграм позиционирует себя как защищенный месенджер. Если он не может защитить, то должен хотя бы предупредить.

про трояны, кейлоггеры, руткиты, TOR, прокси-серверы

Все это можно легко и понятно рассказать на одном welcome-screen с любимыми картинками Павла Дурова.

Если он не может защитить
От чего защитить? Вы осознаёте, что имея доступ к телефону можно его просто в руки взять и просмотреть все сообщения?
На телефоне можно поставить дополнительный код для входа в приложение (на десктопе возможно тоже, сейчас нет возможности проверить)
На десктопе тоже можно. А ещё можно поставить код на вход в учётную запись ОС. А ещё зашифровать диск.
UFO just landed and posted this here
Зачем что-то выколупывать? Отправить ещё один GET / POST-запрос с ПК жертвы к серверу, чтобы типа авторизоваться при первом запуске. Готово, ключ у нас!
Или Васян написал бота, который встраивается в систему, смотрит файлы, дампит сообщения из БД, сливает их на свой управляющий сервер — но вот сделать один-единственный запрос со скомпрометированного ПК к серверу Телеграма ему будет сложно?
Если человеку так важна секретность, то у него в системе изначально включено шифрование системного диска (по крайней мере на Маке это легко и просто).
Шифрование диска это несомненно, легко и просто(на любых системах), но хранение истории в незашифрованном виде не есть гуд. Даже если вы не гоняете гостайны в чатах. Данные из личных переписок вполне могут быть использованы против вас, например злоумышленниками, а именно с помощью социальной инженерии. Плюс возможно вы используете телеграмм как корпоративное средство связи(ChatOps)… Как бы, вариантов множество, и было бы хорошо, если не применение по умолчанию локального шифрования, так хотя б такая опция при установке приложения.
СМС на телефоне хранятся в незашифрованном виде. История браузера хранится в незашифрованном виде.

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

Десктопным ОСям давно пора тоже так делать.
Десктопным ОСям давно пора тоже так делать.

В Linux (в Ubuntu, по крайней мере) уже давно сделано.

UFO just landed and posted this here
А где вообще пользователей предупреждают, что хранится в открытом виде? Почему нельзя задать пароль\пинкод для шифрования?
UFO just landed and posted this here
UFO just landed and posted this here
Скриншоты кусочка диалога или вся база переписок — большая разница.
Кстати, как минимум в Telegram Desktop для Windows задать пинкод очень даже можно. Я не проверял, зашифровано ли там всё, но другие комментаторы тут намекают, что зашифровано
Десктопный клиент и так всё шифрует. просто у хранилища в начале лежит ключ шифрования не зашифрованный. если вы задаёте пароль, то этим паролем шифруется этот ключ.
Не понятно, в чем проблема-то (ну кроме желания покрасоваться на фоне хайпа)?

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

Т.е. не важно, что и как телеграм хранит. Всегда можно запустить его и начать копировать экран с распознаванием.

Из вышесказанного следует, что шифрование файлов на диске не даст ничего, так как сообщения все равно можно украсть. Или по-другому: любой ИИ по сокрытию локальной базы данных сообщений является просто security through obscurity, то есть к реальной безопасности имеет очень слабое отношение.
Не понятно, в чем проблема-то

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

Т.е. не важно, что и как телеграм хранит. Всегда можно запустить его и начать копировать экран с распознаванием.

И это обнаружит эвристический поведенческий анализатор любого популярного антивируса.
А мобильный шифрует хранящуюся локально переписку?
В мобильном без рут-доступа к ней не добраться просто так.
Ну так скоро найдется умелец, который залезет с рутом и напишет разоблачение.
В этом плане всё достаточно хорошо: рут не поставишь без анлока загрузчика, а анлок загрузчика вайпает всю память.
Понятно, если пользователь сам поставил рут — то ничего не попишешь, но в дефолтном состоянии — всё ок.
Я расскажу про Windows, на Linux железо будут то же, просто библиотеки другие.

Итак, как защитить Телеграм на Windows так же, как он защищен на iOS:
0. Изначально считаем, что владелец компа не рассказывает пароль администратора и пользователя.
1. Покупаем материнскую карту с поддержкой TPM.
2. Устанавливаем Windows с поддержкой BitLocker.
3. Шифруем диск с ОС, диск с загрузочным разделом и диск с Telegram (или по-простому — все диски должны быть зашифрованы)

Что мы получили:
1. Диски шифрованы, нельзя просто взять, воткнуть в другой компьютер и считать данные (ну или сбросить пароли стандартным способом с помощью спецдиска от MS).
2. Если не менялась конфигурация системы, то при загрузке чип отдаст системе пароль от дисков. Если что-то поменялось — пароль не отдадут.
3. Далее система загрузится и спросит пароль пользователя.

Единственное, что сможет сделать злоумышленник — это просто удалить всё из профайлов пользователя.

Возвращаясь к вопросу о мобильных ОС — там используется ровно тот же самый алгоритм. Там есть аналоги TPM, доступно то же шифрование дисков и так далее.

Можно просто установить veracrypt и зашифровать и системный диск и любые другие. Ничего покупать не надо.


Ну и доверия к опенсорсу побольше, чем к битлокеру.

Да, конечно, способов много. Просто у VeryCrypt немного другой стиль, он будет требовать ввода пароля при включении, т.е. он не делегирует работу с паролями операционной системе.


Цитата из wiki:


VeraCrypt не поддерживает взаимодействия с TPM, так как, по мнению разработчиков, TPM не может быть использован для решения задач информационной безопасности[17], так как TPM не обеспечивает никакой защиты компьютера от злоумышленника, получившего физический доступ к компьютеру и, например, установившего аппаратный кейлоггер.

mwizard, про FileVault — у него шифрование чуть более слабое, чем в BitLocker (хотя по сути такое же, как и в VeraCrypt).


Из wiki:


FileVault uses the user's login password as the encryption pass phrase. It uses the AES-XTS mode of AES with 128 bit blocks and a 256 bit key to encrypt the disk, as recommended by NIST.[12][13] Only unlock-enabled users can start or unlock the drive. Once unlocked, other users may also use the computer until it is shut down.[3]

В приложениях, работающих с TPM, есть по сути два пароля:


  1. Пароль для шифрования диска. Он длинный и сложный, создается программой и хранится внутри TPM. Его нереально перебрать.
  2. Пароль пользователя. Он простой (ну чтобы человек запомнил), однако он проверяется уже ОС, которая не даст перебрать пароли (т.е. не даст вводить неправильный пароль слишком часто).

Потому если Вы работаете с TPM, то главный пароль вам не отдадут. Если же шифровать раздел с помощью пароля пользователя (или как в маке — пароль пользователя шифрует только мастер ключ, а уже последний шифрует всё), то можно попытаться просто перебрать возможные шифры, которые мог вбить человек.


В самом Mac OS (в отличии от Windows) загрузочный раздел не шифруется:


For this approach to disk encryption, authorised users' information is loaded from a separate non-encrypted boot volume[4] (partition/slice type Apple_Boot).
Ну и доверия к опенсорсу побольше, чем к битлокеру

Если вами действительно заинтересуются те кто способен (если предположить что это возможно) взломать битлокер, то веракрипт вас тоже не спасёт.

Любое шифрование — это защита от любопытных админов, «обычных» криминалов (которым всё равно у кого что стащить) или конкурентов, но если речь про тех для кого вы являетесь конкретной целью, особенно если это спецслужбы (почти любого гос-ва) — то терморектальный криптоанализ (и его чуть более гуманные, но не менее эффективные аналоги) ещё никто не отменял, равно как и другие способы получить ключи шифрования (подглядывание, подслушивание, подпаивание etc).
Ну или включить FileVault на маке.
Уважаемый Jeditobe, для чего вы создаете статью с 3 строчками, а потом её дополняете остальным описанием?
Объясните, может это не спроста?

Это для того, чтобы кто-то другой, кто относится к аудитории хабра с уважением и поэтому сначала пишет статью, а только потом её публикует — не опередил Jeditobe

Так вроде это не баг, а фича? ЕМНИП Дуров где-то на просторах твиттера ещё пару лет назад говорил, что если само устройство скомпрометировано, то и защищаться дальше уже просто нет смысла (в конце концов можно же просто делать скриншоты экрана, от чего никакое шифрование не защитит, например)

если само устройство скомпрометировано, то и защищаться дальше уже просто нет смысла

Зайти с другого устройства, сбросить пароль и разлогинить все свои аккаунты?
Для этого нужно сперва узнать, что устройство было скомпрометировано, а это в особо запущенных случаях может затянуться даже на несколько месяцев — до тех пор злоумышленник успеет слить всё что надо (а если сливаемое зашифровано, то кейлоггер воткнуть и скриншотов наделать, если успеет; можно и память дапмнуть, если доступа хватает)
Согласен, я скорее имел в виду ситуацию когда у злоумышленника есть прямой доступ к устройству. Например украденный телефон/ноутбук.
В настройках программы есть код для запуска приложения. Если его использовать, то переписка тоже в открытом виде хранится?

Да и как мне кажется, шифрование записываемых данных на диск — это уже к операционной системе.
Этот код не включает шифрования переписки на диске.
Проверяли? Или опять инфа от какого-нибудь сомнительного первоисточника?)
Приведите авторитетный контр-пример, если хотите возразить, зачем попусту кнопки сотрясать.
Предлагаю начать с приведения авторитетных примеров для самого поста. Иначе получается, что он до сих пор врёт, начиная аж с заголовка
UFO just landed and posted this here

Подскажите где на Windows хранится SQLite база данных Telegram? Telegram Desktop хранится в папке C:\Users\<USER>\AppData\Roaming\Telegram Desktop\ но SQLite базы там не вижу.

C:\Users\\AppData\Local\Packages\TelegramMessengerLLP.TelegramDesktop_t4vj0xxxxxxxx\LocalCache\Roaming\Telegram Desktop UWP
Скорее всего тут.
Хочется добавить сценарий, когда приложение Telegram Desktop находится не на личном устройстве пользователя с шифрованием диска и т.п., а на рабочей станции, подконтрольной компании, на которую данный пользователь работает.

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

Тут в комментах выше намекают, что это косяк отдельного приложения Telegram для macOS, а с нормальным Telegram Desktop всё нормально — мне найти базу у себя так и не удалось, например (только кэш, и тот как будто зашифрованный), а история переписки заново подгружается из интернета после перезапуска (пробовал отключить интернет — история переставала отображаться, а после перезапуска даже списка чатов нет)

Только что убедился в этом же. Базу Desktop'а у себя не нашёл, а на скрине автора твита файлы от другого клиента. Jeditobe, заголовок и содержание новости, мягко сказать, немного некорректны.
Но только ту информацию, которая отображается в окне открытого клиента в момент снятия скриншота, но никак не всю историю переписки.

Там есть «Export chat history» (в декстоп). Только на один чат, но всё же.

Впрочем, если это комп компании, то формально всё что на нём находится — собственность компании, если иное не оговорено явно в контракте с сотрудником и если ему не разрешено хранить что-то личное.
Из настроек можно экспортнуть историю по всем чатам, и даже немного больше. Выполняют требования GDPR.

А вообще я в своём линуксовом Telegram что-то не могу найти никаких баз. Даже в каталоге tdata/user_data/cache ни я, ни file, ни binwalk не могут ничего прочитать, как будто и правда зашифровано

Да, я тоже обратил внимание, что структура данных в linux-версии Telegram совсем другая, чем на приведённом в статье скриншоте. Ни каких db_sqlite.
Да, зашифровано. Но если не стоит local passcode, то файлы шифруются ключем, который генерируется на основе данных уже хранящихся в этих файлах, пруф:
github.com/telegramdesktop/tdesktop/blob/979db978595e6e9c3cf3aec77b790bafd8836efe/Telegram/SourceFiles/storage/localstorage.cpp#L2113
Что мешает злоумышленнику изучить формат TDF-файлов, а после этого расшифровать их? Нужно будет потратить чуть больше времени, однако суть та же самая.
Хочется написать, ну слава богу! Хотя бы я буду иметь доступ к своим данным, а то все вокруг имеют, а я бы сидел и не знал.
P.S. удивительно, но можно зайти в телеграмм клиент и прочитать даже, не вводя никакого пароля.
Telegram Desktop не может ничего хранить локально, кроме медиа кэша (и не может поэтому отобразить историю сообщений без инета), яблочники должны страдать, а за такие заголовки авторов надо карать развоплощением.
Это сообщение — неправда. Проблема относится к Telegram for MacOS.
Telegram Desktop вообще не хранит никакие сообщения локально. А то что хранит (медиа и настройки) хранит в своём проприетарном формате, обмазанного шифрованием aes256, для которого даже нет стороннего парсера (точнее был один но с последним апдейтом он сломался).
А бездумно репостить первоисточники — так себе идея
Это должно быть не только в коде, но и в FAQ написано, чтобы можно было пользователю легко разобраться.
Не должно. Там и так фак слишком длинный чтобы средний человек его прочитал. А специалист может и погуглить немного.
Автор: Сенсация! Автомобиль <пустьбудетмазда> переворачивается если 41 секунду ехать со скоростью 91.8 км/ч!
Комментаторы: Нет, это неправда. Можете проверить характеристики, тесты, и т.д.
Автор: Почему в инструкции к автомобилю нету пункта что он не переворачивается если 41 секунду ехать со скоростью 91.8 км/ч?!? А?!?
Вот, как это выглядит.
И там (Signal) и здесь (Telegram) — MacOS.

Мне кажется, это не совпадение.

P.S. На Telegram Desktop под windows я такой проблемы не наблюдаю.
P.P.S. Категорически рекомендую заменить заголовок. В данный момент вы дёшово пиаритесь и вводите в заблуждение добропорядочных пользователей. Фу таким быть.
Дуров совершенно прав в своём ответе — потому что тот кто имеет доступ к персональному устройству, может почти всё что его владелец, и это забота владельца. Если владелец делит его с кем-то (намеренно или по незнанию) — это его и только его проблема.

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

Для меня лично (и я явно не один) история в открытом виде (при условии только физического доступа, разумеется) — это фича, ибо я хочу иметь возможность иметь бэкап всего «без регистрации и смс» в читабельном виде.

Если я потеряю свой телефон — удачи тем кто его найдёт (со взломом шифрования), равно как и в случае десктопа/ноутбука (по той же причине), а случайные люди не получат доступа, ибо устройство разлочено только если я им пользуюсь (если нужно отойти всего на полметра в зоне прямой видимости — обязательный lock, даже если это дома в абсолютно пустой комнате).

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

Кстати, а про WhatsApp никто ничего не писал? Он-то локально хранит всё зашифровано (так что хрен расшифруешь), а вот удаленно (Google Drive) — как раз в открытом виде (о чём, впрочем, честно предупреждает). Но такое вопиющее нарушение «секретности» почему-то никого особо не волнует, в то время как в случае с Signal/Telegram это и не проблема вовсе.


Ждём сенсационных уязвимостей «Chrome/Firefox хранят историю браузера и пароли на компьютере пользователя открытым текстом».

Ещё было бы интересно посмотреть, как там пароль пользователя хранится в ReactOS :) В Windows XP хэш пароля хранился в файле, который можно было спокойно скопировать, загрузившись с дискетки в DOS. На Pentium 4 пароль из 9 букв я вскрывал где-то за пару часов. Полагаю, что на современном 6-ядерном процессоре это было бы всё равно, что «открытым текстом».
UFO just landed and posted this here
Короче как в анекдоте.
Не Натансон, а Шниперсон, не выиграл, а проиграл, не в лотерею а в 21, не мерседес, а 21 волгу
Sign up to leave a comment.

Articles