Utilia

Генератор на TOTP и HOTP кодове

Генерирайте 2FA кодове TOTP и HOTP от тайна в Base32 или адрес otpauth://, със SHA-1, SHA-256 или SHA-512, обратно броене на живо и QR код за 2FA приложения.

2FA тайната е толкова чувствителна, колкото и паролата. Всичко тук се изпълнява локално във вашия браузър: тайната, кодовете и QR кодът никога не се изпращат никъде.

Настройване на приложение за автентикация

Добавете издател и име на акаунт, после сканирайте QR кода или копирайте връзката otpauth:// във вашето приложение за автентикация.

Как да генерирате TOTP кодове

  1. Поставете тайна в Base32 (например JBSWY3DPEHPK3PXP) или цяла връзка otpauth:// в Тайна (Base32) или адрес otpauth://. Приемат се интервали, тирета, малки букви и липсващо допълване с =.
  2. Кодовете се появяват, докато пишете, или когато щракнете върху Покажи кодовете. Поставен адрес попълва вместо вас полетата Тип, Алгоритъм, Цифри, Период (секунди), Издател и Акаунт.
  3. Прочетете Текущ код в средата, с Предишен код и Следващ код от двете страни. Лентата отдолу отброява секундите до смяната на кода, а Копирай кода го копира без интервала.
  4. За кодове по брояч изберете HOTP (по брояч), задайте Брояч и използвайте Следващ брояч, за да напреднете.
  5. За да създадете нова 2FA тайна, щракнете върху Нова случайна тайна. Попълнете Издател и Акаунт, после сканирайте QR кода с приложение за автентикация, Копирай адреса или Изтегли QR кода (PNG).

Как работят TOTP и HOTP

HOTP (RFC 4226) изчислява HMAC на 8-байтов брояч със споделената тайна, после прилага динамично отрязване: последните четири бита на HMAC избират отместване, оттам се четат четири байта, старшият бит се нулира и числото се редуцира по модул 10^цифри. Резултатът е код от 6 до 8 цифри.

TOTP (RFC 6238) е HOTP, при който броячът е текущата времева стъпка: T = floor(Unix време / период), с период по подразбиране 30 секунди. Вашият телефон и сървърът изчисляват един и същ код независимо, защото споделят тайната и (приблизително) един и същ часовник. Затова се показват Предишен код и Следващ код: сървърите обикновено приемат една стъпка преди или след, за да понесат отклонение на часовника.

HMAC се изпълнява с Web Crypto API на вашия браузър със SHA-1, SHA-256 или SHA-512. SHA-1 с 6 цифри и 30 секунди е това, което използва почти всяка услуга; SHA-256 и SHA-512 са позволени от RFC 6238, но някои приложения ги игнорират, затова променяйте стойностите по подразбиране само ако услугата го изисква.

Адресът otpauth:// и QR кодът

Приложенията за автентикация се настройват с адрес като otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, обикновено показан като QR код. Този инструмент чете такива адреси (включително етикети с процентно кодиране като ACME%20Co) и изгражда нови. QR кодът се чертае локално от адреса, показан под Адрес otpauth://.

Новата случайна тайна е 20 байта (160 бита), дължината, препоръчана от RFC 4226, взета от crypto.getRandomValues.

Съвети за сигурност

  • Тайната е самият втори фактор: всеки, който я притежава, може да произвежда вашите кодове. Не поставяйте тайните на важни акаунти на споделени компютри и никога не споделяйте екранни снимки на QR кода.
  • Всичко се изчислява локално; нищо не се изпраща по мрежата. Затворете раздела, когато приключите.
  • Пазете резервните кодове от услугата: изгубена тайна не може да бъде възстановена.

Често задавани въпроси

Защо кодът ми не съвпада с този в приложението ми?

Първо проверете часовника на устройството си: TOTP кодовете се сменят всеки период, така че часовник, който се разминава с повече от около 30 секунди, дава различни кодове. После проверете дали алгоритъмът, цифрите и периодът съвпадат с тези на услугата.

Съвместим ли е този инструмент с Google Authenticator и подобни приложения?

Да. Следва RFC 6238 и формата на адреса otpauth, който тези приложения използват. Сканирайте QR кода или въведете тайната в Base32 в приложението и и двете трябва да показват един и същ Текущ код.

Каква е разликата между TOTP и HOTP?

TOTP напредва с времето, така че кодът изтича след периода. HOTP напредва с брояч, който се увеличава при всяко използване на код, така че кодът остава валиден, докато бъде използван или заменен.

Мога ли да използвам този инструмент като ежедневен автентикатор?

Предназначен е за тестване, разработка и възстановяване. Приложение в телефона или хардуерен ключ са по-безопасни за ежедневна употреба, защото тайната не трябва да се поставя всеки път в уеб страница.

Проверени ли са изчисленията спрямо стандартите?

Да. Инструментът е тестван със стойностите за HOTP от приложение D на RFC 4226 и стойностите за TOTP от приложение B на RFC 6238 за SHA-1, SHA-256 и SHA-512.