Изначально дополнительная авторизация, выступающая в качестве пароля, служит для защиты от несанкционированного входа в аккаунт, когда 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. Спасибо Олегу, за удаление двух аккаунтов для видеоматериала данной статьи.
До недавних пор нигде, кроме как при входе в аккаунт, пароль не запрашивался. Дела изменились тогда, когда добавили возможность передачи канала другому аккаунту, а сегодня и передачу ботов. Мало того, что для трансфера необходимо соответствовать критериям, например, иметь включенную 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. Спасибо Олегу, за удаление двух аккаунтов для видеоматериала данной статьи.