Определение
Одноразовый пароль (OTP) — это короткий код, действительный для одного входа или одной транзакции, обычно в течение нескольких минут. Компании отправляют его по SMS, в WhatsApp, голосовым звонком или по электронной почте либо генерируют в приложении-аутентификаторе, чтобы убедиться, что пользователь контролирует номер, почтовый ящик или устройство.
OTP-коды либо генерируются по алгоритму, общему для обеих сторон (HOTP, RFC 4226, на основе счётчика; TOTP, RFC 6238, на основе времени, как в приложениях-аутентификаторах), либо создаются сервером случайным образом и доставляются через канал обмена сообщениями. Для OTP, отправляемых в мессенджерах и по SMS, сервер хранит хеш кода, срок его действия и счётчик попыток.
Рекомендуемая практика: 4–8 цифр, короткий срок действия, ограничение числа неверных попыток, пауза перед повторной отправкой и запрет на повторное использование кода. Делайте сообщение коротким, ставьте код ближе к началу, указывайте бренд и добавляйте предупреждение не сообщать код другим. Никогда не добавляйте в сообщение с OTP рекламный контент.
Выбор канала имеет значение. SMS доходит почти до любого телефона; аутентификационные шаблоны (authentication) WhatsApp поддерживают copy-code, one-tap и zero-tap автозаполнение на Android; голосовой OTP доступен на стационарных телефонах и тем, кто не может прочитать экран. Многие компании используют резервный канал (fallback), например: сначала WhatsApp, затем SMS, затем голосовой звонок.
Эндпоинты OTP часто становятся целью SMS pumping (искусственной накрутки трафика). Ограничивайте частоту запросов по номеру телефона, IP-адресу и устройству, закрывайте направления, в которых вы не работаете, и следите за долей кодов, которые действительно вводят пользователи.
OmniChannels.ai отправляет OTP по SMS, через аутентификационные шаблоны WhatsApp (one-tap, zero-tap и copy-code) и голосом.
Пример
482917 — ваш код подтверждения Acme. Он действует 5 минут. Никому его не сообщайте.