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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Скретч-карта банка ВТБ24 с одноразовыми паролями

Одноразовый пароль (англ. one time password, OTP) — это пароль, действительный только для одного сеанса аутентификации. Действие одноразового пароля также может быть ограничено определённым промежутком времени. Преимущество одноразового пароля по сравнению со статическим состоит в том, что пароль невозможно использовать повторно. Таким образом, злоумышленник, перехвативший данные из успешной сессии аутентификации, не может использовать скопированный пароль для получения доступа к защищаемой информационной системе. Использование одноразовых паролей само по себе не защищает от атак, основанных на активном вмешательстве в канал связи, используемый для аутентификации (например, от атак типа «человек посередине»).

Человек не в состоянии запомнить одноразовые пароли. Поэтому требуются дополнительные технологии для их корректной работы.

Способы создания и распространения OTP[править | править вики-текст]

Алгоритмы создания OTP обычно используют случайные числа. Это необходимо, потому что иначе было бы легко предсказать последующие пароли на основе знания предыдущих. Конкретные алгоритмы OTP сильно различаются в деталях. Различные подходы к созданию одноразовых паролей перечислены ниже.

  • Использующие математические алгоритмы для создания нового пароля на основе предыдущих (пароли фактически составляют цепочку, и должны быть использованы в определённом порядке).
  • Основанные на временной синхронизации между сервером и клиентом, обеспечивающей пароль (пароли действительны в течение короткого периода времени)
  • Использующие математический алгоритм, где новый пароль основан на запросе (например, случайное число, выбираемое сервером или части входящего сообщения) и/или счётчике.

Также существуют различные способы, чтобы сообщить пользователю следующий пароль. Некоторые системы используют специальные электронные токены, которые пользователь носит с собой, создающие одноразовые пароли и выводящие затем их на маленьком экране. Другие системы состоят из программ, которые пользователь запускает с мобильного телефона. Ещё другие системы генерируют одноразовые пароли на сервере и затем отправляют их пользователю, используя посторонние каналы, такие, как SMS-сообщения. Наконец, в некоторых системах одноразовые пароли напечатаны на листе бумаги или на скретч-карте, которые пользователю необходимо иметь с собой.

Реализация[править | править вики-текст]

Математические алгоритмы[править | править вики-текст]

Один подход, разработанный Лесли Лэмпортом, использует одностороннюю функцию (назовём её f). Система одноразовых паролей начинает работать от начального числа s, затем генерирует пароли

f(s), f(f(s)), f(f(f(s))), …

столько раз, сколько необходимо. Если ищется бесконечная серия паролей, новое начальное число может быть выбрано после того, как ряд для s оказывается исчерпанным. Каждый пароль распределяется в обратном порядке, начиная с f(f(…f(s))…), заканчивая f(s).

Если злоумышленнику удаётся получить одноразовый пароль, он может получить доступ только на один период времени или одно соединение, но это становится бесполезным, когда этот период закончится. Чтобы получить следующий пароль в цепочке из предыдущих, необходимо найти способ вычисления обратной функции f−1. Так как f была выбрано односторонней, то сделать это невозможно. Если f — криптографическая хеш-функция, которая обычно используется, то, насколько известно, это будет вычислительно неосуществимая задача.

Синхронизированные по времени[править | править вики-текст]

RSA SecurID токены

Синхронизированные по времени одноразовые пароли обычно связаны с физическими аппаратными токенами (например, каждому пользователю выдаётся персональный токен, который генерирует одноразовый пароль). Внутри токена встроены точные часы, которые синхронизированы с часами на сервере. В этих OTP-системах время является важной частью алгоритма создания пароля, так как генерация нового пароля основывается на текущем времени, а не на предыдущем пароле или секретном ключе.

В последнее время стало возможным встраивать электронные компоненты, связанные с постоянными токенами-часами, такие, как от ActivIdentity, InCard, RSA, SafeNet, Vasco, VeriSign и Protectimus, в форм-фактор кредитной карты. Однако, так как толщина карты (от 0.79 мм до 0.84мм) не позволяет использовать традиционные элементов батареек, необходимо использовать специальные батарейки, основанные на полимерах, время жизни которых гораздо больше, чем у обычных мини-батареек. Кроме того, должны использоваться крайне маломощные полупроводниковые компоненты для экономии энергии во время режима ожидания и/или использования продукта. В производстве тонких устройств OTP лидируют две компании: Identita и NagraID.

Мобильные телефоны и КПК также могут быть использованы для генерации синхронизированных по времени одноразовых паролей. Этот подход может быть более экономной альтернативой, так как большинство пользователей Интернета уже имеет мобильные телефоны. Кроме того, это может быть более удобно, потому что у пользователя не будет необходимости носить с собой отдельный токен, для каждого безопасного соединения, когда он или она нуждается в доступе.

Запрос[править | править вики-текст]

