2FA в Telegram не везде, где хотелось бы

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

    До недавних пор нигде, кроме как при входе в аккаунт, пароль не запрашивался. Дела изменились тогда, когда добавили возможность передачи канала другому аккаунту, а сегодня и передачу ботов. Мало того, что для трансфера необходимо соответствовать критериям, например, иметь включенную 2FA и просидеть с ней 7 дней, не менять пароль и прочее, дык ещё и повторно ввести пароль при переносе статуса владельца канала. И это замечательно!

    Каково было моё удивление, когда я решил сменить мобильный номер на своём основном аккаунте. Следите за действиями: зашёл в настройки, нажал на редактирование, тапнул по номеру, подтвердил намерения, ввёл новый номер, ввёл код, который пришёл SMSской на новый номер, всё…



    Чего-то не хватает… Как-то слишком просто… Ах, да, а где 2FA как при передаче канала? Она же у меня включена! Ладно если бы я ей не пользовался!

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

    Теперь никто не может войти в аккаунт. После смены номера человек закрыл все сессии на ваших других девайсах, оставив только тот, что отобрал. Вы не в силах войти в аккаунт, так как вам нужен код с SMS на номер, который вы не знаете. Злоумышленник не в силах войти с другого устройства, так как ему нужен пароль от 2FA, но у него есть доступ к вашему аккаунту! Больше ему и не надо!

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

    В Telegram есть механизмы по удалению аккаунтов, когда сотовый оператор передал номер другому владельцу, а номер оказался зарегистрированным и с 2FA. Столкнулся с этим лично. У меня было 7 дней для отмены всей процедуры. Чтобы её отменить необходимо ввести код из SMS с номера, доступа к которому у меня уже не было. Другим вариантом было сменить номер телефона на другой. Я просто перенёс всё с того аккаунта на другие ии… его удалили.

    Понятно, что просить подтверждение старого номера для смены на новый – плохая идея. Это убивает решения разных проблемных случаев. Активные сессии и 2FA должны быть гарантом, а от привязки телефонов вообще надо куда-то уходить, но пока некуда…

    Только что вышло обновление Bot API 5.0! Очень сочно, за это отдельное спасибо, но помимо этого довели до прода возможность передачи прав на ботов между аккаунтами. И даже несмотря на то, что всё управление через BotFather'a (официального бота), оно умудряется запрашивать 2FA! Такой тип inline кнопки не задокументирован. При нажатии всплывает окошко с вводом пароля.
    Скриншот всплывающего окна в процессе передачи прав


    Посмотрев на всевозможные случаи, увидев разные подходы в Telegram, можно попросить Павла (@durov) только об одном… Давайте использовать подтверждение 2FA не только при входе и смене владельца бота/канала, но и при смене номера телефона и удалении аккаунта хотя бы тогда, когда она включена.


    Конечно, что уж тут говорить про возможность удаления аккаунта без 2FA, когда его всё ещё можно удалить с помощью переименования аккаунта в «Saved Messages».

    Upd 16.11.2020. Аккаунты не удаляет, а кидает спам блок.
    Видео с удалением аккаунт при переименовании


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

    P.S. Не используем Face ID, сканеры отпечатков пальцев. Не храним пароли в голове. Генерируйте случайные, храните в парольных менеджерах. Хоть что-то, хоть как-то. Идеально не будет никогда.

    P.S.S. Спасибо Олегу, за удаление двух аккаунтов для видеоматериала данной статьи.

    Комментарии 5

      +1
      Конечно, что уж тут говорить про возможность удаления аккаунта без 2FA, когда его всё ещё можно удалить с помощью переименования аккаунта в «Saved Messages».

      То есть для того, чтобы убить недругу возможность пользоваться Телеграмом с его номера — надо всего-то его (недруга) набухать и воспользовавшись пальчиком переименовать его (телеграм-аккаунт) в «Saved Messages»?
      Я правильно понял?

      Аккаунт будет скоропостижно удален, а номер поеден в перманентный бан?
        +3
        Да, всё правильно. Данная киллерфича появилась ~7 августа для борьбы с мошенничеством. Люди заводили аккаунты, похожие на сохранённые сообщения и ставили соответствующие аватарки. При кнопке «Поделиться» другие пользователи ошибались чатом и отправляли то, что не хотели отправлять другим… Telegram придумал вот такое вот решение для борьбы с этим. Честно говоря, выходя за рамки ответа на комментарий, я без понятия почему нельзя было просто запретить устанавливать такое имя… Что так решение на серверной стороне, что этак
          +1
          Оффтоп: а вы часто бухаете с недругами, причём так, всерьёз, до отключки?
          Даже боюсь спрашивать, а с друзьями чем занимаетесь?
            +2
            Нет у меня больше друзей...
            (с)
          0
          Была недавно информация, что инфополе в телеграме зачистили.
          ura.news/articles/1036281358
          Наверное как одно из средств.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое