Pull to refresh

Почему двухфакторная авторизация в Telegram не работает

Reading time3 min
Views72K
После недавних громких взломов Telegram-аккаунтов в России, основатель сервиса Павел Дуров сказал, что двухфакторная авторизация «позволяет защитить важную информацию».

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

Под «угнать» я понимаю «может войти в приложение Telegram под вашим номером телефона» и писать от вашего имени сообщения вашим контактам.

Происходит это следующим образом:

1. Атакующий у себя в приложении указывает номер телефона жертвы и пытается войти в аккаунт. Тут он видит сообщение, что код отправлен не по SMS, а на приложение, зарегистрированное на этот номер, на другом устройстве:

image

2. В этот момент жертва получает системное уведомление у себя в приложении (или приложениях) Telegram:

image

3. Атакующий нажимает «Didn’t get the code?» и Telegram отправляет код через SMS:

image

4. Тут атакующий вводит код из SMS и узнает, что в настройках аккаунта включена двухфакторная авторизация и что ему нужно ввести пароль (в данном случае «10» это подсказка для пароля, выбранная при включении двухфакторной):



5. Далее атакующий притворяется, будто он забыл пароль — «Forgot password?». Тут атакующему сообщают, что код восстановления отправлен на электронную почту (если жертва при включении двухфакторной авторизации указала адрес электронной почты). Атакующий не видит адреса электронной почты — он видит лишь то, что после «собачки»:



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



7. Атакующий нажимает «ok» и видит окошко, куда нужно ввести код для сброса пароля, который был отправлен на электронную почту. Тут атакующий говорит, что у него проблемы с доступом к своей почте — «Having trouble accessing your e-mail?». Тогда Telegram предлагает «reset your account»:



8. Атакующий нажимает «ok» и видит два варианта — или ввести пароль, или нажать «RESET MY ACCOUNT». Telegram объясняет, что при «переустановке» аккаунта потеряется вся переписка и файлы из всех чатов:



9. Атакующий нажимает «RESET MY ACCOUNT» и видит предупреждение, что это действие невозможно будет отменить и что при этом все сообщения и чаты будут удалены:



10. Атакующий нажимает «RESET» и Telegram просит указать имя для «переустановленного» аккаунта:



11. Собственно, все, атакующий успешно угнал аккаунт: он вошел под номером телефона жертвы и может писать от её имени сообщения:



12. Жертва при этом видит приложение таким, каким оно было сразу после установки. Приветственный экран рассказывает о Telegram и предлагает зарегистрироваться или войти в уже существующий аккаунт:



13. Когда атакующий пишет от имени жертвы кому-нибудь из контактов жертвы, этот контакт видит, что жертва только что присоединилась к Telegram (что подозрительно), а также новое сообщение (или сообщения) в новом чате от жертвы. Через 12–16 часов контакт также увидит, что в старых чатах вместо имени жертвы указано «Deleted Account»:



Если жертва имеет возможность получать SMS на этот номер телефона, она может войти в приложение Telegram на своём устройстве. Если атакующий на угнанном аккаунте не включил двухфакторную авторизацию, жертва может войти и в меню Settings => Privacy and Security => Active Sessions прекратить все остальные сессии (то есть сессии атакующего):



Если же атакующий на угнанном аккаунте включил двухфакторную авторизацию — жертва, в свою очередь, таким же образом может «угнать обратно» свой аккаунт.

Получается, что единственная польза от двухфакторной авторизации в Telegram — чтобы атакующий не получил переписку из обычных не секретных чатов (если угнать аккаунт без включенной двухфакторной, то атакующий получит всю историю переписок из несекретных чатов, из секретных чатов он и так и так ничего не получит). То есть Telegram с включённой двухфакторной авторизацией даёт приблизительно то же самое, что Signal и WhatsApp обеспечивают и так, без никакой двухфакторной авторизации.

Иными словами, двухфакторная авторизация в Telegram не совсем настоящая, Telegram все равно позволяет войти используя один лишь фактор — код из SMS.

Ситуация несколько анекдотичная: вот вам, юзеры, двухфакторная авторизация. Первый фактор — код из SMS (что у меня есть), второй фактор — пароль (что я знаю). Звучит супер, но когда юзер говорит — а я вот забыл пароль, Telegram говорит — ну ничего, бывает, заходи без пароля и пользуйся на здоровье :)

Это удалось выяснить экспериментальным путём в рамках немножко более масштабного исследования о Telegram, WhatsApp и Signal — "Как «защищённые» мессенджеры защищены от кражи SMS"
Only registered users can participate in poll. Log in, please.
Каким «защищённым» мессенджером вы пользуетесь больше всего?
20.1% WhatsApp234
29.98% Telegram secret chat349
1.37% Signal16
0% Wickr0
0.09% Threema1
0% Hoccer0
1.98% OTR (через Pidgin, Jitsi, Chatsecure и пр)23
4.55% Tox53
0.09% Cryptocat (новый)1
4.55% Другой53
37.29% Никаким434
1164 users voted. 318 users abstained.
Tags:
Hubs:
+30
Comments92

Articles

Change theme settings