Генерация 2FA-кода онлайн: что вы отдаёте взамен и когда это не сработает
Секрет TOTP — это не одноразовый код. Это постоянный ключ, который генерирует все будущие коды, и, вставив его на сайт, вы даёте этому сайту те же возможности, что есть у вас. Вот как проверить, где вычисляет генератор, и почему файл Telegram 2FA никогда не будет работать в нём.
Michael Chen
Начнём с того, что большинство гайдов на эту тему пропускают, потому что от этого зависит всё остальное.
Шесть цифр, которые показывает ваш аутентификатор, — это не ваш credential. Credential — это строка букв и цифр, которую вы отсканировали или ввели при настройке аккаунта, и она не истекает, не ротируется и не меняется. Каждый код, который когда-либо примет этот аккаунт, вычисляется из этой строки плюс текущее время. Любой, у кого есть копия, может в любой момент сгенерировать валидный код — навсегда, без вашего телефона и без вашего пароля, и нигде не останется лога о том, что он это сделал.
А значит, фраза «просто вставь свой 2FA-секрет в онлайн-генератор» — это просьба о гораздо большем, чем кажется. Вы делитесь не кодом. Вы делитесь способностью создавать коды.
Безопасный генератор не отличить от небезопасного на глаз
Две страницы могут выглядеть одинаково и вести себя совершенно по-разному. Одна делает вычисления в вашем браузере, и секрет никогда не покидает устройство. Другая отправляет введённое на сервер, считает там и присылает шесть цифр обратно. Снаружи обе показывают поле, кнопку и таймер.
Есть одна проверка, которую вы реально можете выполнить, и она занимает десять секунд. Загрузите страницу, затем отключитесь от сети, вставьте секрет и нажмите кнопку. Генератор, который считает локально, продолжит работать без сети. Генератор, которому нужен сервер, — нет.
Та же проверка с открытыми инструментами разработчика в браузере точнее: откройте вкладку «Сеть» перед нажатием кнопки и посмотрите, отправляется ли что-нибудь. Ничего не отправлено — значит, ничего не передано.
Наш собственный генератор 2FA-кодов — как раз локальный, и вы можете убедиться в этом любым способом, а не верить нам на слово. Расчёт полностью выполняется на странице, используя библиотеку, которую браузер загружает один раз, и при нажатии кнопки не отправляется ни одного запроса. Это стоит уточнить именно потому, что мы, очевидно, сказали бы так в любом случае, а офлайн-тест — это то, что от нас не зависит.

Что именно принимает поле ввода
Работают два формата. Сырой ключ — строка из заглавных букв и цифр от двух до семи, обычно показанная группами по четыре с пробелами; пробелы игнорируются, так что можно вставить его точно так, как его показал ваш провайдер. Или полная ссылка настройки, начинающаяся с otpauth://, — это то, что стоит за QR-кодом, который вы обычно сканируете. Если есть возможность скопировать эту ссылку, а не переписывать ключ вручную, делайте так, потому что это исключает риск ошибки при считывании символа.
Что не работает — так это всё остальное: пароль, recovery-код, резервный код или строка, содержащая цифры ноль, один, восемь или девять, которых нет в алфавите. Если вы получаете ошибку invalid key, в первую очередь проверяйте эти цифры.
Параметры фиксированы, и именно поэтому некоторые правильные ключи дают неверные коды
Почти все сервисы используют одни и те же три настройки, и инструмент предполагает именно их: алгоритм SHA1, шесть цифр и новый код каждые тридцать секунд. Это покрывает подавляющее большинство аккаунтов.
Меньшинство сервисов делает что-то иначе. Некоторые выдают восемь цифр, некоторые используют шаг в шестьдесят секунд, а некоторые — более сильный хэш. Против них этот инструмент и большинство подобных ему выдадут вполне корректно сформированный шестизначный код, который просто будет неверным, и ничто не подскажет вам почему. Если ваш ключ точно правильный, а код точно отклоняется, посмотрите, что экран настройки вашего провайдера говорил о количестве цифр и интервале, прежде чем винить ключ.
Ещё одна причина, которую стоит исключить в первую очередь, потому что она распространена и невидима: часы. Коды, зависящие от времени, требуют, чтобы ваше устройство согласовывало с сервером, который сейчас час. Машина, отстающая или спешащая на минуту, будет выдавать коды, которые отклоняются, пока вы не включите автоматическое время обратно.
Telegram 2FA — это не то, и вставка сюда никогда не сработает
Это заслуживает отдельного раздела, потому что именно здесь происходит больше всего неудачных попыток, чем где-либо ещё на этом сайте.
Двухэтапная проверка Telegram — это пароль. Telegram реализует её через протокол доказательства пароля и вообще не поддерживает приложения-аутентификаторы для входа в аккаунт. Секрета для генерации кодов нет, потому что кодов нет.
Путаница вполне объяснима, потому что словарь маркетплейса это скрывает. Двадцать активных объявлений о продаже Telegram-аккаунтов здесь в самих заголовках заявляют, что 2FA приходит «в текстовом файле», и одно из них прямо расшифровывает, что в этом файле: облачный пароль. Покупатель открывает файл, видит строку, думает, что это ключ, вставляет её в генератор и получает ошибку.
Что делать с файлом Telegram 2FA вместо этого: сохранить его, потому что это пароль, который у вас спросят при входе, и он нужен, чтобы позже изменить или отключить двухэтапную проверку. Аккаунт, переданный с включённой двухэтапной проверкой и без пароля в файле, — это аккаунт, который вы не сможете перенастроить. Проверьте это до истечения гарантии, которая на этой полке обычно составляет двенадцать часов с момента доставки. Гайд по верификации Telegram рассказывает, что ещё стоит сделать в этот первый день.
Если вы купили аккаунт, секрет принадлежит не только вам
Это напрямую вытекает из первого раздела, и именно это покупатели чаще всего упускают.
2FA-секрет, переданный в текстовом файле, был сгенерирован кем-то другим, записан кем-то другим и, возможно, сохранён кем-то другим. Он продолжает работать для всех, у кого есть копия, бессрочно, и сам факт получения не лишает остальных их копий. Это не пароль, который можно сменить; единственный способ аннулировать секрет — выключить двухфакторную аутентификацию на аккаунте и включить её заново, что выдаст новый секрет.
Поэтому на любом аккаунте, который вы планируете оставить себе, перерегистрируйтесь. Удалите существующую запись аутентификатора в настройках безопасности самой платформы, настройте всё заново, отсканируйте новый код в приложение, которым управляете вы, и сохраните новые recovery-коды. Пока вы этого не сделали, вы делите аккаунт с теми, у кого осталась копия, и вы не сможете этого заметить.
Что рынок платит за 2FA и что это на самом деле измеряет
На полках аккаунтов здесь тег 2FA стоит на 6 709 активных объявлениях, и сравнение цен этих объявлений с остальными на их собственных полках даёт закономерность, которую стоит прочитать правильно.
Тег даёт реальную наценку на почтовых полках, а также на Discord, Reddit и GitHub — примерно в два-три раза выше медианы полки в каждом случае и почти в шесть раз на Firstmail. На Telegram, Threads и X он стоит на уровне паритета. На TikTok, YouTube и Apple ID — ниже медианы.
Соблазнительное прочтение — что 2FA стоит дороже там, где безопасность важнее. Это не то, что говорят цифры. Множитель отслеживает, насколько редок тег на каждой полке. Везде, где он стоит на двух третях объявлений или больше, цена колеблется в пределах нескольких процентов от паритета, потому что атрибут, который есть почти у всего, не может быть премией, как бы полезен он ни был. На Instagram он стоит почти на четырёх объявлениях из пяти и ценится чуть ниже медианы.
По-настоящему информативная строка — Apple ID, где тридцать шесть объявлений с тегом стоят заметно ниже медианы полки. Это единственная платформа в наборе, где двухфакторная аутентификация фактически обязательна и привязана к доверенному устройству, а не к строке, которую может скопировать кто угодно. Там, где второй фактор нельзя передать в текстовом файле, упоминание о его наличии ничего не добавляет к цене.
Два практических вывода. Полка, где 2FA дёшев, — это обычно полка, где он либо универсален, либо непередаваем, а не та, где продавцы срезают углы. А объявление с большой наценкой за него на полке, где он есть почти у всего, — это плата за обыденность.
Коротко
- Относитесь к секрету как к постоянному ключу, а не коду. Он не истекает сам по себе.
- Прежде чем вставлять его куда-либо, отключитесь от сети и проверьте, работает ли страница. Если работает — ничего не отправлялось.
- Вставляйте ссылку
otpauth://, если она есть, вместо того чтобы перепечатывать ключ. - Если валидный ключ даёт отклонённый код, проверьте количество цифр, интервал и часы устройства, прежде чем винить ключ.
- Если это Telegram-аккаунт, у вас пароль, а не ключ. Код из него не получится никогда.
- На любом аккаунте, который планируете оставить, выключите и снова включите двухфакторную аутентификацию, чтобы получить секрет, копии которого нет ни у кого другого.

