Что такое секретный ключ 2FA: Base32, TOTP и otpauth URI простыми словами

Digital Account Market

· Последнее обновление:

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

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

Что такое секретный ключ 2FA и как он создаёт шестизначные коды

Одноразовые пароли на основе времени (TOTP, стандарт RFC 6238) строятся из двух составляющих: общего секрета и текущего времени. При настройке 2FA платформа создаёт секретный ключ и хранит его копию, а вторая копия лежит в вашем приложении-аутентификаторе. Каждые 30 секунд обе стороны проводят одно и то же вычисление над ключом и часами и получают одни и те же шесть цифр.

Отсюда три практических вывода:

  • Секретный ключ — это второй ключ от аккаунта. Тот, у кого он есть, может генерировать рабочие коды с любого устройства, пока эта настройка 2FA остаётся активной.
  • Сами коды нигде не хранятся. Каждый код пересчитывается раз в 30 секунд, поэтому скриншот старого кода бесполезен.
  • Время имеет значение. Если часы устройства, которое генерирует коды, уходят от реального времени на минуту и больше, даже верный ключ даёт коды, которые отклоняются.

Base32: как выглядят символы и какие опечатки встречаются чаще всего

Секретные ключи записываются в Base32 — алфавите из 26 заглавных латинских букв от A до Z и цифр от 2 до 7. Это весь алфавит. Цифр 0, 1, 8 и 9 в нём нет, знаков препинания тоже. Условный пример (это не ключ реального аккаунта): JBSWY3DPEHPK3PXP. Настоящие ключи обычно содержат от 16 до 32 символов.

Допустимы всего 32 символа, поэтому большинство опечаток легко заметить:

  • 0, 1 или 8 в середине ключа означают, что символ прочитан неверно. Ноль — это обычно буква O, единица — буква I или L, а восьмёрка — буква B.
  • Строчные буквы обычно не проблема: большинство приложений сами переводят их в верхний регистр.
  • Один или несколько знаков «=» в конце — это выравнивание (padding). Многие приложения принимают ключ и с ними, и без них.
  • Невидимые лишние символы, например пробел или перенос строки в конце, скопированные из текстового файла, часто вызывают сообщение «недействительный ключ».

otpauth URI, QR-код и ключ в виде текста

Один и тот же секрет может попасть к вам в трёх видах, и путаница между ними вызывает много вопросов:

  • Ключ в виде текста. Просто строка Base32. В аутентификаторах её называют ключом настройки или ключом для ручного ввода.
  • QR-код. Картинка, в которой закодирован otpauth URI, чтобы телефон отсканировал его вместо ручного ввода ключа.
  • otpauth URI. Строка вида otpauth://totp/Example:user?secret=JBSWY3DPEHPK3PXP&issuer=Example. Значение после secret= — это ключ Base32. Остальное — название (label) и параметры: issuer, algorithm, digits и period.

Если у вас есть только картинка QR-кода или ссылка otpauth, секрет — это текст после secret= и до следующего знака &. Стандартные настройки — SHA-1, шесть цифр и период 30 секунд; приложение подставляет их, когда вы вводите только секрет. При сканировании QR-кода или импорте полного URI применяются и нестандартные параметры, если они в нём указаны.

Секретный ключ 2FA, резервные коды и почта для восстановления

Эти три элемента защищают один и тот же аккаунт, но выполняют совершенно разные задачи:

  • Секретный ключ 2FA. Долгоживущая строка Base32, которая каждые 30 секунд создаёт новый код. Меняется только при сбросе или повторной настройке 2FA.
  • Резервные коды. Одноразовые коды, которые платформа может предложить на случай, когда у вас нет доступа к аутентификатору. Каждый действует один раз. Это не секреты Base32, поэтому приложение-аутентификатор или TOTP-инструмент их использовать не могут.
  • Почта для восстановления. Это почтовый ящик, а не код. На неё приходят подтверждения входа и ссылки для сброса. В строке выдачи она выглядит как адрес электронной почты, обычно с паролем от этого ящика следом.

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

