Двухэтапная проверка и сессии API на аккаунте, который вы не создавали
Захват аккаунта Telegram: один защитный шаг срабатывает в первую минуту, а другой блокируется на сутки. Что именно работает — противоположно тому, что пишут в большинстве чек-листов по передаче аккаунтов, и Telegram сам объясняет причину в своей справочной документации.
Sarah JohnsonВам передали Telegram-аккаунт для команды. Где-то остались старые устройства, пароль вам никто не сказал, а скрипту вдобавок нужен доступ. Стандартный совет — сначала очистить устройства, потом задать пароль.
Сделайте в таком порядке — и первый шаг провалится. Telegram не даст сессии выйти из других сессий, пока ей самой не исполнится 24 часа с момента входа, и об этом прямо сказано в ошибке. На смену пароля такого ограничения нет. Так что последовательность, которую все повторяют, выстроена задом наперёд, и эта страница до сих пор несла именно перевёрнутую версию.
«API-логин» — это три разные вещи
Стоит разобраться сразу, потому что английская фраза сталкивается лбами, и половина тех, кто её ищет, хочет совсем другого. Из подсказок поиска по «telegram api login» пять — про ботов, и ещё одна — это Login Widget.
- Бот. Отдельная сущность с токеном от BotFather. Это не аккаунт, его нельзя купить как аккаунт, и ничего на этой странице к нему не относится.
- Login Widget. Кнопка «Войти через Telegram» на чужом сайте. Она авторизует вас на этом сайте. К управлению аккаунтом отношения не имеет.
- Пользовательская сессия, созданная через API. Скрипт, действующий как настоящий аккаунт, с API id и хэшем плюс сохранённой авторизацией. Именно это важно, когда аккаунт переходит из рук в руки, и именно это имеется в виду, когда в объявлении упоминается API-логин.
На нашей полке третье значение встречается реже, чем можно подумать по его заметности: это слово есть лишь в небольшом меньшинстве живых объявлений о Telegram. Большая часть этой полки передаёт файлы, а не логин.
Что на самом деле содержит запись сессии
Каждая авторизация в аккаунте — с телефона, десктопного клиента или скрипта — это одна запись с одинаковыми полями. Telegram их документирует, и чтение реального списка полезнее любой сводной таблицы.
В каждой записи — модель устройства, платформа, версия системы, название и версия приложения, API id, под которым она создана, когда создана, когда была активна в последний раз, и последний известный адрес со страной и регионом. Два флага стоит знать, потому что они объясняют вещи, которые людей сбивают с толку:
- Страна и регион выводятся из адреса, а не из устройства. В описаниях полей у самого Telegram сказано, что оба определяются по IP. Неожиданный город — обычно артефакт маршрутизации, а не улика.
- Сессия может ждать пароль. Есть флаг, означающий, что сессия ещё не ввела пароль двухэтапной аутентификации. Кто-то может стоять на шаге входа в ваш аккаунт, держать валидный код и упереться во вторую дверь — и это состояние видно.
Поле API id — практичное для автоматизации. Оно показывает, какая запись принадлежит какому скрипту, а это важно, когда вы собираетесь завершать сессии и не хотите отрубить собственный инструментарий.
Единственный замок, который можно повернуть в первый час
Смена пароля двухэтапной аутентификации работает сразу. Никакого периода ожидания нет, и это единственное защитное действие, доступное в первый день.
Чего она не делает — так это не выгоняет никого. Уже запущенная сессия не затрагивается, и сколько пароль ни меняй, её не убрать. Что она делает — закрывает дверь, через которую могла бы добавиться другая сессия: после смены новый вход по номеру телефона запросит пароль, который знаете только вы.
В этом различие и есть весь смысл. Смена пароля не чистит аккаунт. Она не даёт аккаунту пачкаться дальше, пока вы ждёте возможности его почистить.
По формату — одна поправка к тому, что эта страница говорила раньше: Telegram не публикует ни минимальной длины для этого пароля, ни требования смешивать классы символов. Любое такое правило, которое вы прочитаете, включая то, что было на этой странице, — выдумка. Выбирайте длинный пароль, потому что это разумно, а не потому что есть правило.
Почему списку устройств приходится ждать сутки
Ограничение касается не только очевидной кнопки. Завершение одного устройства, завершение всех остальных устройств и установка времени жизни сессии — всё это отклоняется одной и той же ошибкой в течение тех же 24 часов. Последнее закрывает лазейку с просьбой к Telegram самому истечь старые сессии.
Причина становится понятной, если перевернуть ситуацию. Если бы свежая сессия могла завершить всё остальное, любой, кто вошёл по перехваченному коду, мог бы в ту же минуту запереть настоящего владельца из его собственного аккаунта. Замок стоит злоумышленнику день, и за этот день настоящий владелец может действовать, потому что его сессия достаточно старая, чтобы ей это разрешили.
В применении к передаче аккаунта эта защита направлена на вас. Первые 24 часа прежний владелец может завершить вашу сессию, а вы его — нет.
Есть одно исключение, и оно работает в другую сторону. Когда входит новая сессия, уже присутствующие сессии получают уведомление и могут её отклонить. Если у вас всё ещё есть контроль над более старой сессией в аккаунте, это путь, который завершает новый вход немедленно, потому что команда исходит от старой сессии, а не от новой. Если не ответить, нераспознанный вход подтверждает сам себя через семь дней.
Адрес восстановления решает, кто владеет аккаунтом
Важнее пароля и обычно пропускается. Адрес восстановления, ведущий на почту, которую вы не можете прочитать, означает, что аккаунт не ваш по-настоящему, какой бы пароль вы на него ни поставили, потому что адрес — это путь обратно.
Проверьте, что установлено, прежде чем что-либо менять, затем поставьте свой. Если аккаунт приходит с адресом восстановления, который вы не можете проверить, а продавец не может убрать, — это и есть находка, и о ней стоит сказать, пока открыто гарантийное окно. На большинстве объявлений о Telegram здесь это окно измеряется часами, так что проверку надо делать рано или никак.
Если регистрация или восстановление идёт через номер телефона, которым вы не полностью управляете, отдельный номер для SMS-верификации держит этот шаг в стороне от вашей личной линии.
Семидневные часы и что их на самом деле запускает
Если пароль потерян и адрес восстановления не задан, путь назад — это сброс, а не восстановление, и Telegram запускает семидневный таймер на стороне сервера, прежде чем сброс завершится. В эти семь дней любой, у кого есть рабочая сессия, может его отменить — в этом и смысл задержки: она даёт настоящему владельцу неделю, чтобы остановить чужого человека, сбрасывающего пароль.
Если читать со стороны покупателя, это работает в обе стороны. Сброс, который вы начали, может отменить кто-то другой, кто всё ещё залогинен. Ещё одна причина, почему список устройств важнее пароля.
Автоматизация без того, чтобы отрубить себе линию
Авторизация скрипта — это запись в том же списке, что и ваш телефон, так что завершение сессий завершает и скрипты. Если бот или инструмент зависит от сессии, которую вы собираетесь очистить, сначала создайте замену под своими API-данными, убедитесь, что она работает, и только потом удаляйте старую.
Общая форма держится: держите автоматизацию на отдельном аккаунте, а не на том, которым пользуется человек. Не потому что Telegram публикует такое правило, а потому что, когда нужно срочно чистить список устройств, хочется, чтобы радиус поражения был один.
Что бы вы ни унаследовали, относитесь к паролю, который пришёл с аккаунтом, как к паролю продавца, пока не заменили его. На этой полке двухэтапный пароль уже задан на хорошо более чем половине живых Telegram-аккаунтов в списке, и это ничего не стоит дополнительно, что само по себе о многом говорит: это не функция, которую кто-то добавил для вас, а учётные данные, которые кто-то другой выбрал. В FAQ Telegram описано, где находятся настройки, но не правило 24 часов — оно есть только в документации по интерфейсу.