auth
OTP (One-Time Password)
Also known as: одноразовый код, код подтверждения, OTC
Короткий одноразовый пароль, сгенерированный для одной попытки аутентификации, обычно из 4–8 цифр, используемый как второй фактор или подтверждение вне зоны аутентификации.
OTP (одноразовый пароль) — это короткая строка аутентификации, действительная ровно для одного входа или транзакции. После использования или истечения короткого временного окна её невозможно повторно использовать. OTP разработаны для снижения риска переиспользования пароля и перехвата учётных данных: даже если OTP будет перехвачен при передаче, он теряет ценность после использования.
OTP существуют в двух основных формах. HOTP (HMAC-based One-Time Password, RFC 4226) генерирует коды из счётчика, увеличиваемого на обеих сторонах — на сервере и на клиенте. Каждая успешная аутентификация увеличивает счётчик, поэтому коды генерируются в детерминированной, но неповторяющейся последовательности. TOTP (Time-based One-Time Password, RFC 6238) заменяет счётчик текущим временем, разделённым на дискретные окна обычно по 30 секунд. Обе схемы используют общий секрет и HMAC-SHA1 (иногда SHA256 или SHA512) для вычисления видимых цифр из базовых данных.
На практике доставка OTP происходит несколькими способами:
- SMS: сервер генерирует случайный короткий код, отправляет его через сеть оператора, и пользователь вводит его в форму входа. Это наиболее распространённый и наименее безопасный способ.
- Email: аналогично SMS, но доставляется в почтовый ящик, медленнее и немного безопаснее.
- Приложение-аутентификатор: TOTP-код генерируется локально на устройстве с использованием секрета, обменянного при регистрации.
- Push-уведомление: запрос на однотактное подтверждение на зарегистрированное устройство.
- Аппаратный токен: специальное устройство (RSA SecurID, YubiKey), отображающее или передающее код.
OTP являются строительным блоком 2FA и дополнительной аутентификации. Безопасность системы OTP полностью зависит от секретности исходного материала и целостности канала доставки — OTP, отправленный по SMS на номер, повреждённый SIM-подменой, не обеспечивает реальную защиту. Локально генерируемые TOTP-коды безопаснее, так как в них отсутствует канал доставки для перехвата.
Современные веб-стандарты (WebAuthn, passkeys) постепенно вытесняют OTP, так как OTP остаются уязвимыми к фишингу: пользователя можно обманом заставить ввести OTP на поддельную страницу входа, а злоумышленник может повторить его в течение периода действия. Несмотря на это, OTP через SMS или приложение-аутентификатор остаётся стандартом де факто для двухфакторной аутентификации на потребительском веб-рынке в 2026 году.
Example
Введите 6-значный OTP, который мы только что отправили на ваш телефон, чтобы завершить вход.