Слоган статьи: пятничный 13го сбой на Telegram


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

Немного из прошлого


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

Нововведение касалось открытия запароленных архивов в web интерфейсе Яндекс почты. Для своего удобства прибегнул к такому маневру: создавал txt с секретными данными, архивировал с применением пароля документ и заливал его на сервер Яндекс почты. При необходимости мгновенного использования персональных данных вне зоны комфорта, например на чужой машине, открывал в браузере приватное окно, открывал почту, открывал архив, вводил пароль доступа, и документ открывается в новой вкладке браузера.



Поработав со своими данными, закрывал приват окно браузера. Сваливал. Удобство заключалось в следующем: не нужно скачивать архив на ПК, где возможно и вовсе архиватор отсутствует, а главное не остаются килобайты данных вне зоны комфорта. Такой подход не обеспечивал 100% защиту цифры (клавиатурные шпионы или эксплойты в системе), а кто и когда-нибудь обеспечивал?!

Окончательное решение при использовании онлайн подхода с псевдозащитой данных, остается за слабым, медлительным, но не предсказуемым поведением человека. Зэ голден мит из фаунд в безопасности/скорости/удобстве. На мой взгляд, такой фокус не проигрывал другим техническим решениям, например Tails(у) на флэшке с persistent storage. И вот спустя пару лет, разработчики Яндекс(а) свернули возможность открытия запароленных архивов в вэб интерфейсе, чтобы всё таки воспользоваться данными из архива необходимо скачивать его в «свое» хранилище. На заданный вопрос техподдержка компании добросовестно ответила отпиской: не пытайся согнуть ложку, это невозможно, ложки нет, это не ложка гнется мол, да, была такая возможность, сейчас нет, почему прикрыли? (из соображений безопасности, руководство сменилось или^(n-1)) и вернут ли такую функцию вновь? – не знаем. Ну нет – так нет. Конкуренция программных продуктов и возможностей в наше время огромная, без эмоций ухожу с транснационального сервиса к гражданину мира.

Следующим секретным полигоном, оказывающим приватные возможности, для использования персональных данных является Telegram. В начале статьи я описал алгоритм работы с данными через продукт братьев Дуровых, добавлю, что после съ... ухода с Яндекс(а) на Telegram, сам же стал использовать в с своих чародейских делах вместо запароленного архива – pgp/gpg шифрование. Справедливости ради сообщаю, что в Яндекс(е) была возможность быстрее удобней работать, чем в мессенджере, с закрытыми данными. В Telegram(е) обеспечить дополнительную информационную безопасность на подмогу приходит стороннее ПО. Для Windows – это gpg4win; Linux — Seahorse; Android – OpenKeychain.

Баг


При работе с персональными данными на Android(е), и последующей тропой через Telegram к цели, ни каких ошибок в encrypt/decrypt данных буфера обмена не было. А вот в пятницу тринадцатого случайно обнаружилась такая ошибка в мессенджере Telegram под OS Windows. При шифровании данных gpg4win (Kleopatra/GPA) в OS Windows, зашифрованное послание отправил в Telegram в свой контакт через буфер обмена copy/paste. На следующий день, бродяжничая в своем смартфоне (на android(е)), скопировал зашифрованный текст из Telegram(а) в ПО OpenKeychain, выбрал свой приватный ключ для расшифровки послания, но приложение тут же выплюнуло «no data to decrypt!». Without panic on Titanic, в чудеса я не верю, стал искать вероломную причину такого поведения гаджета, однако, спустя несколько сот ударов моего сердца, нашел её в другом месте – Telegram for Windows. По шагам воспроизвожу действия, которые в конечном итоге вызвали ошибку в decrypt the data.

  1. Работаю в OS Windows 7 64 bit. Пишу текст в GPA, который нужно зашифровать, применяю свой публичный ключ, получаю шифр.

  2. Copy/paste зашифрованное сообщение в блокнот.
  3. Сверяю шифр GPA vs Notepad. Различий 0 байт.
  4. Copy/paste зашифрованное сообщение в telegram v. 1.1.23. Визуально сверяю шифр, нет изменений.
  5. Нажимаю enter и отправляю зашифрованное послание в свой контакт в Telegram. Беглым взглядом сверяю шифр Telegram vs Notepad. Есть различия!
    Софт Telegram(а) под OS Windows подменяет знаки: дефис на тире, если перед дефисом был пробел или после дефиса с новой строки идут знаки

    Подмена дефиса на тире (-----/---—;---—/-----). Должно быть так (-----/-----;-----/-----)
  6. Ручками правлю тире на дефисы:
    Подменённое сообщение
    -----BEGIN PGP MESSAGE---—
    тело
    —---END PGP MESSAGE-----

    На исходное сообщение
    -----BEGIN PGP MESSAGE-----
    тело
    -----END PGP MESSAGE-----
  7. Повторно работаю в Android(е), но уже с исправленным шифром. Copy/paste Telegram/OpenKeychain. Последний просит ввести пароль от приватного ключа, ввожу код и бинго! Сообщение расшифровано.
  8. Пробую копировать в Telegram под Windows другой зашифрованный текст из Блокнота; GPA; Kleopatra — тщетно, подмена дефиса на тире кроется в самой десктопной версии мессенджера. Так как OpenPGP стандартизирован и шифрует так, а не иначе
    (-----BEGIN PGP MESSAGE-----
    Тело
    -----END PGP MESSAGE-----)

    для решения проблемы необходимо привлекать техотдел Telegram(а).

