Pull to refresh

Comments 92

Т.е. если почту не указывать при активации 2FA, то и предложения reset не будет?
А вот если атакующий получит доступ к почте (к примеру, через то же восстановление пароля по смс, к которым уже есть доступ или любым другим способом каким там они получают доступ), то получит полный контроль и историю не секретных переписок?
Нет-нет,
если почту не указывать — то сразу предложит reset, без отправления кода для сброса пароля на почту.

И да-да, если атакующий получит код для сброса пароля из почты, то ему не нужно будет reset аккаунт, он просто войдет в него — и получит всю историю из несекретных чатов,
и как только он войдёт — ему надо будет быстро прекратить все остальные активные сессии,
а то жертва увидит уведомление о входе с нового устройства и сможет вылогинить атакующего
<zanuda_mode> Замечу, что у Телеграм не двухфакторная авторизация (2FA), а двухэтапная (2SV) — это видно на скриншоте. И это не одно и то же. Вторая менее безопасна. Подробнее здесь </zanuda_mode>
оба фактора относятся к разным типам (что я знаю, что у меня есть, кто я есть), если бы тут всё работало, то это была бы настоящая двухфакторная авторизация
Пользовался сервисом, все пароли забыл. Хочу начать жизнь с нуля.
Как вы предлагаете реализовать этот механизм?
Если вы можете получать СМС на тот номер телефона, на который зарегистрирован аккаунт в Telegram, то вы в любом случае сможете авторизироваться — просто установите снова приложение и следуйте инструкциям шаг за шагом.
То есть система не должна реагировать на «Didn’t get the code?», если приложение запущено на другом устройстве? В таком случае как быть если «угнали», и хочется вернуть?

Просто вы описываете очень обычный сценарий полного сброса эккаунта, для которого достаточно просто по-прежнему быть владельцем телефонного номера (получать на него SMS).
В любом случае тот, кто может получить SMS на этот номер, может или угнать этот аккаунт — или, наоборот, вернуть его себе если его угнали.

То есть всё предельно просто — у кого доступ к SMS, того и аккаунт.

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

Забыли пароль? — вот вам код для сброса пароля на указанный адрес электронной почты,
не имеете доступа к этой почте? — тогда извините,
тогда или никак, или предусмотреть как вариант:
— доверенные контакты (как в Фейсбуке), которые могут подтвердить что ты это ты, и что ты действительно забыл пароль
— верификацию через отсылание копий своих документов например
— систему резервных кодов (они есть у фейсбука, гугла, вконтакта — практически у всех, у кого есть двухфакторная)
+, возможно, еще что-нибудь, я не претендую на всезнание.

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

Единственный адекватный с точки зрения безопасности вариант — полностью отвязывать безопасный аккаунт от номера телефона. Делать ник (уже есть в телеге) + пароль + ещё другой второй фактор (почта?). Но тогда с юзабилити куча проблем. У такого аккаунта теряется преимущество всех мессенджеров нового поколения (Whatsapp и далее) — привязка к существующей адресной книге.
С точки зрения безопасности абсолютно поддерживаю отвязку от номера телефона;

может быть, номер телефона может быть как опция для удобства с адресной книгой, но не делать из него фактор аутентификации, причем единственный?
Номер телефона + TOTP с резервными кодами надёжнее.
Whatsapp решает эту проблему через изменения номера. Сам недавно такой кейз решал (и успешно решил): есть телефон с вотсапом привязанным к номеру1. Потом симка в телефоне поменялась. Прошел год, старую симку уже заблокировал оператор. Телефон постепенно сдыхает, был куплен новый. В вотсапе есть важные чаты, которые надо перенести без передобавления в чат (другие участники не знают новый номер и не должны знать). Если на новом телефоне пытаться указать старый номер, то он отправляет туда пароль по СМС, который получить уже нельзя.
В общем в итоге перенёс все на новый телефон с Новым номером с сохранением всех контактов и чатов.
Вроде как немного другой кейс. В вашем случае есть активная установка whatsapp и нету уже того номера телефона.
В случае перевыпуска симки мне, как владельцу новой симки из старого пула, whatsapp просто отдаст аккаунт, как и telegram. Если старый владелец не перенёс номер, конечно.
В настройках телеграм можно указать срок простоя аккаунта, после которого все данные о нём стираются. Максимум — 6 месяцев. Так что проблемы с перевыпуском симок нет.
Человек может запросто использовать аккаунт без оригинальной симки. Глупо с его стороны, но меня как владельца новой симки не должны волновалась чужие глупости.
При ресете нужно прислать сообщение на акк что запрошен ресет, и либо отмените если у вас есть доступ к СМС или перенесите аккаунт на новый номер в течении недели например.

