TOTP — это аббревиатура от «time-based one-time password» (одноразовый пароль, основанный на времени). Эта технология лежит в основе многих шестизначных кодов, отображаемых приложениями-аутентификаторами. Код TOTP вычисляется на основе секретного ключа настройки и текущего времени, а затем теряет действительность через короткий промежуток времени.
TOTP обычно используется в качестве второго этапа двухфакторной аутентификации. Он может работать даже при отсутствии мобильного сигнала, поскольку приложение-аутентификатор вычисляет код локально, а не ожидает получения сообщения.
На основе какой информации формируется код TOTP?
Важны два входных параметра: общий секрет и счетчик времени. Поставщик учетной записи создает секрет во время настройки и передает его вашему приложению-аутентификатору через QR-код или ручной ключ. Затем обе стороны делят время на равные интервалы и выполняют одинаковые криптографические вычисления.
Если секрет, алгоритм и временной интервал совпадают, обе стороны получают один и тот же короткий код. Сам секрет не нужно передавать при каждом входе в систему.

Как работает TOTP?
- Поставщик создает уникальный секретный ключ для регистрации аутентификатора.
- Вы сканируете QR-код для настройки или вводите секрет вручную на доверенном устройстве.
- Аутентификатор объединяет секрет с текущим временным окном.
- Результат сводится к короткому числовому коду, обычно из шести цифр.
- Поставщик рассчитывает ожидаемый код и сравнивает его с введенным вами.
В стандарте RFC 6238 TOTP определяется как вариант HOTP, основанный на времени. Обычно используется 30-секундный интервал, шесть цифр и алгоритм HMAC-SHA-1, хотя поддерживаются и другие алгоритмы и настройки.
Почему коды TOTP теряют силу?
Короткий срок действия ограничивает время, в течение которого скопированный код можно использовать повторно. Как только временное окно меняется, аутентификатор генерирует новое значение. Сервисы могут допускать небольшое отклонение от указанного временного окна, чтобы учесть сетевую задержку и незначительные различия в синхронизации часов, но более широкий диапазон допуска также увеличивает окно принятия.
Введите новый код в начале его обратного отсчёта. Если коды постоянно отклоняются, следуйте нашему руководству по устранению неполадок с неработающим кодом двухфакторной аутентификации.
TOTP и HOTP
TOTP и HOTP используют схожие вычисления, но работают по-разному:
- TOTP изменяется в соответствии с временным шагом, поэтому часы аутентификатора должны быть синхронизированы.
- HOTP меняется при увеличении счётчика, например, после нажатия кнопки или успешного использования.
TOTP широко используется в программных приложениях-аутентификаторах, поскольку время служит автоматическим изменяющимся фактором. HOTP по-прежнему используется в некоторых аппаратных токенах и специализированных системах.
TOTP против кодов SMS
Приложение TOTP вычисляет коды на устройстве и обычно работает в автономном режиме. Доставка кодов по SMS осуществляется через телефонную сеть. SMS удобен, но на его работу могут повлиять подмена SIM-карты, переназначение номера, перехват сообщений и сбои в доставке.
Ни обычный TOTP, ни SMS не являются полностью защищенными от фишинга: убедительная поддельная страница входа в систему может перехватить и передать текущий код. Для важных учетных записей, если это поддерживается, обычно более надежным вариантом является использование пароля-ключа или ключа безопасности FIDO. Ознакомьтесь с нашим подробным сравнением приложений-аутентификаторов и SMS.
Что такое секретный ключ TOTP?
Секрет — это долгосрочный учетный данные, лежащий в основе всех будущих кодов для данной регистрации. Любой, кто им владеет, может настроить другой аутентификатор и генерировать соответствующие значения. Скриншот QR-кода настройки является конфиденциальным, поскольку обычно содержит этот секрет.
В нашем руководстве объясняется, где найти ключ для ручной настройки 2FA и как отличить его от пароля или кода восстановления.
Может ли TOTP работать в автономном режиме?
Да. После настройки аутентификатору требуется секретный ключ и точные часы, а не активное подключение к Интернету. Сервису, проверяющему вход в систему, по-прежнему необходим доступ к сохраненной информации о регистрации.
Как безопасно использовать генератор TOTP
- Используйте только секретные ключи, относящиеся к учетным записям, которыми вы уполномочены управлять.
- Перед вводом секретного ключа проверьте адрес веб-сайта и устройство.
- Никогда не отправляйте секретный ключ или QR-код настройки через чат или формы обратной связи.
- Храните коды восстановления отдельно от кода, который вы используете ежедневно.
- Повторно сгенерируйте регистрационный ключ, если секретный ключ мог быть раскрыт.
Для авторизованного тестирования генератор TOTP Get2FA.dev вычисляет стандартные коды в вашем браузере. Для повседневного использования на важных учетных записях отдавайте предпочтение надежному аутентификатору или методу, основанному на аппаратном обеспечении.
Часто задаваемые вопросы
Как долго действует код TOTP?
По умолчанию обычно используется тридцатисекундный интервал, но поставщик может настроить другой период. Обратный отсчёт привязан к временному интервалу; он не перезапускается при просмотре или копировании кода.
Почему коды TOTP обычно состоят из шести цифр?
Шесть цифр обеспечивают баланс между удобством использования и ограниченным количеством возможных значений. Ограничения по частоте запросов и короткие сроки действия важны, поскольку пространство кодов само по себе не велико.
Могут ли два устройства отображать один и тот же TOTP-код?
Да, если на обоих устройствах хранится один и тот же секретный ключ, используются одинаковые настройки и синхронизированы часы. Целесообразность дублирования регистрации зависит от вашей политики безопасности.
TOTP — это то же самое, что и 2FA?
Нет. TOTP — это один из возможных методов аутентификации. Узнайте, что означает 2FA и как работают другие методы.
