Из прошлого


В предыдущей своей работе Я продемонстрировал уязвимость секретных чатов Telegram, и выложил видео-мануал по восстановлению local code Telegram на GNU/Linux/Windows/Android (взлом СЧ Telegram).

Недавно обнаружил «продолжение уязвимости»: Android-Telegram [обход local code пароля любой длины] (добавлена атака «отпечатком пальца»).

Некоторые комменты, которые я собираюсь опровергнуть, благодаря случайному эксперименту со своим подопытным Android-девайсом.
«На Хабре вышла статья под названием «Уязвимость в Telegram позволяет скомпрометировать секретные чаты». Громкий заголовок, да. Мы ознакомились с материалом и рекомендуем читателям поступить точно так же, хотя бы ради интереса.»
«в Android-версии Telegram уже несколько лет как можно вместо пин-кода задавать сложный буквенно-циферный пароль»
Источник
«В Андроид версии, ЕСТЬ возможность установить произвольный пароль, для тех кому мало 4х значного PIN»
Источник
«Можно юзать не пин, а пароль. Да и если у тебя root или разлоченый бутлоадер или не шифрованный телефон то о какой бесопасности личных данных вообще можно говорить?!»
Источник
«Во-вторых, жертва не должна включать на своем устройстве шифрование данных»
Источник.

(Отступление – были всякие (не только критика, что-то по жестче) «забавные» комментарии на счет атаки на Local Code, например, такой коммент:
«Техпод телеграмма, толпа тупых уе… ов, которые не хотят или не могут сказать Дурову, что оказывается взломать секретные чаты можно и для этого не надо ломать его хваленный протокол»
Источник)

Переписывать прошлую статью не собираюсь, всё подробно расписано по крекингу local code в предыдущей работе, напомню ключевые моменты:
Telegram local code (pin) взламывается мгновенно с помощью JTR. Условия: нужен root; как выяснилось «сегодня» шифрование Android не всегда спасает; не спасет и вместо «pin» «password» local code Telegram.

Чтобы завладеть секретными чатами Telegram, достаточно было скопировать «несколько файлов» с root-девайса на другой, взломать некриптостойкий local code с помощью JTR. Скорость брутфорс атаки впечатляла, но всё же не такая быстрая, чтобы взломать «когда-нибудь» «password» local code > 30 знаков. Нашел способ атаковать «password local code» любой длины и сложности.

Алгоритм атаки следующий


(имеем root; зашифрованный гаджет; пароль > 30 знаков на стороне жертвы; устройство отпечатка пальца не существует «то есть неважно»).

  • Украсть «внешние данные Telegram» (см.пред.статью).
  • Настроить разблокировку своего Android-девайса отпечатком пальца на стороне исследователя (позиция атакующего).
  • Установить с GP Telegram и объединить с «внешними данными».
  • При открытии Telegram на устройстве исследователя и при запросе ввода 31-значного пароля (для разблокировки local code) – приложить свой палец. Telegram разблокируется, станут доступны все секретные чаты/переписка и облако исследователю.

Интересно, что такой атаке подвержен только Telegram (из 4-х протестируемых приложений). Попробовал провести подобные атаки на keepass2android offline; Сбербанк-онлайн; Яндекс деньги – эти Android приложения требовали пароль и на отпечаток никак не реагировали.


Сюжет на видео:

  • Создан секретный чат между Android на Virtualbox, где нет устройства «отпечатка пальца» и Android 6. Между «террористами» идёт общение.
  • На Android Virtualbox задаю local code 31-значный пароль — блокировка приложения Telegram.
  • Делаю Бэкап учетки Telegram- Virtualbox (не обязательно копировать все данные см.пред. статью).
  • Копирую данные на ЯД.
  • Забираю c ЯД Бэкап на Android 6.
  • Устанавливаю Telegram на Android 6 из GP.
  • Подсовываю часть «внешних данных» из Бэкапа Android 6 на установленный Android 6.
  • Запускаю Telegram на Android 6, получаю запрос на ввод пароля/отпечаток. Прикладываю отпечаток пальца, и telegram разблокировался, доступна вся переписка СЧ и облако.
  • Перезапускаю Telegram, ввожу 31-значный local code, и Telegram также разблокирован.