Ставишь на новую мобилу мессенджер, а она такая "чтобы его использовать подождите 2 дня / неделю". Это полный суицид продукта, никто не будет таким мессенджером пользоваться.

Прямо так уж и не будет? Сейчас, если что, именно так и происходит (и в 2020-2021 тоже так было, я точно помню) - когда я покупаю новую сим-карту, ни телеграм, ни ВК не разрешают регистрацию, сообщая, что данный номер уже занят. При чём у меня есть подозрение, что они так делают для всех номеров в целях безопасности и уменьшения фейковых аккаунтов, а не только для тех, которые действительно недавно освободились. Приходится писать в техподдержку и просить разблокировать регистрацию на купленный номер.

Можно позволить пользователю привязать номер телефона вручную к своему аккаунту внутри Telegram. Не вижу проблемы

Вот вам сценарий если сделать как вы предлагаете.
Получил я значит новый номер телефона от оператора. Пытаюсь привязать туда Telegram а мне говорят, что номер зареган. Я пытаюсь перепривязать, после чего мне говорят введите код отправленный на емейл, а емейл не мой. И все на этом номере пользоваться телеграмом нельзя.

Номер выдал оперетор после того как он освободился, и до этого кемто использовался.

Писал из рид&комент. Пока модерировали, EviGL написал тоже самое.
Согласен, проблема есть,
надо думать как решить без ущерба безопасности
Здесь поможет проверка даты последнего входа. Если, например, более 3х месяцев прошло, то можно предложить сбросить аккаунт.
Сейчас же уже есть опция что аккаунт автоматически удаляется после некоторого времени неактивности, максимальный период что можно выставить это год.
Забыли пароль? — вот вам код для сброса пароля на указанный адрес электронной почты, и проблема у кого доступ к SMS, того и аккаунт. снова повторяется, только с почтой вместо смс
Скорее это фича для вторичного рынка симок и/или переходящих симок (рабочий привязанный к должности номер, например). Хотя во втором случае уходящий сотрудник обязан передать дела, но всякие люди бывают, испаряющиеся по-английски сразу после получения трудовой в том числе.
Традиционная война безопасности (паранойи) с эргономикой (пользователями-идиотами). Пока что побеждают последние.

В мессенжрах надо давать возможность создавать "hardcore" аккаунты c паролем + одноразовым ключом через приложение типа google authenticator и без возможности восстановления. Интересно насколько востребованной будет такая фича.

Ну и будет примерно так:
ITшник менторским тоном: «Ты что, создала обычный аккаунт? Это не безопасно. Включи hardcore режим!»

Голосом тупой блондинки: «Мне говорили что hardcore режим безопаснее. Я сама использую и друзьям советую»

Недовольный бизнесмен ,fcjv: «Я не могу восстановить свой аккаунт. Все мои рабочие чаты потеряны. Ах, ах, ах. Пойду опять использовать skype.»

P.S. offtop:
Кстати, блондинки в среднем умнее русых…
Я бы предпочёл галочку «сброс пароля только по личному визиту в офис и предъявлению такого-то документа».

Но тут подсказали ещё одну причину подобного: вчера симка была у Васи, а сегодня этим номером пользуется Петя. На законных основаниях. А воспользоваться ТГ не может — ТГ негодует и даёт возможность забрать аккаунт обратно.

Мораль: привязка аккаунта к номеру телефона — зло. Я поменял четыре номера и две страны проживания за эти годы, но мой gpg ключ всё тот же.
С «Deleted Account» направление мысли, в принципе, правильное — полная имперсонация при бдительном человеке на другом конце провода невозможна. Но очень и очень неинтуитивное — это да.

Предлагаю такой подход к интерфейсу (Дуров ведь наверняка читает хабр?): историю переписки надвое не делить, а покрасить другим цветом всю предыдущую переписку, дальше показать системное сообщение:
[Дата-Время сброса] Вася Пупкин, или кто-то имеющий доступ к его номеру телефона, сделал полный сброс учетной записи Telegram, будьте осторожны!

