Interested Article - Time-based One-time Password Algorithm

TOTP ( Time-based One-Time Password Algorithm , ) — - алгоритм создания одноразовых паролей для защищенной аутентификации , являющийся улучшением HOTP (HMAC-Based One-Time Password Algorithm) . Является алгоритмом односторонней аутентификации — сервер удостоверяется в подлинности клиента . Главное отличие TOTP от HOTP — это генерация пароля на основе времени, то есть время является параметром . При этом обычно используется не точное указание времени, а текущий интервал с установленными заранее границами (обычно — 30 секунд).

История

С 2004 года ( ) трудилась над проектом одноразовых паролей (OTP). Первым результатом был HOTP (the Hash-based Message Authentication Code (HMAC) OTP algorithm), опубликованный в декабре 2005 года. Он был представлен как проект IETF (The Internet Engineering Task Force) .

Дальнейшая работа OATH шла на улучшение HOTP и в 2008 году был представлен TOTP . Этот алгоритм не использует счетчик для синхронизации клиента и сервера, а генерирует пароль в зависимости от времени, который действителен в течение некоторого интервала. Алгоритм действует так: клиент берет текущее значение таймера и секретный ключ, хеширует их с помощью какой-либо хеш-функции и отправляет серверу, в свою очередь сервер проводит те же вычисления после чего ему остается только сравнить эти значения . Он может быть реализован не только на хеш-функции SHA-1 , в отличие от HOTP, поэтому хеш-функция также является входным параметром .

Позднее был представлен новый алгоритм, расширяющий TOTP ещё больше. Он был представлен в сентябре 2010 года и назван OATH Challenge-Response Algorithms (OCRA) . Главное отличие от предыдущих алгоритмов заключается в том, что в проверке подлинности участвует и сервер. Так что клиент может быть также уверен в его подлинности .

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

По сути, TOTP является вариантом HOTP алгоритма, в котором в качестве значения счетчика подставляется величина, зависящая от времени . Обозначим:

  • — дискретное значение времени, используемое в качестве параметра (измеряется в единицах , 8 байтов)
  • — интервал времени, в течение которого действителен пароль (по умолчанию — 30 сек.)
  • — начальное время, необходимое для синхронизации сторон (по умолчанию — время от начала UNIX-эры )
  • — разделяемый секрет
  • — текущее время.

Тогда

где

обозначим String — результат HMAC-SHA-1(K,T); OffsetBits — младшие 4 бита строки String ; Offset = StringToNumber(OffsetBits) и результатом Truncate будет строка из четырёх символов — String[Offset] String[Offset + 3] .

Также стоит отметить что в отличие от HOTP, который основан только на SHA-1 , TOTP может также использовать HMAC-SHA-256 , HMAC-SHA-512 и другие HMAC-хеш-функциях:

и т. д.

Надежность алгоритма

Концепция одноразовых паролей вкупе с современными криптографическими методами может использоваться для реализации надежных систем удаленной аутентификации . TOTP достаточно устойчив к криптографическим атакам, однако вероятности взлома есть, например возможен такой вариант атаки «человек посередине» :

Прослушивая трафик клиента, злоумышленник может перехватить посланный логин и одноразовый пароль (или хеш от него). Затем ему достаточно блокировать компьютер «жертвы» и отправить аутентификационные данные от собственного имени. Если он успеет это сделать за промежуток времени , то ему удастся получить доступ. Именно поэтому стоит делать небольшим. Но если время действия пароля сделать слишком маленьким, то в случае небольшой рассинхронизации клиент не сможет получить доступ .

Также существует уязвимость связанная с синхронизацией таймеров сервера и клиента, так как существует риск рассинхронизации информации о времени на сервере и в программном и/или аппаратном обеспечении пользователя. Поскольку TOTP использует в качестве параметра время, то при не совпадении значений все попытки пользователя на аутентификацию завершатся неудачей. В этом случае ложный допуск чужого также будет невозможен. Стоит отметить что вероятность такой ситуации крайне мала .

См. также

Примечания

  1. .
  2. .
  3. .
  4. .
  5. .
  6. .

Источники

  • Nathan Willis. (англ.) // LWN.net : электронный журнал. — 2010.
  • Joann Killeen, Madison Alexander. (англ.) . 23 января 2013 года.
  • , , , , (англ.) IETF , 2005. — 37 p. —
  • // — США: 2006. — вып. 7-8 (95), июль-август. — ISSN ;
  • , , (англ.) // : Third International Conference and Workshops, ISA 2009, Seoul, Korea, June 25-27, 2009. Proceedings — Berlin, Heidelberg, New York City, London: , 2009. — P. 672—681. — ( ; Vol. 5576) — ISBN 978-3-642-02616-4 , 978-3-642-02617-1 — ISSN ; —
  • , , , (англ.) IETF , 2011. — 16 p. —

Ссылки

  • . Архивировано из 24 января 2013 года.


Источник —

Same as Time-based One-time Password Algorithm