Дубль. Удалил отпечаток на смартфоне, сбросил pin-cod смартфона. Установил новый pin на девайсе, создал новый отпечаток пальца. Провёл повторно эксперимент (вычистил полностью Telegram с устройств/инсталировал) и новый отпечаток снова разблокировал чужую учетку Telegram. Версия Telegram-Android v5.4 от 27.02.2019г.

Подводя итог по этой части статьи.

Telegram подвержен к атаке хищения ключей, но самое странное в мессенджере – «интегрированный отпечаток пальца в приложение». Яндекс деньги; Сбербанк-онлайн; keepass2android offline – не подвержен к подобной атаке. У всех перечисленных выше приложений имеется функция разблокировка приложения по отпечатку, но в Telegram она принудительно интегрирована и срабатывает, когда ее используют в коварных целях, в других приложениях функция «отпечатка» не срабатывает – защита от мошенничества).

Мессенджер Telegram – массовый мессенджер, защиту нужно разрабатывать и для домохозяек и для всех. Лицо компании не прав, когда заявляет, что все беды от того, что скомпрометировано все на свете, кроме мессенджера Telegram.
Если Вы потеряете Ваш рутованный (в некоторых случаях — шифрованный) девайс, за финансы или keepass2android offline переживать не стоит (пароли не вскроют). Тот кто найдет гаджет — получит «лишь» доступ ко всем СЧ Telegram. Зачистка данных Telegram с нового устройства не поможет, если злоумышленник вскроет ее в оффлайн режиме (кэш останется на месте).
Понимают ли эту проблему разработчики Telegram, разрабатывая свою криптовалюту?

ps/ не имеет отношения к Telegram


Так же мне удалось обойти шифрование на Android девайсе Leagoo M8 и достать все данные, в том числе и данные Telegram для доступа к СЧ (атакой JTR, либо отпечатком).

На ресурсе 4pda имеется стоковая прошивка данного гаджета и десятки кастомных (свободных) прошивок. Установил TWRP. Отформатировал устройство Android Leagoo M8, накатил прошивку Resurrection Remix 6 (одна из лучших на мой взгляд). Зашел в настройки – безопасность – зашифровать данные. Зашифровал. До загрузки гаджета стал требоваться пароль (в TWRP без пароля не монтировался главный раздел). Прошил secro.img от стоковой прошивки и пароль (все шифрование) благополучно исчез. В TWRP появилась возможность монтировать раздел без ввода пароля, /data/data/… стал доступен.

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