и дальше пошла вся новая переписка. Чтобы человек мог знать, что с другой стороны не обязательно находится Вася.
А есть ли вообще какое-то приложение, позволяющее защититься от угона смс?
Да, конечно!
Все, которые не используют коды из SMS для авторизации :)
Wickr, например: там вы выбираете никнейм, придумываете пароль — и можете вообще не указывать ни адрес электронной почты, ни номер телефона.
Но тогда если вы забудете свой пароль — никакого восстановления, конечно, не будет.
Я имел ввиду привязанное к номеру телефона) по моему угон смс — это либо если просахатить телефон, что никак не относится к минусам приложения, а скорее к неаккуратности владельца телефона. Либо попадание в поле зрения определенных структур, что также не имеет отношения к безопасности приложения.
Просахатить телефон, говорите? Всё что надо знать, это номер телефона жертвы.
На PHDays IV было отличное выступление по этому поводу: «Как подслушать человека на другом конце земного шара». http://2014.phdays.ru/program/tech/36930/
Использовать OTP типа Google Authenticator.
очень странно, что довольно «продвинутый» Дуров не внедрил этот метод аутентификации. Прост как топор же.
Зато он не позволяет набивать базу телефонных номеров.
Это дополнительные затраты на поддержку. Плюс необходимость объяснять пользователям, в чём разница между вариантами. Которая наверняка сведётся к риторике, что OTP-через-SMS «безопаснее», потому что «ключ можно потерять, а телефон всегда с вами». Что поднимает вопрос о том, нужна ли вообще возможность offline-TOTP целевой аудитории.
мы сейчас обсуждаем непробивную Google Auth против телеграм-варианта, при котором зная email я могу написать кому угодно от любого контакта?
Пароль забыл => sms => email => reset. Причем без каких либо данных от реального владельца…
… что Signal и WhatsApp обеспечивают и так, без никакой двухфакторной авторизации.

Повторюсь про повторное подвтерждение личности в Signal-е, чего нет в whatsapp и Ко. https://geektimes.ru/post/275204/#comment_922737
Signal угоняется точно так же, как и WhatsApp с Телеграмом, там пароль только на приложение можно установить, не на аккаунт, там нет никакого повторного подтверждения личности

более того, когда ваш аккаунт в Signal угнан он вам ещё и не сообщает внятно об этом: вы себе заходите, смотрите свои чаты, а когда пытаетесь отправить сообщение — ошибка, при чем такая же, как когда проблемы с сетью.
Вы комментарий по ссылке читали? Речь не о том, что угнать аккаунт через смс невозможно, а о том что старые сообщения ни из каких бесед не будут доступны и:
… все оппоненты при попытке коммуникации с ним, будь то приватный, или групповой чат, получат ошибку отправления и сообщение о том что идентификатор изменился и, возможно, это больше не Петя Иванов. Вы должны сами решить и подтвердить. Причем если вы кликнули «ОК» в приватной беседе, это не перенимается автоматом на групповые чаты и наоборот.

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

image

И юзеры, как правило, или просто игнорируют, или «принимают» новый ключ без проверки
Танцы с бубнами в условиях возможности подачи иска в сторону ОпСоС-а, ну или демонстративно сменить оператора с указанием «причины».
Меня больше напрягает ситуация, когда «телеграмм» может «забыть» доставить пару сообщений, а потом в пылу другой переписки (благо с тем же абонентом) «случайно вставить» как тут и было.
Я подписался на кучу каналов. И теперь может быть в чате показано 1 новое сообщение, его открываешь, а их там на самом деле 5 новых. Подозрваю, что может быть так из-за того что залогинен ещё и на планшете, но бесит очень
Настройки => Settings => Privacy and Security => Active Sessions
там увидите все залогиненные устройства и можете вылогинить
Так я и так с планшета могу вылогиниться. Вопрос в том, чтобы все сообщения приходили на три устройства (ноут, планшет и телефон). А с одного телефона меня и ватсапп устраивает, тем более он теперь защищенее телеграмма (end-to-end шифрование по умолчанию всего).
Я четвертый пункт не понял. Это как?
Если у атакующего есть дубль моей симки (а у меня, значит, телефон должен сдохнуть), то у меня есть гораздо больше поводов беспокоится, чем угон телеграмы. Тем более, что история недоступна, а какие-то действительно серьезные вопросы решаются лично или видеозвонком.
А вы погуглите всю историю, с которой начались новости про взломы Телеграма и всё понятно станет.
Да и в целом тут на ГТ уже была серия статьей о том, что получить доступ к SMS сообщения жерты — это задача на пару тысяч долларов оборудования и немного стандартных операций. Ибо протоколы у ОпСоСов дырявей некуда и делать они с этим ничего не планируют.
Ну, при таком раскладе, новость о уязвимостях телеграма как-то вообще ни о чем.
Если, как вы утверждаете, доступ к СМС абонента это 2Куе + студент первокурсник, тогда кому этот телеграм сдался? Можно напрямую чистить карточки честных обываетелей.
Совсем не нужен дубль вашей симки. Нужны любым образом добытые данные из SMS, отправленного на ваш номер.
Например, при содействии вашего мобильного оператора,
или без такового — https://habrahabr.ru/company/pt/blog/283052/
А у МТС можно попробовать подобрать 6х значный стандартный пароль от интернет помошника, а потом воспользоваться функцией архив услуги SMS Pro.
g_i, вы пытались связаться с командой Telegram? Возможно, они бы приняли это как уязвимость в рамках какого-то bug bounty.
Да, часть feature requests отправил,
еще один отправлю завтра
До завтра кто-то другой мог бы отправить им это описание) И тогда лавры (а, возможно, и тысяча долларов) достанутся кому-то другому.
Какие там лавры и доллары, скорее всего просто проигнорируют ))))
Они прекрасно знают что у них как работает
UFO just landed and posted this here
омг, ну сколько можно писать про «взлом телеграма» когда был взломан не он, а инфраструктура мтс и в телеграм залогинились ШТАТНО
Все так, но «защищённый» мессенджер должен обезопасить пользователя от таких атак.

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