Использование одноразовых паролей с запросом требует от пользователя обеспечивать синхронизированные по времени запросы, чтобы была выполнена проверка подлинности. Это может быть сделано путём ввода значения в сам токен. Чтобы избежать появления дубликатов, обычно включается дополнительный счётчик, так что если случится получение двух одинаковых запросов, то это всё равно приведёт к появлению разных одноразовых паролей. Однако вычисления обычно не включают предыдущий одноразовый пароль, так как это приведёт к синхронизации задач. EMV начинают использовать такие системы (т. н. «Chip Authentication Program») для кредитных карт в Европе.

Одноразовый пароль через SMS[править | править вики-текст]

Распространённая технология, используемая для доставки одноразовых паролей — это SMS. Так как SMS — это повсеместный канал связи, которая имеется во всех телефонах и используется большим количеством клиентов, SMS-сообщения имеют наибольший потенциал для всех потребителей, обладающие низкой себестоимостью. Токены, смарт-карты и другие традиционные методы аутентификации гораздо более дороги для реализации и для использования и часто встречают сопротивление со стороны потребителей. Они также гораздо более уязвимы для атак типа «человек посередине», в которых фишеры крадут одноразовые пароли обманом или даже потому что одноразовые пароли отображаются на экране токена. Также токены могут быть потеряны и интеграция одноразовых паролей в мобильные телефоны может быть более безопасной и простой, потому что пользователям не придётся носить с собой дополнительные портативные устройства. В то же время одноразовые пароли через SMS могут быть менее безопасны, так как сотовые операторы становятся частью цепи доверия. В случае роуминга надо доверять более чем одному мобильному оператору.

Одноразовый пароль на мобильном телефоне[править | править вики-текст]

По сравнению с аппаратной реализацией токена, которая требует, чтобы пользователь имел с собой устройство-токен, токен на мобильном телефоне существенно снижает затраты и предлагает беспрецедентный уровень удобства. Это решение также уменьшает материально-технические требования, так как нет необходимости выдавать отдельное устройство каждому пользователю. Мобильные токены, такие, как FiveBarGate, FireID или PROTECTIMUS SMART дополнительно поддерживают некоторое число токенов в течение одной установки приложения, позволяя пользователю аутентифицироваться на нескольких ресурсах с одного устройства. Этот вариант также предусматривает специфические приложения для разных моделей телефонов пользователя. Токены в мобильных телефонах также существенно более безопасны, чем OTP по SMS, так как SMS отправляются по сети GSM в текстовом формате с возможностью перехвата.

Сравнение технологий[править | править вики-текст]

С точки зрения затрат, самыми дешёвыми решениями являются распространение одноразовых паролей на бумаге, скретч-карте или генератор одноразовых паролей на мобильном телефоне. Это так, потому что эти системы исключают затраты, связанные с (пере-)выдачей электронных токенов и стоимостью SMS сообщений.

Для систем, которые опираются на электронные токены, не синхронизованные по времени системы, должны решить проблему, когда сервер и токен сбиваются с синхронизации. Это приводит к дополнительным затратам на разработку. С другой стороны, они позволяют избегать расходов на часы в электронных токенах (и коррекцию их значений с учётом временного дрейфа).

Одноразовые пароли также уязвимы для «выуживания» (фишинга). В конце 2005 года у пользователей Банка Швеции обманом выманили их одноразовые пароли[1]. Даже синхронизированные по времени пароли уязвимы для фишинга, если взломщик успевает достаточно быстро воспользоваться паролем. Это было замечено в 2006 году по атаке на пользователей Citibank в США[2].

Хотя одноразовые пароли являются более безопасными, чем обычные пароли, использование систем OTP всё ещё уязвимо для атак типа «человек посередине». Поэтому одноразовые пароли не должны передаваться третьей стороне. Синхронизирован ли одноразовый пароль по времени, в основном, никак не влияет на степень уязвимости. Основанные на запросе одноразовые пароли тоже являются уязвимыми, хотя успешная атака требует от злоумышленника чуть более активных действий, чем для других типов OTP.

Стандартизация[править | править вики-текст]

Запатентовано множество технологий OTP. Это делает стандартизацию в этой области ещё более трудной, так как каждая компания пытается протолкнуть свою собственную технологию. Стандарты, тем не менее, существуют, например, RFC 2289[3] и RFC 4226 (HOTP).

OTP в рамках банковского дела[править | править вики-текст]

В некоторых странах одноразовые пароли используются для удалённого использования банков. В некоторых из этих систем банк посылает пользователю пронумерованный список одноразовых паролей, напечатанный на бумаге. Для каждой удалённой транзакции пользователь должен ввести соответствующий одноразовый пароль из этого списка. В Германии эти пароли обычно называют TAN-кодом (от «transaction authentication numbers»). Некоторые банки отправляют TAN-коды пользователю с помощью SMS, и в этом случае они называются mTAN-коды (от «mobile TANs»).

Связанные технологии[править | править вики-текст]

Чаще всего одноразовые пароли являются олицетворением двухфакторной аутентификации. Некоторые Технологии единого входа[4] системы используют одноразовые пароли. OTP технология так же используется в токенах безопасности.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]

Поставщики решений одноразовых паролей: