Що таке секретний ключ 2FA? Пояснюємо Base32, TOTP та посилання otpauth
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, QR-коди та ключі у вигляді звичайного тексту
Той самий секрет може потрапити до вас у трьох формах, і плутанина між ними створює чимало проблем:
- Ключ у вигляді звичайного тексту. Сам рядок Base32. Застосунки-автентифікатори називають його ключем налаштування або ключем для ручного введення.
- QR-код. Зображення, що кодує посилання otpauth, щоб телефон міг його відсканувати, а вам не довелося вводити ключ вручну.
- Посилання otpauth. Рядок тексту на кшталт otpauth://totp/Example:user?secret=JBSWY3DPEHPK3PXP&issuer=Example. Значення після secret= — це ключ Base32. Решта — це мітка й параметри, як-от видавець (issuer), алгоритм, кількість цифр і період.
Якщо у вас є лише зображення QR-коду або посилання otpauth, секретом є текст після secret= і до наступного символу &. Стандартні налаштування використовують SHA-1, шість цифр і 30-секундний період, і застосунок припускає ці значення за замовчуванням, коли ви вводите лише секрет. Під час сканування QR-коду або імпорту повного посилання застосовуються й нестандартні параметри, якщо вони там є.
Секретний ключ 2FA, резервні коди та електронна пошта для відновлення
Ці три елементи захищають один і той самий акаунт, але виконують зовсім різні завдання:
- Секретний ключ 2FA. Довгостроковий рядок Base32, який кожні 30 секунд створює новий код. Він змінюється лише тоді, коли 2FA скидають або налаштовують заново.
- Резервні коди. Одноразові коди, які платформа може запропонувати на випадок, коли ви не маєте доступу до застосунку-автентифікатора. Кожен працює лише раз. Це не секрети Base32, тож застосунок-автентифікатор чи інструмент TOTP не може їх використати.
- Пошта для відновлення. Це поштова скринька, а не код. Вона отримує підтвердження входу й посилання для скидання. У рядку доставки вона виглядає як адреса електронної пошти, зазвичай разом із паролем від цієї скриньки.
Секрет створює щоденні коди, резервні коди — це запасне колесо, а пошта для відновлення — шлях назад, коли ламається щось інше. Позначайте їх у своїх записах окремо.
Як знайти ключ у рядку доставки й перевірити його
Доставка приходить як TXT-файл із рядками на кшталт username:password:email:email_password:auth_token, а точний набір полів залежить від категорії. Якщо категорія містить ключ 2FA, це ще одне поле в рядку. Не рахуйте позиції наосліп: прочитайте опис категорії та порівняйте його з першим рядком файлу.
Поля також можна впізнати за формою:
- Секретний ключ має щонайменше 16 символів, великі літери й цифри від 2 до 7, без розділових знаків.
- auth_token — це довгий шістнадцятковий рядок. Це токен сесії, а не генератор кодів, і він не замінює секретний ключ. Про такий спосіб входу читайте в матеріалі вхід у Twitter за допомогою auth token.
- Паролі можуть містити двокрапку, тому наївне розбиття рядка за «:» інколи його ламає.
Щоб перевірити, що всі рядки мають однакову структуру, вставте зразок в визначник формату. Щоб витягти лише стовпець із ключами, скористайтеся split-by-delimiter.
Далі перевірте ключ за кілька секунд. Відкрийте безкоштовний інструмент 2FA, вставте ключ — з’явиться шестицифровий код зі зворотним відліком. Якщо інструмент повідомляє про недійсний ключ, поверніться до списку помилок друку вище. Якщо код з’являється, але під час входу його відхиляють, перевірте годинник пристрою й прочитайте, що робити, коли код 2FA не працює.
Як безпечно зберігати ключі, коли керуєте багатьма акаунтами
Рядок доставки часто містить пароль і секрет 2FA разом, тож кожен, хто відкриє файл, отримує обидва фактори. Тому захищайте файл цілком, а не кожне поле окремо:
- Зберігайте файл в одній приватній папці з обмеженим доступом і уникайте месенджерів, спільних документів і скриншотів.
- Перевіряйте кожен ключ незабаром після доставки й записуйте дату біля акаунта, щоб проблема виявлялася рано.
- Підписуйте, чим є кожен рядок, щоб одноразовий резервний код ніколи не потрапив у застосунок-автентифікатор.
- Рахуйте свої копії. Завантажити той самий секрет у другий застосунок-автентифікатор — розумна резервна копія, але кожна копія — це ще одне місце, звідки він може витекти.
Ширший план шукайте в матеріалі про двофакторну автентифікацію та планування відновлення доступу, а терміни з оголошень пояснює глосарій акаунтів. Коли порівнюєте категорії на кшталт Phone Verified Aged Accounts, читайте опис, щоб побачити, що містить файл доставки. Якщо вам потрібен ключ 2FA, уточніть це до замовлення або запитайте підтримку в Telegram.
Поширені запитання
Як виглядає секретний ключ 2FA?
Це рядок із великих літер від A до Z і цифр від 2 до 7, зазвичай довжиною від 16 до 32 символів, наприклад JBSWY3DPEHPK3PXP у прикладах із документації. Деякі платформи показують його групами, розділеними пробілами або дефісами.
Чи секретний ключ 2FA — це те саме, що резервний код?
Ні. Секретний ключ створює новий код кожні 30 секунд, доки це налаштування 2FA залишається активним. Резервний код — одноразовий: він спрацьовує лише раз і не підходить для застосунку-автентифікатора.
Чи можна з QR-коду отримати секретний ключ?
Так. QR-код налаштування кодує посилання otpauth, а секретний ключ — це значення після secret= у цьому тексті. Тримайте цей текст у таємниці, бо він такий самий чутливий, як і сам ключ.
Чому в деяких ключах є пробіли або дефіси?
Проміжки потрібні лише для читабельності, часто групами по чотири символи. Якщо застосунок відхиляє ключ, приберіть пробіли й дефіси; безкоштовний інструмент 2FA приймає їх і в початковому вигляді.
Чи можна використовувати той самий ключ у двох застосунках одночасно?
Так. Кожен застосунок або пристрій із тим самим секретом і правильним годинником показує той самий код. Як резервний варіант це зручно, але кожна копія — це ще одне місце, де секрет може бути розкритий.