Как найти секретный ключ в строке выдачи и проверить его

Выдача приходит в виде TXT-файла со строками вроде username:password:email:email_password:auth_token, а набор полей зависит от категории. Если в категорию входит ключ 2FA, это ещё одно поле в строке. Не считайте позиции вслепую: прочитайте описание категории и сверьте его с первой строкой вашего файла.

Поля можно также узнать по форме:

  • Секретный ключ — это 16 и более символов: заглавные буквы и цифры от 2 до 7, без знаков препинания.
  • auth_token — длинная шестнадцатеричная строка. Это токен сессии, а не генератор кодов, и заменить секретный ключ он не может. Об этом сценарии читайте в статье вход в Twitter по auth token.
  • Пароли могут содержать двоеточие, поэтому «наивное» разбиение строки по «:» иногда её ломает.

Чтобы убедиться, что все строки устроены одинаково, вставьте образец в инструмент определения формата. Чтобы вытащить только столбец с секретными ключами, воспользуйтесь инструментом разделения по разделителю.

Затем проверьте ключ за секунды. Откройте бесплатный генератор кодов 2FA, вставьте секретный ключ — появится шестизначный код с обратным отсчётом. Если инструмент сообщает о недействительном ключе, вернитесь к списку опечаток выше. Если код появился, но вход его отклоняет, проверьте часы на устройстве и прочитайте, что делать, если код 2FA не работает.

Как безопасно хранить секретные ключи, если у вас много аккаунтов

Строка выдачи часто содержит и пароль, и секретный ключ 2FA, поэтому любой, кто откроет файл, получает оба фактора. Защищайте файл целиком, а не каждое поле отдельно:

  • Храните файл в одной закрытой папке с ограниченным доступом и не пересылайте его через мессенджеры, общие документы или скриншоты.
  • Проверяйте каждый ключ вскоре после выдачи и отмечайте дату рядом с аккаунтом, чтобы проблема проявилась рано.
  • Подписывайте, чем является каждая строка, чтобы одноразовый резервный код не попал в приложение-аутентификатор.
  • Считайте копии. Загрузить один и тот же секрет во второе приложение-аутентификатор — разумная страховка, но каждая копия — это ещё одно место, откуда он может утечь.

Для более широкого плана прочитайте двухфакторную аутентификацию и планирование восстановления, а терминологию объявлений разбирает глоссарий по аккаунтам. Сравнивая категории вроде Старые аккаунты с привязкой телефона, читайте описание, чтобы понять, что входит в файл выдачи. Если вы рассчитываете на ключ 2FA, уточните это до заказа или спросите поддержку в Telegram.

Часто задаваемые вопросы

Как выглядит секретный ключ 2FA?

Это строка из заглавных латинских букв A–Z и цифр от 2 до 7, обычно длиной от 16 до 32 символов, например JBSWY3DPEHPK3PXP в примерах из документации. Некоторые платформы показывают ключ группами, разделёнными пробелами или дефисами.

Секретный ключ 2FA — это то же самое, что резервный код?

Нет. Секретный ключ создаёт новый код каждые 30 секунд, пока эта настройка 2FA остаётся активной. Резервный код — одноразовый: он срабатывает один раз и не подходит для приложения-аутентификатора.

Можно ли превратить QR-код в секретный ключ?

Да. QR-код настройки кодирует otpauth URI, а секретный ключ — это значение после secret= в этом тексте. Держите этот текст в тайне: он так же чувствителен, как и сам ключ.

Почему в некоторых секретных ключах есть пробелы или дефисы?

Пробелы нужны только для удобства чтения, обычно группами по четыре символа. Если приложение отклоняет ключ, удалите пробелы и дефисы; бесплатный генератор кодов 2FA принимает их как есть.

Можно ли использовать один секретный ключ сразу в двух приложениях?

Да. Любое приложение или устройство с тем же секретным ключом и верными часами покажет тот же код. Это удобно как резервная копия, но каждая копия — ещё одно место, где секрет может раскрыться.

Инструменты

Популярные категории

ПоддержкаКанал