Lt304888.ru

Туристические услуги

Time-based One-time Password Algorithm

11-10-2023

Перейти к: навигация, поиск

TOTP (Time-based One Time Password Algorithm, [1] При этом обычно используется не точное указание времени, а текущий интервал с установленными заранее границами (например, 30 секунд).

История

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

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

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

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

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

  • - дискретное значение времени, используемое в качестве параметра
  • - интервал времени, в течении которого действителен пароль
  • - начальное время (для синхронизации сервера и клиента)

Тогда

Реализации

  • Компания Google реализовала версию TOTP в Google Authenticator;
  • Amazon Web Services также поддерживает TOTP для входа AWS консоль [5];
  • Dropbox использовала TOTP для доступа к серверу[6] ;
  • LastPass поддерживает TOTP использованием Google Authenticator;
  • библиотека liboath для создания как TOTP, так и HOTP паролей.[7]

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

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

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

Атака повторного доступа практически невозможна потому, что по истечению промежутка времени при любых других одинаковых параметрах пароль будет уже другим и доступ не сможет быть получен.

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

Некоторые факты

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

HOTP, TOTP, OCRA просты в реализации, но существует менее десятка продуктов с открытым кодом, которые реализуют какой-либо из них - что ставит их на один уровень с S/KEY и другими более старыми стандартами OTP.[1]

Примечания

  1. ↑ OATH: yesterday, today, and tomorrow.
  2. OTP and Challenge/Response Algorithms for Financial and e-Government Identity Assurance: Current Landscape and Trends
  3. OATH Submits TOTP: Time-Based One Time Password Specification to IETF.
  4. ↑ КОНЦЕПЦИЯ ОДНОРАЗОВЫХ ПАРОЛЕЙ В ПОСТРОЕНИИ СИСТЕМЫ АУТЕНТИФИКАЦИИ.
  5. AWS Multi-Factor Authentication.
  6. Another layer of security for your Dropbox account.
  7. Introducing Support for Google Authenticator.

Ссылки

  • RFC 6238
  • OTP Oath HOTP TOTP PSKS DSKPP.
  • HOTP
  • OTP

Time-based One-time Password Algorithm.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01