Мои действия


Собрал материал и обратился на родном русском языке в техподдержку Telegram(а) через почту, через web форму, через контакт в Telegram. Жду реакции – пока её нет. Ответов от конторы не получал и раньше, как один из примеров, жаловался маркетологам разработчикам на реализацию ползунка прокрутки истории на Android(е). Спрашивал, почему реализован ползунок на гаджете, ни как в десктопной версии Telegram? Напомню, что ползунок на гаджете имеет лишь визуальную функцию в отличие от десктопной версии, у которого прямое назначение «хватать и двигать». С другой стороны, надеюсь, что до разработчиков все же дойдет письмо, и они исправят, то, что я тут немножко покритиковал.

rkn.gov.ru и тот получил разъяснения на свою просьбу. Может быть выходные затянулись у команды Павла, а может отмахнулись, как иногда происходит у Яндекс(а) (привет Ya! Проблему с работой в поисковике Yandex protect на некоторых моделях гаджетов в Opera Mini не решается не решена более месяца). Хотелось бы, чтобы Telegram(щики) поправили баг с подменой знаков. Возможно, снова придется уходить на альтернативный софт к конкурентам, при известной проблеме — шифр править ручками обременительно. WhatsApp и другие подобные инструменты не тестировал на подобную ошибку, предоставляю это дело читателям данной статьи. Выждав пару дней и не получив ответ, решаю выложить публикацию на «Киберхабре».