Комментарии (60)


  1. Valle
    04.03.2019 19:15
    -1

    Я правильно понял, что статья про то, как можно «взломать» мессенджер, имея: отпечаток пальца, незашифрованный телефон на четырехлетней OS, и полный root доступ без пароля?


    1. ne555 Автор
      04.03.2019 19:16
      +4

      Нет, неправильно.


  1. mr_tron
    04.03.2019 19:29
    +17

    Простите, но вы не могли бы немного поработать над подачей? А то сперва тебя встречают какие-то фрагменты каких-то старых споров, а потом плохо структурированный текст со ссылками без ссылок на предыдущую статью (её надо целиком перечитать чтобы осилить эту?)
    Очень тяжело читаются не общепринятые аббревиатуры, которые экономят всего десяток букв. GP (батарейки такие), ЯД (выпивают который?), СЧ (средние частоты?).
    Прочитал статью трижды, но по-прежнему хочется приложить картинку «няня, я у них поел».


    1. Moskus
      05.03.2019 00:21
      -1

      Добавлю к этому злоупотребление пропущенными местоимениями и вообще сказуемыми (нужно два раза прочесть предложение, чтобы понять, «кто на ком стоял»), а также предложениями без согласования или с произвольно измененным порядком слов. Пример:

      ..., не спасет и вместо «pin» «password» local code Telegram.

      можно же написать так (получится даже короче):
      ..., не спасет и использование local code вместо pin.


      1. bird0001
        05.03.2019 00:46
        -1

        Это прекрасно, что вы занялись «правкой текста», однако и автора понять можно :)
        Возможно, у него было столь сильное желание поделиться этой статьей с другими, что времени на «отлов ляпов» просто не было :)
        p.s. простите за оффтопик.


  1. Pydeg
    04.03.2019 19:58
    +1

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


    1. appletesta
      04.03.2019 21:43

      Во-во! Все постоянно забывают про криптоанализ методом «ключ (разводной) + наркота»!


    1. dartraiden
      04.03.2019 21:53

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

      Приложение не должно заниматься безопасностью оконечного устройства, потому что это не его задача, и задача эта решается глобально, а не «per app».

      Если пользователь постоянно «сидит под рутом» или выдаёт права суперпользователя не глядя, то пользователь сам себе злобный буратино.


      1. ne555 Автор
        04.03.2019 22:15
        +1

        Прокоментируйте пожалуйста, почему keepass (не подвержен аналогичным атака)?
        Отвечу сюда, на Ваш 2й комент:
        Учетку, которую распарсил с virtualbox, не с мтк.
        Если Вы считаете, что китай.телефоны дно, это не означает, что ими ни кто не пользуется.
        Впрочем, как и с получением root-прав. Образы на virbox идут с root. Кол-во root устройств в этом мире ни единицы.


        Спасибо, что не забываете комментировать все мои статьи.


        1. dartraiden
          04.03.2019 22:17

          Спасибо, что не забываете комментировать все мои статьи.
          Я прокомментировал уже сотни статей за годы нахождения на ресурсе, а вас помню как автора предыдущей статьи про «уязвимость», которую я таковой бы не счёл. Мы где-то ещё пересекались?

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


          1. ne555 Автор
            04.03.2019 22:20

            Почититайте манифест шифропанков, про конфиденциальность.


          1. dartraiden
            04.03.2019 22:24
            +1

            А, и правда, из 5 ваших статей 4 я откомментировал, потому что они о шифрованиии и скрытии информации, всё как я люблю.


        1. iChaos
          05.03.2019 03:57

          Прокоментируйте пожалуйста, почему keepass (не подвержен аналогичным атака)?

          KeepAss KeePass вполне подвержен подобным атакам (т.е. атакам направленным на доступ к некоторой информации с помощью инструментов недоверенной среды исполнения), как в принципе и любая другая программа имеющая доступ к секретной информации, в недоверенный среде. Об этом прямо говорится в документации к десктопной версии KeePass:
          For example, consider the following very simple spyware specialized for KeePass: an application that waits for KeePass to be started, then hides the started application and imitates KeePass itself. All interactions (like entering a password for decrypting the configuration, etc.) can be simulated. The only way to discover this spyware is to use a program that the spyware does not know about or cannot manipulate (secure desktop); in any case it cannot be KeePass.

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


        1. MINYSMOAL
          05.03.2019 15:29
          +1

          Точно не подвержен?)
          defcon.ru/penetration-testing/3353


      1. Barnaby
        04.03.2019 22:28
        +2

        Тогда и local code не нужен — все данные храним в plain text.


        Но local code есть, зачем?


        1. AlxDr
          05.03.2019 19:01

          Примерно за тем же, зачем нужна защёлка на двери комнаты. От честных, но любопытных людей и случайных атак.

          Грубо говоря, дать телефон другу позвонить.

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


          1. pyrk2142
            06.03.2019 23:38

            Долгое время в IOS версии было два места ввода пин-кода, одно из них популярное и защищённое от брута, второе — малоизвестное и незащищенное. Не знаю, как сейчас обстоят дела с этим.


      1. Meklon
        05.03.2019 12:03

        Вопрос. А как корректно с разблокированным загрузчиком предотвратить атаку? Вот я поставил LineageOS + TWRP + Magisk. Шифрование на данный момент не активировано, хочу снять копию ОС перед включением.


        1. powerman
          05.03.2019 12:19
          +1

          Какую конкретно атаку?


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


          1. Temtaime
            05.03.2019 21:43

            Какая-то слишком сложная теория заговора. Успеть за "ненадолго" ребутнуть телефон в рекавери, что-то там установить, загрузить обратно, да ещё всё это "незаметно". Разве можно не заметить, что телефон ребутался?


            1. powerman
              05.03.2019 22:10

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


        1. ne555 Автор
          05.03.2019 13:10

          В том-то и дело, не на всех устройствах ее можно предотвратить.
          Вы не указали Ваш Гаджет. После того, как вы проведете шифрование устройства (настройки-безопасность-зашифровать данные). TWRP будет (должен) требовать этот пароль/pin, иначе он не сможет смонтировать раздел /data/data. И все отлично, НО! шифрование реализуется не за счет прошивки (в моем случае RR), в вашем LineageOS, а за счет secro.img. После повторной прошивки именно этого образа пароль благополучно уходит и TWRP монтирует раздел без запроса пароля и данные на ладони (ни чего не удаляется). Но это с моим гаджетом такой фоку проворачивается, с вашим возможно нет.
          Зайдите на профильный ресурс 4pda, здесь Вам не помогут.


          1. Meklon
            05.03.2019 17:01

            asus zenfone max pro m1
            Основная задача — не слить данные в случае изъятия или потери.


    1. powerman
      05.03.2019 08:08
      +3

      Рут — это же как раз про уязвимость среды.

      Ну что за дичь? Наличие рута не делает систему более уязвимой, нельзя настолько верить маркетинговому FUD. Рут в системе есть всегда, разница только в том, кто управляет доступом к выполнению приложений с рут-правами: в большинстве прошивок это производитель телефона, а в редких исключениях либо после ручного получения рута это владелец телефона.


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


      При этом надо отметить, что, если юзер понимает, что делает, то шансы уговорить его дать рута приложению "фонарик" или подсунуть протрояненный apk на стороннем сайте пренебрежимо малы. Зато наличие рута даёт юзеру возможность поставить AFWall+, XPrivacyLua, AdAway, Titanium Backup… плюс удалить/отключить malware/spyware/adware уже встроенные производителем в прошивку, и получить значительно более защищённую систему.


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

      dartraiden Приложение не должно заниматься безопасностью оконечного устройства, потому что это не его задача, и задача эта решается глобально, а не «per app».

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


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


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


      • отсутствие поддержки секретных чатов в десктопной версии
      • секретные чаты не используются по умолчанию
      • отсутствие синхронизации секретных чатов, хотя есть алгоритмы позволяющие это делать без ущерба для безопасности
      • отсутствие надёжного и явного контроля отпечатков (fingerprint) обеих сторон в секретном чате
      • отсутствие поддержки групповых секретных чатов

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


      1. bird0001
        05.03.2019 16:44

        Дурову вообще секретные чаты не очень-то нужны, и безопасность переписки юзеров у него явно не в приоритете. Это наглядно доказывают факты:
        • отсутствие поддержки секретных чатов в десктопной версии

        Отсутствие секретных чатов в desktop version приложения обусловлено вполне объективными причинами. Как привило, desktop version предназначена для полного использования облачной инфраструктуры с мгновенной синхронизацией между различными устройствами. Desktop приложение может работать с большим кругом участников и документами любого типа в отличие от мобильной версии, где секретные чаты находятся в большей безопасности, так как привязаны к одному мобильному устройству и не могут быть синхронизированы между платформами/устройствами.


        1. powerman
          05.03.2019 17:36
          +3

          Я не увидел в Вашем комментарии тех самых "объективных причин", ни одной. Синхронизировать секретные чаты возможно, и это реализовано в Signal, WhatsApp, Wire, Jabber (OMEMO), Matrix, … Групповые секретные чаты тоже возможны, и уже реализованы в Signal, Viber, WhatsApp, Briar, Wire, Jabber, Matrix, Treema… Насколько секретные чаты "в большей безопасности" на мобильном устройстве хорошо описано в статье.


          Но, даже если допустить, что безопасность логов секретных чатов действительно очень важна и только залоченное и нерутованное мобильное устройство может обеспечить требуемый уровень безопасности (хотя это не так), остаётся куча вопросов:


          • почему тогда секретные чаты работают на мобильных устройствах с разблокированным загрузчиком и/или рутованных? разве они не должны панически самоуничтожиться в этих условиях, ведь они ничем по защищённости не отличаются от десктопа?
          • невозможность защитить логи секретных чатов не имеет значения, если юзер выбрал "не сохранять лог секретных чатов" в настройках (кстати, а такая настройка есть? должна быть, если, конечно, заботиться о безопасности), а значит десктопная версия могла бы работать хотя бы исключительно в этом режиме
          • невозможность защитить логи не отменяет того факта, что намного важнее защищать сообщения при передаче по сети, и это стоит делать в любом случае — сеть атакована MITM практически гарантированно всегда и везде (СОРМ, etc.), и даже в случае шифрования до серверов телеграм вынудить их по суду или атаковать намного проще, чем получить доступ к дискам компов двух конкретных людей общавшихся в чате


          1. bird0001
            05.03.2019 18:47
            -2

            Вы подводите меня к тому, чтобы я начала сравнивать приложения с разными концепциями и делать свой субъективный выбор в пользу одних, игнорируя привлекательность других.
            Простите, но я ничего не могу поделать с тем, как позиционирует себя на рынке Telegram, однако могу сказать одно: в новостных лентах «о возможных уязвимостях» данное приложение мелькает реже, чем другие.
            Ни одно приложение не будет в безопасности в недоверенной среде (и это не только разблокированный загрузчик и/или рут [производитель устройства], но сюда мы можем отнести проблемы на стороне: сотового оператора, самой операционной системы и, конечно, приложения. Насколько бы не был совершенен алгоритм синхронизации секретных чатов — ничего не спасет, если Вами по-настоящему заинтересовались.


          1. bird0001
            05.03.2019 22:22

            Я не увидел в Вашем комментарии тех самых «объективных причин», ни одной.

            Немного об особенностях именно Telegram, а также сравнении с Whatsapp and iMessage:
            While your Cloud Chats can be accessed from any of your devices anytime, Secret Chats are not part of the Telegram Cloud and are device-specific by design. This way you can always be sure that they are safe for as long as your phone is safe in your pocket. Secret Chats also use end-to-end encryption, so they can’t be synced in the same simple and convenient way as Cloud Chats.
            The concept of End-to-End Encryption has no limits for the number of communicating devices. However, if you want to access your end-to-end encrypted chats from multiple devices, you’re facing many technical difficulties, especially when it comes to connecting new devices, loading chat history and restoring backups.
            Most of our competitors (notably, Whatsapp and iMessage) solve these problems in ways that make their end-to-end encryption useless (this is a big topic, so requires a separate manual). To solve them in a secure way, you’d have to sacrifice usability and some of the features you’re used to – the result would never be as fluent and simple as what we offer in Cloud Chats.
            One-device Secret Chats are a feature.
            Secret Chats are not just about End-to-End Encryption, otherwise we‘d have simply called them ’end-to-end encrypted chats'. Secret Chats are a bundle of tools for private single-device communication.


            1. powerman
              05.03.2019 23:39

              Не буду спорить со сказанным в отношении WhatsApp и iMessage, но помимо них есть мессенджеры, которые сумели реализовать все эти фичи безопасным способом: Signal, Wire, Jabber, Matrix — все они используют Signal Protocol или его вариации. Упомянутые в Вашей цитате "технические сложности" телеграм вызваны тем, что он использует другой протокол, а не тем, что эти фичи невозможно реализовать безопасно.


              На всякий случай уточню: необходимость модифицировать текущий протокол или заменить его на Signal Protocol не является «объективной причиной» почему данный функционал реализовать нельзя — это просто очередная фича, которую надо добавить.


              1. bird0001
                05.03.2019 23:54

                Здесь и ранее были использованы цитаты из официального End-to-End Encryption FAQ.

                Secret chats require permanent storage on the device, something that Telegram Desktop and Telegram Web don’t support at the moment. We may add this in the future. Currently, both the desktop and the web app load messages from the Cloud on startup and discard them when you quit. Since secret chats are not part of the cloud, this would kill all your secret chats each time you shut down your computer.

                Статистика:
                Several years later, statistics confirm our guesses about the viability of Secret Chats on desktops: same as before, only 2% of the Mac OS app users use them in that app. At the same time, all users of the Mac OS app actively use Secret Chats on their mobile devices – just like other Telegram users.

                Они не исключают возможности, что реализуют данный функционал в будущем.
                p.s. Соглашусь с Вами, что реализовать можно.


      1. DerRotBaron
        06.03.2019 12:33

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

        Но тем не менее это не оправдывает дурацкую уязвимость и «маркетинговый» подход к безопасности


        1. powerman
          06.03.2019 13:08

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


          Но суровая правда жизни в том, что рут нужен для контроля над своим устройством, но в наше время этого недостаточно — прошивки от производителей часто содержат spyware/adware, а то и малварь, поэтому замена родной прошивки на что-нибудь вроде LineageOS превращается в банальную гигиену, без которой пользоваться телефоном крайне нежелательно. И для этого, безусловно, загрузчик необходимо разблокировать.


  1. rumkin
    04.03.2019 20:00

    • Запускаю Telegram на Android 6, получаю запрос на ввод пароля/отпечаток. Прикладываю отпечаток пальца, и telegram разблокировался, доступна вся переписка СЧ и облако.
    • Перезапускаю Telegram, ввожу 31-значный local code, и Telegram также разблокирован.

    У вас в двух идущих подряд пунктах Телеграм разблокирован. Путаница какая-то, поправьте и укажите более подробно что происходит в первом и втором случае.


    1. ne555 Автор
      04.03.2019 20:08

      Нет никакой путаницы, я описал, что происходит на видео. Смотрите видео.
      Я запускаю Телеграм, разблокировал отпечатком, не зная 31-значный пароль.
      Повторно открываю Телеграм (эту же учетку) и ввожу (вместо отпечатка) 31-значный пароль (показать, что учетка именно «та» с VirtualBox").


      1. rumkin
        04.03.2019 20:17
        +3

        Разобрался в том, что вы имели в виду. Читать вас не просто.


        Использовали ли вы отпечаток пальца для этого телеграм-аккаунта ранее, до запуска Телеграма в VirtualBox? Использовали ли вы в VitualBox учетную запись, созданную в другом Android-устройстве, в котором применяли авторизацию по отпечатку пальца?


        1. ne555 Автор
          04.03.2019 20:21

          В обоих случая — нет.
          Это опять же видно на видео (например, установка telegram из GP)


          Если имеет значение, то учетку на vir.box вообще создал сегодня на новую симку.


          1. rumkin
            04.03.2019 20:40
            +1

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


            1. Vladicka
              04.03.2019 21:08
              +1

              Так ключи должны были импортироваться вместе с бекапом, разве нет?


              1. SaturnTeam
                04.03.2019 21:14

                Да, но для разблокировки ключа который был на устройстве (вместе с бекапом) нужен этот самый пароль. Либо отпечаток пальца с этого самого устройства (которого не было изначально). Но на новом устройстве, удалось разблокировать ключ на устройстве неизвестным ранее отпечатком.
                Я посмотрел видео и выдвинул три гипотезы
                1) ключи для end-to-end шифрования хранятся на сервере Телеграма
                2) ключ на устройстве шифруется таким образом что устройству уже известно как расшифровать этот ключ. А пароль/пин/опечаток — лишь «для пыли в глаза»
                3) ne555 нас пытается обмануть (ничего личного)
                4) (дополнение 2) ключи хранятся на устройстве, но установка пароля/пин блокирует лишь интерфейс, и не влияет на шифрование ключей (то есть не происходит их шифрование этим паролем/пином для дополнительной надежности(?))


                1. Vladicka
                  04.03.2019 21:30

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


                  1. SaturnTeam
                    04.03.2019 21:35

                    Так нельзя, так как «проделав все тоже самое» ключи шифрования тоже могут скопироваться.


                  1. ne555 Автор
                    04.03.2019 21:42

                    Верно, и без инета, учетка откроется со всеми СЧ.
                    Я специально создал учетку в Телеграм, написал важные сообщения (готовил небольшой конкурс) Планировал после бэкапа ее уничтожить (знал, что она откроется потом в офлайне с нужными сообщениями). А далее обнаружил "это" и немного покопал.


                1. ne555 Автор
                  04.03.2019 21:34

                  Ни чего личного
                  В чем и где я пытаюсь Вас обмануть?
                  Я приложил статью (+ссылаюсь на первую свою статью для полноты картины)
                  Все на столько подробно, что Вы просто берете и проверяете.


                  На VirtualBox нет устр. отпечатка пальца, учетка создана впервые сразу на вирт.машине. Учетка разворачивается/открывается на другом устройстве "чужим" отпечатком. (В статье задействовано 2учетки и 3 девайса).


                  Я специально указал и тестил доп.такие приложения, как Ян.деньги, Сбер, Кипас на аналогичную атаку (у них тоже отпечаток в арсенале).


                  1. SaturnTeam
                    04.03.2019 21:43

                    Обман — самое простое объснение:)
                    Я читал первую статью еще в момент выхода и хорошо помню смысл.

                    Учетка разворачивается/открывается на другом устройстве «чужим» отпечатком

                    Вот это действительно интересно. Так как согласно вот этому
                    Теперь можно с чистой совестью отправить его на вход в decode(), получить пин-код, сымитировать его ввод и показать пользователю его данные.

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


                1. Revertis
                  04.03.2019 22:28

                  Вот четвертый вариант скорее всего верный. Код/пароль открывает только интерфейс, остальное незашифровано.
                  А проблема только в том, что данные приложения можно перенести.


                1. rumkin
                  04.03.2019 23:38

                  2) Т.е. не шифруется вовсе.
                  4) Если это реализовано таким образом, то встает вопрос, где еще Телеграм умышленно понижает безопасность. Для девайсов без встроенных чипов защиты использование секретных чатов должно быть попросту недоступно. Как вариант собеседнику с более защищенным устройством должно показываться предупреждение о недостаточной надежности канала.


              1. ne555 Автор
                04.03.2019 21:39

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


  1. dartraiden
    04.03.2019 22:02
    -1

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

    Да, шифрование на китайфонах это давняя и больная тема. На телефонах, построенных на чипах MTK, раньше даже загрузчик не блокировался в принципе, о какой безопасности тут можно говорить?

    Но если пользователь покупает себе аппарат, предназначенный для китайского рынка, и, несертифицированный Google («ну а что, так дешевле, что я дурак что ли переплачивать за Global-версию, я всех облману и возьму дешевле, какой я молодец»), где шифрование реализовано так, что лучше бы его не было вовсе, то пользователь сам дурак.


    1. ne555 Автор
      04.03.2019 22:18
      +1

      И многое Вы знаете о сертификации Гугл?
      А о свободных прошивках?
      Ваши посты "однотипны" и к первой части и ко второй


      1. dartraiden
        05.03.2019 00:50

        И многое Вы знаете о сертификации Гугл?
        Например.

        А о свободных прошивках?
        О том, что установка свободных прошивок, увы, требует разблокировку загрузчика?

        Ваши посты «однотипны» и к первой части и ко второй
        Не потому ли, что обе части основываются на «имея права суперпользователя можно поиметь приложение»? Впрочем, я постараюсь не комментировать ваши посты на эту тему впредь (вот теперь мне как раз придётся обращать внимание на автора, чтобы исполнить обещание).


        1. bird0001
          05.03.2019 01:06

          Простите, а не могли бы Вы конкретизировать эти части? Вы имеете в виду статьи? Мною были просмотрены следующие:
          1. Эта статья.
          2. «Уязвимость в Telegram позволяет скомпрометировать секретные чаты» (именно из-за нее, честно говоря, и был написан мой пост).
          p.s. да, Вы имели в виду статьи. Спасибо.


    1. ctacka
      05.03.2019 00:45
      -1

      Телеграмм позиционируется как защищенный месенджер, и у него нет никаких требований по железу. Значит, это уязвимость, а не "пользователь сам дурак".


  1. bird0001
    04.03.2019 22:26

    Спасибо за статью и за Ваши выводы. + Ничего не имею против такой подачи материала :)
    p.s. «Уязвимость в Telegram позволяет скомпрометировать секретные чаты» — за эту статью отдельное спасибо.


  1. skymal4ik
    05.03.2019 00:53

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

    PS автор, со всем уважением, не торопитесь пожалуйста, уделите ещё немного времени для вычитки и написания слов целиком. Все эти ЯД, устр. и прочие несколько портят статью и затрудняют чтение.


  1. Sabubu
    05.03.2019 05:04

    Стиль изложения, конечно, сумбурный. Для тех, кто ничего не понял: автор утверждает, что версия Телеграм под Андроид не шифрует данные (переписку, ключи авторизации) на диске (или шифрует, но без использования пароля), а пароль (local password) используется только для блокировки интерфейса приложения и может быть заменен на ввод отпечатка пальца.


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


    Это, правда, противоречит методике взлома, описанной в прошлой статье автора, где утверждалось, что конфиг Телеграма зашифрован с помощью пин-кода. Естественно, если конфиг зашифрован пин-кодом или паролем, то перенос его на другое устройство не позволит извлечь данные.


    В конце автор добавил, что по его наблюдениям, некоторые телефоны Android не шифруют данные на диске при выборе соответствующих настроек, а лишь создают видимость шифрования. Это вполне возможно: если вы покупаете несертифицированный Гуглом телефон, гарантий вам дать никто не может.


    Также, в видео есть интересные моменты:


    1) автор не смог с первого раза задать пароль, отменил его ввод и поставил его со второй попытки. Может быть, проблема в этом, что ошибка установки пароля что-то сломала в приложении и не позволила зашифровать данные?


    2) автор сначала ведет переписку, а только потом ставит local password. Возможно, конфиги или данные по какой-то причине не успели зашифроваться. Интересно, а если поставить local password, перезагрузить телефон и потом вести переписку — этот метод продолжит работать?


    3) автор после разблокировки телеграма отпечатком на втором устройстве не продемонстрировал, что можно, например, нажать на чат и увидеть сообщения в нем. Он лишь на пару секунд показал стартовый экран программы. Вы можете показать работоспособность Телеграма после разблокировки пальцем и возможность читать переписку и отправлять сообщения? Возможно, на первом устройстве просто сохранился незашифрованный скриншот интерфейса Телеграм и после переноса на второе устройство и разблокировки он показался на экране? Или, например, при изготовлении бекапа состояние памяти процесса Телеграм было сдамплено и восстановлено на втором устройстве? Автор, вы можете проверить/продемонстрировать, какие именно данные содержатся в перенесенном бекапе? Что, если перезагрузить первый телефон и сделать бекап после перезагрузки?


    Было бы здорово исключить эти гипотезы.


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


    В FAQ написано:


    … [But please remember that we cannot protect you from] any other people that get physical or root access to your phones or computers running Telegram.

    Это очевидно: если у вас есть рутовый доступ, вы можете изучать экран, перехватывать нажатия клавиш, содержимое памяти процесса Телеграм.


    Q: How are secret chats different?

    All secret chats in Telegram are device-specific and are not part of the Telegram cloud. This means you can only access messages in a secret chat from their device of origin. They are safe for as long as your device is safe in your pocket.

    Where did my Secret Chat messages go?

    Secret Chats are established between the two devices they were created on. This means that all those messages are not available in the cloud and cannot be accessed on other devices.

    Moreover, Secret Chats are also tied to your current login session on the device. If you log out and in again, you will lose all your Secret Chats.

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


    1. ne555 Автор
      05.03.2019 07:25

      Непонятно, где Вы противоречие с первой статьей нашли.
      1) Да, со второго раза пароль поставил (31знак, где-то ошибся с первой попытки) пароль был — 31знак.
      2) Успело (после установки local code, перезапускаю приложение и требовался ввод пароля (на вирт.машине, см.видео) Я до снятия видоса, естественно несколько раз это проделал с простым паролем.
      3) Да, могу. Вы посмотрите видео из первой части, там я довольно долго веду переписку из угнанного СЧ.
      Документацию FAQ я также приводил в первой статье.
      Про «скриншот» вообще забавно. Я вам не предлагаю на веру взять. Попробуйте, повторите и убедитесь сами.
      «Статья сумбурная» А сколько статей написали Вы?


      1. anko_2000
        05.03.2019 10:02
        +8

        Подача настолько ужасная, что убивает статью
        Неужели так сложно четко описать эксперимент — гипотеза, алгоритм проверки, результаты, выводы?

        «Статья сумбурная» А сколько статей написали Вы?

        В свое время написал несколько десятков статей в научных журналах


        1. ne555 Автор
          07.03.2019 07:30

          В свое время написал несколько десятков статей в научных журналах

          В свое время я ставил научные эксперименты в холодной Арктике.


      1. powerman
        05.03.2019 10:46
        +9

        «Статья сумбурная» А сколько статей написали Вы?

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


        1. ne555 Автор
          05.03.2019 10:55
          -11

          потратьте немного сил чтобы научиться писать лучше

          Потратьте несколько минут, заглянув в мои статьи, чтобы разубедиться в своих высказываниях.
          И подумайте, почему я предоставил таким образом подачу материала.

          Режим, который Вы упомянули я не включал, более того, я занят, над тем, с чем работал вчера (не дешифрование), и с чего меня сбила данная проблема в telegram (в комментах я об этом упомянул).