Есть вещи, от которых мессенджер не может защитить юзера (малвари на устройстве например), но от такого — может и должен
О, написали уже о проблеме открыто. Уже довольно давно писал об этом в ТГ-реакция нулевая. Недавно, когда начался скандал «Оппозиция VS МТС», еще раз сообщил о проблеме на этот раз информацию удалось доставить до знакомого Дурова. Дошла ли она к нему самому — не знаю.

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

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

Кстати да, хорошая идея. У вебмани пришлось 2-4 недели ждать, пока смог заменить сим карту. За это время владелец сможет ещё раз перевыпустить свою симку.
Задержка плюс предложенный выше способ с «аккаунт был сброшен, проявите осторожность» по сути достаточное решение проблемы.

С использованием номера только для поиска абонента тоже непонятно, люди ведь будут доверять этому номеру, это то к чему все привыкли в инфраструктуре whatsapp/telegram.
В случае реализации отвязки аккаунта от номера и использования его только для поиска, чтобы текущие/будущие контакты знали о тебе без сообщения им ника, необходимо, как минимум, следующее.
-Подтверждение владения номером.
-Возможность указать один номер только для одного аккаунта.
-Регулярное (раз в 3 месяца, например) подтверждение того, что номер все еще ваш.

Было бы неплохо, чтобы при этом к одному аккаунту можно было бы указать для поиска более одного номера. Это для тех, кто не хочет заводить несколько аккаунтов при наличии 2 и более симок.
Ха!
Как раз вчера посетила меня светлая мысль — что, вот, хороший вариант — это «задержка, чтобы аккаунт нельзя было сбросить сразу»,
Поддерживаю)))
Интересен шаг 3. Почему СМС с кодом отправляется на телефон атакующего, а не жертвы?
Она и отправляется на номер жертвы. Но, в условиях атаки:
>>если атакующий может получить вашу SMS с кодом для входа
СМС отправляется на сим-карту того номера, на который зарегистрирован аккаунт в телеграме. А симка может принадлежать как жертве, так и «атакующему» (в случае, если номер перепродали).

> То есть если атакующий может получить вашу SMS с кодом для входа, то он гарантированно может угнать ваш аккаунт
Меня в этой статье смущает пункт о том, как легко атакующий получает доступ к SMS жертвы. Это как-то мельком так подано, типа проще некуда. Пошел гуглить, оказалось, что хоть и реально, но без знания матчасти не получится. Так тут, я считаю, большая беда что SMS могут у человека взломать, нежели несчастный Телеграм. Через SMS много что подтверждается как бы.
Если атакующему содействует ваш мобильный оператор (как это и произошло недавно в России) — то угон СМС превращается в задачу тривиальную.
Если бы не было ни одного известного случая, да, можно было бы гадать и спорить,
но прецеденты есть, и их немало
Да, точно, посмотрел. Сколько же всего в России происходит, даже не слышал про это.)
На мой взгляд, в плане защиты переписки весьма надежно сочетание PSI + GPG.
Аккаунт, конечно, украсть могут, но вот прочитать сообщения — совсем никак не выйдет ))
Почему-то в комментариях все воспринимают использование номера телефона в качестве логина как что-то само собой разумеющееся, неисправимое и неизменное. Проблемы не будет, если будет возможность зарегистрировать обычный аккаунт, с обычным паролем, без привязки к номеру телефона, с будущей его привязкой в качестве дополнительной меры безопасности, но не более.
Привязка к номеру делается не потому, что нам так удобно, а потому, что это удобно им. И использовать можно не любой телефон, а только номер из белого списка стран.

