Одноразовый пароль: генерация и применение¶
Одноразовый пароль (One-Time Password, OTP) — это автоматически генерируемый набор символов (обычно цифр или буквенно-цифровая последовательность), действительный для однократного использования в рамках одной процедуры аутентификации или подтверждения транзакции. В отличие от статических паролей, которые остаются неизменными до момента их смены пользователем, OTP действителен в течение короткого промежутка времени или до первого использования, что существенно снижает риски, связанные с перехватом данных, фишингом и повторным использованием скомпрометированных учётных данных.
¶Методы генерации
Существует два основных подхода к генерации одноразовых паролей: синхронный и асинхронный.
¶Синхронные методы (TOTP и HOTP)
Синхронная генерация предполагает, что и сервер, и клиентское устройство используют общий секретный ключ (seed) и одинаковый алгоритм вычисления.
- HOTP (HMAC-Based OTP) — алгоритм, основанный на хешировании счётчика событий. Каждый раз при запросе пароля счётчик увеличивается на единицу, а значение пароля вычисляется как функция от этого счётчика и секретного ключа с использованием HMAC-SHA1. Сервер допускает небольшую рассинхронизацию счётчика (обычно до 100 шагов вперёд), что позволяет компенсировать случайные нажатия кнопки генерации.
- TOTP (Time-Based OTP) — модификация HOTP, где вместо счётчика используется текущее время, разделённое на фиксированный временной интервал (шаг), чаще всего 30 секунд. Пароль действителен только в течение этого окна. Алгоритм описан в стандарте RFC 6238 и является основой работы большинства приложений-аутентификаторов (Google Authenticator, Яндекс Ключ).
¶Асинхронные методы
Асинхронная генерация не требует синхронизации состояния между сервером и клиентом.
- Матричные карты (Grid Cards) — выдача пароля на основе случайно выбранных координат (например, строка и столбец) из таблицы, которая есть у пользователя и на сервере.
- Список одноразовых паролей (OTS) — предварительно сгенерированный сервером список паролей, который выдаётся пользователю (часто в виде бумажного буклета). Каждый пароль из списка используется строго один раз в порядке очереди.
¶Способы доставки
Одноразовые пароли доставляются пользователю различными каналами, выбор которых зависит от уровня безопасности и удобства:
- SMS-сообщения — наиболее распространённый способ. Код отправляется на мобильный телефон пользователя. Минусом является уязвимость к перехвату через SS7-протоколы и социальную инженерию (подмена SIM-карты).
- Электронная почта — используется для подтверждения действий в веб-сервисах, однако менее безопасен, чем SMS, из-за риска взлома почтового ящика.
- Мобильные приложения-аутентификаторы — генерируют TOTP-коды локально на устройстве без передачи данных по сети, что исключает перехват в момент доставки.
- Аппаратные токены — физические устройства (например, RSA SecurID), которые отображают код на небольшом дисплее. Считаются наиболее надёжным методом, так как секретный ключ хранится в защищённом чипе.
- Push-уведомления — сервер отправляет запрос на подтверждение в приложение, а пользователь подтверждает вход без ввода кода (однако в некоторых реализациях требуется ввести OTP, отображаемый в приложении).
¶Применение
OTP используется в сценариях, где требуется повышенная гарантия подлинности пользователя, чаще всего в рамках двухфакторной аутентификации (2FA).
- Банковские операции — подтверждение переводов, вход в интернет-банк, оплата покупок в интернете. В России использование OTP в банковской сфере регулируется стандартами Банка России и является обязательным для многих операций.
- Корпоративные системы — VPN-доступ, удалённый рабочий стол, почтовые сервисы для сотрудников.
- Государственные порталы — подтверждение входа на портал «Госуслуги» и в личные кабинеты налоговой службы.
- Электронная коммерция — подтверждение оформления заказа или изменения данных аккаунта.
¶Преимущества и недостатки
Главным преимуществом OTP является невозможность повторного использования украденного пароля: даже если злоумышленник перехватит код, он станет недействительным через несколько секунд или после первой попытки входа. Это также защищает от атак «человек посередине» и кейлоггеров.
К недостаткам относят зависимость от канала доставки (при отсутствии связи SMS не придёт), задержки при доставке сообщений и риск фишинга, когда пользователя обманом заставляют ввести актуальный код на поддельном сайте. TOTP-коды уязвимы к атакам реального времени (real-time phishing), когда злоумышленник немедленно использует полученный код для входа.
¶Хранение и безопасность
Секретные ключи для генерации OTP должны храниться на сервере в зашифрованном виде, а при передаче клиенту — только через защищённый канал (TLS). При использовании SMS-шлюзов необходимо учитывать требования регуляторов о защите персональных данных. В случае утери устройства с установленным аутентификатором предусматриваются резервные коды восстановления, которые выдаются пользователю при первичной настройке.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