P.S.: Публикую мою первую статью и мне понравилось.
P.P.S.: В следующей статье «Радио шпионаж, как устаревший действенный метод добычи информации» пойдет речь о самодельном устройстве и его пруф на грани закона.

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


  1. AntonAlekseevich
    16.10.2017 17:51

    Проблема в Telegram Desktop, а не в Telegram for Windows.


  1. Vasia529
    16.10.2017 17:59
    +8

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


    1. dzod Автор
      17.10.2017 00:02

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


      1. domix32
        17.10.2017 11:45
        +1

        Использовать разметку пробовали для передачи?


      1. Falstaff
        17.10.2017 14:42

        Заверните сообщение в Телеграмме в кавычки для форматирования кода? Три backtick'а с обеих сторон, будет вам аналог verbatim, отошлётся как есть.


  1. Ugrum
    16.10.2017 18:05
    -2

    Так это ж был дополнительный уровень защиты!
    А вы его тут на всеобщее обозрение выложили ((.


    1. GAZ69
      17.10.2017 12:50

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


      1. Ugrum
        17.10.2017 12:53

        Шутка это была.
        Ну да ладно.


  1. Rastishka
    16.10.2017 18:12
    +2

    Вы никогда фрагменты кода не пересылали в мессенджерах?
    Раньше почти в каждой строке смайлик распознавался, сейчас с юникодом попроще стало.
    О чем статья?


    1. dzod Автор
      16.10.2017 18:32
      -2

      С Андроида, шлешь сообщение, оно проходит без подмены дефисов, на десктопной версии с подменой об этом статья


  1. diomas
    16.10.2017 18:17

    пффф… а блоки кода для кого придумали? оборачивайте то, что не должно меняться, в backtick'и


  1. to4kin
    16.10.2017 18:18
    +3

    Рекомендую использовать символ `

    ```-----BEGIN PGP MESSAGE-----
    тело
    -----END PGP MESSAGE-----```

    Где кол-во ` — равно кол-ву строк, предотвращает подмену любых символов. Проверено.

    Выше поправили — ` — для однострочных, ``` — для многострочных


  1. dartraiden
    16.10.2017 18:20

    Предложение отключить автозамену поступило более 2 лет назад (и, как можно видеть по ссылка на закрытые тикеты, неоднократно поступало в дальнейшем).


    1. dzod Автор
      17.10.2017 00:05

      Здравствуйте! Спасибо за комментарий, прлностью согласен, а где можно ознакомиться с закрытыми тикетами, если возможно?


      1. dartraiden
        17.10.2017 00:38

        А там по ссылке моей если смотреть обсуждение, попадаются и ссылки на закрытые (как дубли) тикеты (Closed).


        1. dzod Автор
          17.10.2017 01:04

          Да, спасибо, я уже изучаю. Ссылка с Андроида изначально не кликалась почему-то. Все верно: обнаружили давненько.


    1. dzod Автор
      17.10.2017 00:05

      Мисклик


  1. artem_tam
    16.10.2017 19:42
    +2

    К слову это достаточно удобно, когда два дефиса заменяются на тире. Разве не очевидно, что это ожидаемое поведение, а не баг? А вы раздули это в целую статью, подняли панику какую-то…


    1. dzod Автор
      16.10.2017 22:51

      Вы клбчами pgp пользовались? Предполагаю впервые слышите? В андроиде с ключами можно работат, а на десктопной нет. Смиритесь.


    1. solver
      17.10.2017 11:24
      +1

      А чем это удобно-то?
      На чтение никак не влияет. В здравом уме, в обычном тексте, никто не будет два дефиса подряд ставить. Так что нифига непонятно, в чем удобство то…


      1. 0xd34df00d
        17.10.2017 22:29

        Это удобно при написании. Я, например, люблю писать правильно, с правильными знаками пунктуациями, а дефис и тире — это таки два разных знака пунктуации.

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


  1. MrGobus
    16.10.2017 20:27

    Эм, а зачем посылать -----BEGIN PGP MESSAGE----- ??? и строку версии? Вы шифруетесь, и тут же кричите, мама я покак… л гражданин майор, я тут шифрую.


    1. dzod Автор
      16.10.2017 22:56

      Работайте с ключами, а потом коментируйте. Строку пишет программа. Это стандарт работы ПО. Изучите вопрос сначала прежде чем комментировать так некрасиво.


    1. Free_ze
      17.10.2017 11:39

      Законом не запрещено! Шифрую где хочу!


  1. niksite
    16.10.2017 22:30

    Чего только люди не придумают, лишь бы менеджерами паролей (типа 1Password) не пользоваться.


    1. AntonAlekseevich
      17.10.2017 06:18

      А если человек пожелал отправлять только PGP данные?
      И к слову описанное в статье просто фича продукта, а не ошибка или баг.




      Если полетят минуса то вот пожалуйста скриншот со страницы проблемы.


      Screenshot


      1. dzod Автор
        17.10.2017 10:34
        -1

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


        1. AntonAlekseevich
          17.10.2017 10:37

          Не обновил вовремя. Но тут все же линк пригодится.
          telegramdesktop/tdesktop #522/#issuecomment-132171431


          И да я MS офис не использую.


  1. dzod Автор
    17.10.2017 13:31

    Киберманьяки, которые ставят минус на любой мой добавленный комментарий, вы жалкие человечки Я вам это говорю открыто!


    1. Falstaff
      17.10.2017 14:54

      Честное слово, правильно минусуют, ведь на ровном же месте раздули проблему. Это мессенджер, он для общения текстовыми сообщениями, наоборот хорошо и правильно, что он что-то подменяет для удобства. Кому надо блоки кода вставлять — пользуются обратными кавычками и в ус не дуют.


      1. dzod Автор
        17.10.2017 15:02

        Здравствуйте, нет неправильно минусуют, обиженные какие-то (Мисклик -2, это же иронично и грустно), возможно минусут проверяют -1 или —1 будет, но ладно. Я ни чего не раздувал, написал статью, выложил, что в Андроиде нет ни какой подмены знаков, а в десктопной есть.


        1. Falstaff
          17.10.2017 15:13

          Ну, значит, есть недоработка в версии для Андроида, там почему-то ещё не реализовали. :) Можете поднять гневный feature request на их трекере. :)


          1. dzod Автор
            17.10.2017 15:15

            Ну, что это значит? спорно как обычно. Разработчики не ответили, путная инфа с Гитхаба из коммента выше.


            1. AntonAlekseevich
              17.10.2017 15:22

              Ветки, а не комментария. (Простите если придираюсь.)


          1. AntonAlekseevich
            17.10.2017 15:17

            Зачем гневный?
            Хватит и обычного указания на проблему. (Рассматривается месяц более менее.) :D


    1. barker
      17.10.2017 19:07

      Минусуют, потому что в посте — написали фигню, а в каментах — грубите.


      1. dzod Автор
        17.10.2017 19:18

        В посте не фигня, а моя первая статья. В комментах такие как Вы тусуются…


        1. AntonAlekseevich
          17.10.2017 21:13

          Не только вас минусуют. (Но в других статьях, главное за причину почему минуса полетели отвечать никто не станет. (Мол ты знаешь сам почему ставят -1 вот и выкарабкивайся. (Может тоже статью написать, только не все поймут.))) [Почему это работает именно так, а не иначе понятия у меня нет.]


          1. 0xd34df00d
            17.10.2017 22:27

            А можно так же, но ещё с использованием {фигурных скобочек}?


            1. AntonAlekseevich
              17.10.2017 22:28

              Редактирование допускается в течение 3х минут. => нет.
              Специально повторять сообщение я не собираюсь.


    1. dzod Автор
      20.10.2017 09:42
      -2

      Всем кто ставил в карму плюс спасибо, но зло победило. Для обиженных зашифрованное сообщение «ОУКБ», когда расшифруете, зайдите в мой профиль и поставьте -карму ;)


  1. alisa_musik
    17.10.2017 23:39

    Ничего не поняла, Вы взломали Телеграмм?


    1. dzod Автор
      17.10.2017 23:40

      Здравствуйте, нет, не тот уровень.


    1. AntonAlekseevich
      18.10.2017 00:20

      Ничего не поняла.

      Я попробую объяснить, статья рассказывает о функции Telegram отвечающий за форматирование текста, по мнению автора статьи это считается ошибкой в программном продукте, по мнению участников проекта это не баг, а фича указано здесь.
      При этом автор статьи не ожидал такого поведения так как Telegram Messenger на Android не выполняет процедуру преформатирования текста, из-за чего это было воспринято как ошибка.


      Вы взломали Телеграмм?

      Автор не взламывал Telegram, его исходные коды клиентов открыты и доступны всем желающим как для просмотра так и для заимствования по условиям лицензий проектов: Telegram Desktop, Telegram Messanger(Android). Это всё официальные клиенты Telegram. Кроме них есть клиенты под macOS(специализированный), iOS, Windows Phone, Web.


      1. dzod Автор
        18.10.2017 01:00

        Добавлю, что хотел назвать статью «Тысяча слов о Телеграме» (в статье 1000слов+-редакция модератора). Однако передумал, речь идет о шифровании и о Яндексе, который по мнению автора «сдает позиции» Подмена знаков-все же не форматирование.


        1. AntonAlekseevich
          18.10.2017 06:10

          Подмена знаков-все же не форматирование.

          Тогда подмена знаков в markdown не должна существовать? Следуя из этой цитаты.
          Так или иначе для обработки md выполняется подмена знаков.


          Примером является список:


          1. Элемент 1
          2. Элемент 2

          Вот исходное содержание.


          Примером является список:
          1. Элемент 1
          1. Элемент 2