logo
Лекции / Малов / Другие сети от другого Малова / 09) аутентификация

1.5. Одноразовые пароли

Назначение схемы одноразовых паролей — противодействие угрозе несанкционированного воспроизведения. Суть схемы — использование различных паролей в каждом новом запро­се на предоставление доступа. Известны следующие способы реализации идеи одноразовых паролей:

• общий для легального пользователя и проверяющего список случайных паролей и на­дежный механизм их синхронизации;

• общий генератор случайных чисел, с одним и тем же начальным значением для поль­зователя и проверяющего;

• механизм временных меток на основе системы единого времени.

Рассмотрим схему на основе персонального генератора паролей (рис. IX.6).

Предположим, что описанные в предыдущих разделах функции реализованы в миниатюрном персональном устройстве с дисплеем. Устройство генерирует и выводит на дисплей некоторое значение г'. Затем выданное значение используется в качестве пароля и передается проверяющему по открытому каналу связи.

Персональное устройство имеет секретный ключ key.

Предполагается, что:

• секретный ключ key недоступен благодаря технологическому уровню реализации устройства;

• устройство функционирует в системе единого времени с проверяющим.

Для получения досту­па легальный пользова­тель вводит в персональ­ное устройство пароль р'. Устройство выводит на дисплей значение т' = h3(t + key + hi(p' + key)), вычисленное при помо­щи хэш-функций hi и /»3, где tвременная метка. Затем значение г' вме­сте с идентификатором id передается проверяю­щему по открытому ка­налу связи. База данных проверяющего для каж­дого id содержит секретный ключ key и значение q = h\(p + key). Положительное решение о предоставлении доступа принимается в случае г' = /г2(<? + key + t). Схема имеет следующие преимущества:

• атака невозможна, если злоумышленник знает пароль р, но не имеет доступа к устрой­ству;

• атака невозможна, если злоумышленник имеет доступ к устройству, но не знает пароляр;

• атака невозможна, если злоумышленник знает q (например, утечка информации из базы данных), но не знает ключа key;

• защита от несанкционированного воспроизведения запроса (id, r') гарантирована бла­годаря механизму временных меток.

Дополнительная безопасность обеспечивается за счет периодической смены пароля р (и соот­ветственно q в базе данных проверяющего), хотя персональное устройство и ключ key могут оставаться без изменения в течение длительного времени.

Другой вариант реализации идеи одноразовых паролей предложен в схеме S-Key [100].

На начальном этапе легальный пользователь случайно выбирает некоторое число г и для заданного системного параметра п при помощи рекурсивного хэширования вычисляет фи­нальное значение wq:

wq = h(h(... h(h(wn))...)), где h(x) — некоторая хэш-функция, wn = r.

Значение wq вместе с параметром п и идентификатором id передается проверяющему по аутентичному каналу связи. Проверяющий записывает WQ,n,id в базу данных. На этом заканчивается начальный этап формирования параметров схемы одноразовых паролей.

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

wi = h(h(...h(h(wn))...))

(n-l) рази передает его проверяющему по открытому каналу связи.

Проверяющий, в свою очередь, вычисляет значение w'0 = h(wi). Положительное решение о предоставлении доступа принимается в случае равенства текущего одноразового пароля и пароля из базы данных: w'Q = wq. По факту положительного решения проверяющий выпол­няет корректировку базы данных: записывает w\ вместо wq и (и — 1) вместо п.

При следующем запросе легальный пользователь вычисляет одноразовый пароль(п-2) раз.

В случае w\ = /г(гу2) проверяющий обновляет базу данных: вычитает единицу из п и запи­сывает текущий одноразовый пароль Wj+1 вместо предыдущего Wi (u>2 вместо w\ и т.д.).

Таким образом, при каждом новом запросе используется уникальный пароль. При п = О параметры схемы генерируются заново. Основная цель злоумышленника заключается в раскрытии следующего одноразового пароля wi+i по текущему Wj, то есть сводится к вычислительно-трудоемкой задаче обращения хэш-функции Wj+i = h~l(wi).