Система одноразовых паролей HOTP (HMAC-based One-Time Password System) была разработана в 2005 году в рамках инициативы группы открытой аутентификации OATH (Open AuTHentification) и описана в документе RFC 4226. Данная система основана на концепции OTP-аутентификации с синхронизацией по событию (см. п. "Метод "синхронизация по событию"). Для генерации одноразового пароля используется алгоритм HMAC (Hashed Message Authentication Code).
Этот алгоритм публичен и доступен для изучения любыми специалистами. Он обеспечивает возможность использования с ключами широкого спектра программного обеспечения, в том числе и серверного.
Система HOTP предусматривает возможность задания "окна" попыток аутентификации и
синхронизацию сервера аутентификации с OTP-токеном после успешного прохождения
аутентификации.
Значение одноразового пароля вычисляется по формуле:
HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
где:
K — секретный ключ;
C — счётчик числа прохождений процедуры аутентификации;
HMAC-SHA-1 — процедура генерации HMAC, основанная на функции хэширования SHA-1;
Truncate — процедура усечения 20-тибайтного значения HMAC-SHA-1 до 4-х байт.
Подробное описание алгоритма генерации одноразового пароля приведено в Приложении 1 "Описание алгоритма генерации и проверки OTP".