Например, телефоны в зоне +8835 запрещены к использованию (а они, кстати, защищены от перехвата SMS, потому что не доставляют их по сотовой сети)

Соответственно, учёток без привязки к телефону от них ждать глупо.
Зачем оставлять возможность восстановить аккаунт? Поставил двухфакторную авторизацию, указал имейл для восстановления. Нет доступа к имейлу — до свидания, аккаунт не восстановить никак. Через месяц бездействия (настраиваемо) аккаунт удаляется. Просто не надо идти на поводу у идиотов, из-за которых вся индустрия катится черти-куда. Поставил усиленную защиту, значит понимаешь, что делаешь и сам отвечаешь за риски.
Вывод из статьи простой: Telegram и другие мессенджеры с авторизацией через SMS — это аналоги SMS по уровню безопасности. Можно пользоваться SMS и это будет примерно так же безопасно.
ну нет, все же нет,
если СМС — то легко украсть содержимое вашей переписки,
а тут можно лишь угнать аккаунт и писать вашим контактам от вашего имени, но прошлую вашу переписку атакующий не получит

Прошлые SMS тем более невозможно получить — они не хранятся в облаке.


Чтобы упереть сохранённые SMS на Андроиде, надо, чтобы жертва установила приложение. На Айфонах доступа к SMS нет даже у приложений.


Есть возможность перехватить SMS в момент передачи по сотовой сети. Но перехватывать входящие и исходящие SMS длительное время без ведома жертвы всё же сложнее, чем получить 1 SMS для авторизации

SMS хранятся у оператора мобильной связи :)))))

А отправленные и полученные сообщения в Signal, WhatsApp и Telegram secret chat — зашифрованы «из конца в конец».

Собственно, поэтому мы и говорим о такой категории как «защищённые мессенджеры».
Работал в одной компании, обзванивал клиентов. И очень часто бывало такое, что по набранному номеру берет совершенно посторонний человек. Т.е. номер был отключен за неуплату, а затем был продан другому человеку.

И вот скажите мне такой кейс — кто-то зарегался в телеграмме, но больше сим-картой не владеет и вообще на неё забил с концами, а новый обладатель этой сим-картой по-вашему теперь может воспользоваться телеграмом только если узнает пароль прежнего владельца? Так чтоли получается?
Да, сброс нужен. Возможно только не мгновенный, а с некой (например недельной задержкой). Т.е. новый владелец симки пытается зарегать аккаунт. Вводит код из смс. Ему приложение говорит: а теперь введите пароль. Новый владелец: я не знаю пароль, хочу всё сбросить к чертям. Приложение: ок — ждите неделю.
На телефоне где приложение сейчас работает поступает нотификация, что запрошен сбор аккаунта, и далее либо юзер жмёт кнопку «харакири» (ака изменить номер), либо кнопку, «не согласен, меня пытаются взломать», и дальше выясняет, что и где, как кто-то левый получил смс с кодом.
Можно же добавить таймаут, после которого пароль можно не требовать. Например 3-6 месяцев неактивности аккаунта.
Более того, можно привязываться не к номеру, а к IMEI, который будет меняться при перевыпуске сим карты. а для переноса аккаунта со старого IMEI на новый при смене симки — отдельную процедуру перерегистрации( например через звонок с этого номера роботу + пароль).
Через 1-3-6-12 месяцев неактивности(настраивается) аккаунт и так самоудаляется. Эта функция уже реализована.Так что с большой вероятностью новому владельцу симки не надо будет ждать неделю сброс аккаунта (если это, надеюсь, реализуют).
Вы имели в виду IMSI, очевидно. Примерно 30% операторов фильтрует запросы SS7 из других сетей, вместо IMSI придет временный ID (почти как TIMSI, но не равен ему). Как быть в такой ситуации?
Банки в аналогичной ситуации работают внутри страны, через доверенный канал. Про международного агрегатора с доверенными каналами ко всем операторам — я не слышал.
По поводу заключительной статьи про сравнение 3х мессенджеров, про Signal лучше обращаться не в support, как у вас указано, там блондинка сидит, а сразу писать на github.com/WhisperSystems/Signal-Android/issues
Алгоритм действий при максимуме рассмотренных вариантов должен присутствовать в настройках в виде ветвления опций, что снимет все вопросы.
Дуров, верни стену сделай 3FA с ещё одним паролем/кодом на имейл. Это же чертовски простая схема, зато достаточно безопасная — код, затем пароль для 2SV (она же 2FA), после пароль/код из электронной почты и только потом возможность сброса аккаунта.
Таким образом, новые абоненты могут получить телефон, к которому невозможно привязать телеграм.
Sign up to leave a comment.

Articles