По личному вопросу: бывший партнёр Дурова — о возможности узнать номер телефона пользователя Telegram по его юзернейму

Telegram не является анонимным средством коммуникации, заявил бывший партнёр Павла Дурова, экс-технический директор «ВКонтакте» Антон Розенберг. По его словам, при определённых условиях заинтересованное лицо или служба могут получить полный список телефонных номеров пользователей. В Telegram Розенберг занимался вопросом сохранения анонимности, он отмечает, что в компании «своя система». Специально для RT эксперт рассказал, действительно ли защита мессенджера столь уязвима, как говорит об этом группа российских программистов.

Telegram, насколько я знаю, не является анонимным мессенджером и даже не рекламирует себя в таком ключе. Каждый аккаунт привязан к определённому телефонному номеру. Это удобно и для пользователей, и для борьбы со спамом —  без кучи сим-карт невозможно зарегистрировать пачку аккаунтов. Подобное использование телефонных номеров уже не позволяет назвать мессенджер анонимным. Однако, в отличие от адреса электронной почты, телефонный номер используется не только для авторизации (входа и восстановления доступа), но и для поиска собеседника, чтобы пользователи могли писать своим контактам из телефонной книжки сообщения в Telegram вместо классических СМС.

Однако если в WhatsApp связь с телефонным номером прозрачна, то в Telegram система устроена сложнее: можно использовать юзернеймы, а можно обходиться без них. Система построена на применении внутренних уникальных идентификаторов, и номер телефона собеседника пользователям по умолчанию не показывается.

Это вовсе не означает, что номер телефона, привязанного к вашему аккаунту, невозможно узнать. Если дать приложению доступ к телефонной книжке смартфона, то оно будет отправлять и сохранять её на сервере, а пользователю будут показываться все его контакты, использующие Telegram. Кроме того, все контакты сохраняются на сервере вместе с именами, и при регистрации нового человека всем тем, у кого его номер был в записной книжке, приходит уведомление: «Такой-то такой-то зарегистрировался в Telegram».

Разумеется, у самого Telegram есть полная информация, у какого аккаунта какой номер телефона. Но я всё же сомневаюсь, что где-то в API (программном интерфейсе приложения. — RT) есть настолько явная уязвимость, позволяющая получить номер телефона напрямую.

Скорее всего, авторы данной программы использовали особенности работы той функции, которую я упомянул выше, или одного из её аналогов. Раз Telegram позволяет по номеру телефона узнать, есть ли у владельца аккаунт, и получить его идентификатор, то номера можно перебирать, а полученную информацию накапливать. На основе этой информации можно построить таблицу для обратной функции: зная аккаунт, определять номер привязанного телефона из числа подобранных ранее. При этом номеров мобильных телефонов не так много.

Например, в России номеров вида +7(9xx)-xxx-xx-xx всего один миллиард, а используемых сотовыми операторами блоков на порядок меньше. Количество только кажется большим, но для автоматического перебора это немного. Конечно, с одного аккаунта перебрать столько номеров не получится, поскольку у мессенджера есть ограничения и на размер записной книжки, и на частоту её обновления. Но процесс подбора легко распараллелить, используя тысячи, а то и десятки тысяч аккаунтов одновременно.

Проблема, собственно говоря, старая. Я начал заниматься ей во время работы в Telegram, но вскоре покинул команду мессенджера. Так как братья Дуровы не поднимали вопрос о передаче этой работы другим сотрудникам, сомневаюсь, что кто-то продолжил начатое.

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

Так что пользователям Telegram определённо не стоит рассчитывать, что их номер телефона никто никогда не узнает. Собственно говоря, то же относится и к переписке в мессенджере — не стоит писать там что-то такое, из-за чего вы можете впоследствии пострадать. И уж тем более не стоит использовать Telegram в противозаконных целях.

Заявления «мы не выдали ни одному правительству ни байта информации» не означают, что эти правительства ни одного байта не получили.