OTP (One-Time Password) — это одноразовый пароль или код, который подтверждает вход в аккаунт, платеж, перевод или другое действие. В отличие от обычного пароля, такой код нельзя использовать постоянно. После успешного подтверждения или окончания установленного срока он становится недействительным.

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

Одноразовый код создает дополнительный барьер между учетной записью и человеком, который пытается получить к ней доступ. Но сам по себе OTP не гарантирует полную защиту. Если пользователь продиктует действующий код мошеннику или введет его на поддельном сайте, злоумышленник может успеть воспользоваться им до истечения срока действия.

Как работает одноразовый пароль

Обычно пользователь сначала совершает действие, которое требует подтверждения. Например, входит в интернет-банк с нового устройства или отправляет перевод.

Система создает одноразовый код и передает его пользователю выбранным способом. Это может быть SMS, приложение-аутентификатор, банковское приложение или специальное устройство.

Пользователь вводит полученный код. Система проверяет, совпадает ли он с ожидаемым значением, не закончился ли срок действия и не использовался ли этот пароль раньше.

Если проверка проходит успешно, действие подтверждается. Тот же код повторно обычно уже не принимается.

Таким образом, ценность OTP строится на двух свойствах: ограниченном времени действия и невозможности использовать один и тот же пароль снова и снова.

Пример использования OTP в банке

Допустим, клиент хочет перевести 150 000 ₸ другому человеку через интернет-банк.

Он указывает получателя и сумму, проверяет реквизиты и переходит к подтверждению. Банк отправляет одноразовый код на зарегистрированный номер телефона либо предлагает подтвердить действие другим предусмотренным способом.

Клиент вводит код, после чего система проверяет его и продолжает обработку перевода.

В этой ситуации OTP подтверждает не просто присутствие пользователя в банковском сервисе. Код может быть связан с конкретным действием, которое совершается в этот момент.

Именно поэтому перед вводом кода важно посмотреть, что написано в сообщении или на экране. Если код пришел для подтверждения перевода, который человек не совершал, вводить его нельзя.

Какими бывают одноразовые коды

OTP — это общее название. Конкретный способ получения или создания одноразового пароля может отличаться.

Вариант Как пользователь получает код Особенности
SMS-код Приходит в сообщении на номер телефона Прост и привычен, но зависит от мобильной связи и безопасности номера
TOTP Генерируется приложением-аутентификатором Регулярно меняется и не требует получения SMS
HOTP Создается программным или аппаратным токеном Новое значение связано с изменением счетчика событий
Аппаратный OTP Показывается на специальном устройстве Для получения кода используется отдельный физический токен

Для обычного пользователя внутренний способ генерации часто не имеет большого значения. Важно другое: код предназначен для конкретной проверки и имеет ограниченный срок или область действия.

Что такое TOTP

TOTP расшифровывается как Time-Based One-Time Password. Это одноразовый пароль, который меняется в зависимости от времени.

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

Пользователь видит на экране несколько цифр. Через небольшой промежуток времени появляется новый код, а предыдущий перестает подходить.

Один из распространенных стандартов TOTP описан в RFC 6238. В нем базовым значением временного интервала являются 30 секунд, хотя конкретная реализация сервиса может отличаться.

Главное удобство TOTP заключается в том, что для появления нового кода приложению не нужно каждый раз получать SMS.

Что такое HOTP

HOTP расшифровывается как HMAC-Based One-Time Password. Здесь новое значение зависит не от текущего времени, а от счетчика событий.

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

Алгоритм HOTP описан в RFC 4226 и стал основой, на которой позднее был построен TOTP.

Разбираться в этих алгоритмах для безопасного использования интернет-банка обычно не требуется. Пользователю достаточно понимать, что разные сервисы могут создавать одноразовые пароли разными способами.

Насколько безопасен OTP

Одноразовый пароль значительно усложняет использование украденных постоянных учетных данных. Если злоумышленник узнал пароль от аккаунта, ему может потребоваться еще и актуальный код.

Однако у OTP есть ограничения.

Особенно уязвима ситуация, когда сам пользователь передает код другому человеку. Система не знает, кто физически нажимает кнопки. Если мошенник уже начал вход или перевод и получил от жертвы действующий OTP, он может попытаться завершить действие от ее имени.

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

Это не означает, что SMS-коды бесполезны. Они по-прежнему создают дополнительный уровень защиты по сравнению с ситуацией, когда для доступа достаточно только постоянного пароля.

Почему код нельзя сообщать сотруднику банка

Одна из самых распространенных мошеннических схем строится именно вокруг одноразовых кодов.

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

На самом деле мошенник в это время может совершать операцию самостоятельно, а код требуется ему для последнего этапа подтверждения.

Поэтому OTP нельзя диктовать человеку только потому, что он знает имя клиента, название банка, последние цифры карты или другую информацию.

Если звонок вызывает сомнения, безопаснее прекратить разговор и самостоятельно связаться с банком по номеру из официального приложения, с банковской карты или официального сайта.

Как пользоваться OTP безопаснее

Главное правило довольно простое: код следует использовать только для действия, которое пользователь начал самостоятельно.

Перед вводом OTP полезно проверить:

  • находитесь ли вы в официальном приложении или на настоящем сайте;
  • какое именно действие подтверждает код;
  • совпадает ли сумма платежа или перевода;
  • правильно ли указан получатель;
  • не просит ли посторонний человек сообщить или переслать код.

Не стоит отправлять скриншоты сообщений с OTP, пересылать их в мессенджеры или вводить код по ссылке, полученной от неизвестного отправителя.

Если человек сам ничего не запрашивал, одноразовый код лучше воспринимать не как приглашение что-то подтвердить, а как повод проверить безопасность аккаунта.

Что важно знать об OTP

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

Одноразовый код обычно живет недолго и после использования перестает работать. Это отличает его от постоянного пароля и снижает риск повторного применения украденных данных.

При этом основная слабость OTP связана не только с технологиями, но и с социальной инженерией. Даже правильно работающая система не сможет защитить операцию, если человек самостоятельно передаст действующий код мошеннику.

Поэтому безопасное использование OTP начинается не с запоминания технических терминов, а с простой привычки: перед вводом кода всегда проверять, что именно вы сейчас подтверждаете.

При сравнении финансовых условий также учитывают MFA, Фишинг, SCA, eKYC, AML, Дроппер, Liveness Detection и Tokenization.