HOTP

HOTP

HOTP (HMAC-Based One-Time Password Algorithm) — алгоритм защищенной аутентификации с использованием одноразового пароля (One Time Password, OTP). Основан на HMAC (SHA-1). Является алгоритмом односторонней аутентификации, а именно: сервер производит аутентификацию клиента.

Содержание

История

Алгоритм впервые формально описан командой IETF в декабре 2005.[1][2] Он стал первым реально успешным проектом Initiative for Open Authentication (OATH).[3] Алгоритмы генерации одноразовых паролей получили в это время широкую популярность, в связи с резким развитием мобильной индустрии. Требовался надежный алгоритм, простой в плане реализации. В 2008 году HOTP подарил жизнь более сильному алгоритму Time-based One-time Password Algorithm (TOTP), который во многом наследует черты родителя. В сентябре 2010 на основе TOTP был разработан мощный алгоритм аутентификации OATH Challenge-Response Algorithm (OCRA).[3]

Аналоги и отличия

HOTP генерирует ключ на основе разделяемого секрета и не зависящего от времени счетчика. Поэтому, в отличие от алгоритмов, использующих для вычисления пароля таймер, HOTP защищен от рассинхронизации передающих устройств или слишком большого расстояния между ними (такого расстояния, что ответ от получателя приходит позже, чем истечет время валидности пароля).[1] Алгоритм так же внес инновации в технологию генерации одноразовых паролей. Стойкая по тем временам хеш-функция SHA-1 сочеталась с нетривиальным решением наличия счетчика событий. Эти черты подняли HOTP на один уровень с такими проверенными временем алгоритмами как S/KEY.[3]

Принцип работы

Введем обозначения:

  • K — Секретный ключ, известный только клиенту и серверу;
  • C — Счетчик, длинной 8 байт. Обязательно синхронизирован между сторонами.
  • D — Количество цифр в генерируемом пароле. Зависит от реализации.

Общая схема работы :

HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))

Подробнее:

Генерируем 20 байт информации:

  • HMAC-SHA-1(K,C)

Определенным образом выбираем 4 байта из имеющихся 20:

  • Truncate(HMAC-SHA-1(K,C))

Обрезаем сообщение до нужного размера:

  • toNumber(Truncate(HMAC-SHA-1(K,C))) mod 10^D

Реализации

Объединение OATH, стандартизовав HOTP, не давало никаких указаний по поводу реализации алгоритма. Напротив, свобода разработчиков позволяет находить все новые решения, стремясь удовлетворить потребности заказчика и внести инновационный вклад в технологию OTP.[1][2][4]

Распространенную реализацию HOTP на Java можно найти в пакете org.jboss.security.otp, который входит в стандартные библиотеки свободно распространяемого веб-сервера Apache Jboss.

Еще одна реализация на языке Java представлена непосредственно объединением OATH в пакете org.openauthentication.otp.

Можно также упомянуть реализацию - проект OATH Toolkit, библиотека liboath которого позволяет создавать пароли в режиме HOTP и TOTP.[5]

Большое количество слабо интеллектуальных устройств специально, созданных для генерации паролей или передачи данных с помощью HOTP и TOTP (Feitian,SecuTech,SmartDisplayer,Vasco,Yubico). Алгоритм также используется в домашних сетях для управления периферией с помощью пульта дистанционного управления или мобильного телефона.[2]

Надежность

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

Атака вида "человек посередине" (Man-in-the-middle). Злоумышленник не может подделать пересылаемое сообщение, так как пароль изменяется достаточно часто. Множество методов криптографического анализа становятся при этом малопригодны. В некоторых реализациях счетчик, используемый для создания пароля, меняет значение после каждой пересылки. Если сообщения зашифрованы с использованием достаточно сильного шифра, то HOTP делает подбор пароля почти невозможным.[2]

Атака повторного воспроизведения.Здесь успех зависит от конфигурации самой системы. В случае, например, когда используется сервер аутентификации для предоставления прав на вход пользователя, у атакующего возникает ряд проблем. Сервер после каждого приема сообщения увеличивает значение счетчика на единицу. Поэтому элементарная отправка дубликата сообщения не пройдет проверку - сообщение создавалось с помощью одного значения, а проверка производится другим.[2]

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

В дополнение

HOTP основан на SHA-1, в которой была найдена коллизионная уязвимость, однако, алгоритм использует только факт случайности числа, посчитанного на её основе, поэтому наличие коллизий непосредственно не влияет на его работу.[1][4]

Односторонняя аутентификация подразумевает, что клиент по потребности пытается установить связь. После чего сервер отправляет запрос обратно клиенту и проверяет его ответ на подлинность. Модификация алгоритма OCRA позволяет так же и пользователю провести аутентификацию сервера.[3]

Ссылки

Примечания

  1. 1 2 3 4 «Algorithm agility and OATH» by Burt Kaliski, RSA Laboratories.May 19, 2005.
  2. 1 2 3 4 5 6 «HOTP-Based User Authentication Scheme in Home Networks» by Binod Vaidya, Jong Hyuk Park and Joel J.P.C. Rodrigues. 2009
  3. 1 2 3 4 «OATH: yesterday, today, and tomorrow» by Nathan Willis, December 15, 2010.
  4. 1 2 «Attacks on SHA-1» by Initiative for Open AuTHentication,March 2, 2005.
  5. «Introducing the OATH Toolkit» by Simon Josefsson, 2011.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "HOTP" в других словарях:

  • HOTP — is an HMAC based One Time Password algorithm. It is a cornerstone of Initiative For Open Authentication (OATH).HOTP was published as an Information IETF RFC in December 2005, documenting the algorithm along with a Java implementation. See also *… …   Wikipedia

  • Time-based One-time Password Algorithm — TOTP (Time based One Time Password Algorithm, RFC 6238.) OATH алгоритм создания одноразовых паролей для защищенной аутентификации, являющийся улучшением HOTP (HMAC Based One Time Password Algorithm). Является алгоритмом односторонней… …   Википедия

  • Mair (Ägypten) — Mair in Hieroglyphen …   Deutsch Wikipedia

  • One-time password — A one time password (OTP) is a password that is valid for only one login session or transaction. OTPs avoid a number of shortcomings that are associated with traditional (static) passwords. The most important shortcoming that is addressed by OTPs …   Wikipedia

  • Tauranga — for the electorate see Tauranga (NZ electorate) Infobox Settlement name =Tauranga official name = native name =Tauranga moana (Māori) nickname = settlement type =Metropolitan Area total type =Territorial motto = imagesize = image caption = flag… …   Wikipedia

  • Greymouth — Infobox Settlement name = Greymouth population total = 9,920 population as of = 2007 subdivision type = Country subdivision name = New Zealand subdivision type1= Region subdivision name1= West Coast subdivision type2= District subdivision name2=… …   Wikipedia

  • Security token — Several types of security tokens with a penny for scale …   Wikipedia

  • Otago Regional Council — Country: New Zealand Regional Council Name: Otago Regional Council …   Wikipedia

  • Household income in the United States — For information on the income of individuals, see Personal income in the United States. Median household income in the United States, by county, in 2008 Income in the United States …   Wikipedia

  • KiwiSaver — The KiwiSaver scheme is a New Zealand voluntary long term savings scheme which came into operation from Monday, 2 July 2007. The main purpose of the KiwiSaver fund is for retirement savings.A policy initiative of the Fifth Labour Government of… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»