Одноразовый пароль

Материал из Power Security Support Wiki
Перейти к: навигация, поиск

Основное

OTP — one-time password, пароль, который может быть использован в процессе аутентификации только один раз.

Основная цель использования одноразовых паролей — предотвращение атак «запись-воспроизведение», которым подвержены просты статические пароли.

Одноразовый пароль — это результат некоторой математической функции (алгоритма), которая может быть реализована в виде портативного устройства (аппаратная реализация, генератор одноразовых паролей, OTP-генератор), программы для компьютера или мобильного телефона (программная реализация) , в виде микропрограммы для EMV-чипа банковской карты (технологии CAP/DPA от MasterCard и Visa соответственно) или реализована в микрочипе, встроенного в пластик EMV-карточки (например, решения NagraID)


Группы алгоритмов

Существует две группы алгоритмов генерации одноразовых паролей:

  1. Синхронное
  2. Асинхронное

Синхронные алгоритмы

Название подсказывает, алгоритм генерации одноразового пароля предполагает, что некоторые параметры (на проверяющем сервере и клиентском устройстве, например OTP-генераторе) находятся в синхронном состоянии.

Существует 2 параметра генерации одноразовых паролей: время и событие.

Алгоритмы на основе времени

В качестве элемента, отвечающего за динамику, используется дискретное значение времени. Примером такого алгоритма является OATH TOTP

Алгоритмы на основе события

Каждый раз, когда пользователь инициирует генерацию OTP, происходит увеличение счетчика событий в генераторе. Значение этого счётчика и есть то значение (количество событий генерации), на основе которого рассчитывается одноразовый пароль . Примеров такого алгоритма является OATH HOTP

Смешанные алгоритмы

Так как оба алгоритма (основанные и на времени, и на событии) имеют недостатки, были разработаны мешанные алгоритмы, использующие одновременно и дискретное состояние времени, и состояние счетчика событий. OATH еще не разработал и не стандартизовал такой алгоритм, поэтому смешанные алгоритмы следует искать только среди проприетарных, например Vasco и ActivIdentity

Асинхронные

синоним названия. Здесь в качестве переменной, вместо состояния времени или счетчика событий, используется «запрос», получаемый с сервера. Запрос вводится в генератор, пропускается через алгоритм, результатом которого является «ответ» — он и используется как одноразовый пароль. Примером асинхронного алгоритма генерации OTP является алгоритм OATH OCRA