Идея использования одноразовых паролей

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

Одноразовые пароли (One-Time Passwords, OTP) — динамическая аутентификационная информация, генерируемая для единичного использования с помощью аутентификационных OTP-токенов (программных или аппаратных).

OTP неуязвим для атаки сетевого анализа пакетов, что является значительным преимуществом перед запоминаемыми паролями. Несмотря на то, что злоумышленник может перехватить пароль методом анализа сетевого трафика, поскольку пароль действителен лишь один раз и в течение ограниченного промежутка времени, у злоумышленника в лучшем случае есть весьма ограниченная возможность представиться пользователем посредством перехваченной информации.

Для того чтобы сгенерировать одноразовый пароль, необходимо иметь OTP-токен.

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

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

􀁺 для активации OTP-токена;

􀁺 в качестве дополнительной информации, используемой при генерации OTP;

􀁺 для предъявления серверу аутентификации вместе с OTP.

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

Варианты реализации одноразовых паролей

Существует два основных варианта реализации схемы одноразовых паролей:

􀁺 Использование разделяемого списка.

􀁺 Вычисление OTP на стороне клиента.

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

Вместе с тем, в настоящее время разработано несколько методов реализации технологии

одноразовых паролей, исключающих указанные недостатки. В их основе лежит вычисление OTP на стороне клиента и испльзование различных криптографических алгоритмов.

Суть метода с вычислением OTP на стороне клиента состоит в следующем:

1. Клиент и сервер имеют разделяемый "секрет".

2. В процессе аутентификации клиент "доказывает" обладание "секретом", не разглашая его.

3. При аутентификации используются криптографические алгоритмы:

􀁺 Функции хэширования.

􀁺 Симметричные алгоритмы (криптография с одним ключом) — в этом случае пользователь и сервер аутентификации используют один и тот же секретный ключ.

􀁺 Асимметричные алгоритмы (криптография с открытым ключом) — в этом случае в устройстве хранится закрытый ключ, а сервер аутентификации использует соответствующий открытый ключ.

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

полученный им и присланный от клиента. Если результаты совпадают, то пользователь проходит процедуру аутентификации.

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

􀁺 Асинхронный режим — метод "запрос-ответ".

􀁺 Синхронный режим:

􀁺 метод "только ответ";

􀁺 метод "синхронизация по времени";

􀁺 метод "синхронизация по событию".

Метод "запрос-ответ"

В методе "запрос-ответ" OTP является ответом пользователя на случайный запрос от

аутентификационного сервера (рис. 1).

Рис. 1. Метод "запрос-ответ"

Пример прохождения пользователем процедуры аутентификация при использовании

аутентификационным токеном метода "запрос-ответ":

1. Пользователь (Вадим) вводит своё имя пользователя на рабочей станции.

2. Имя пользователя передаётся по сети в открытом виде.

3. Сервер аутентификации генерирует случайный запрос ("32415926").

4. Запрос передаётся по сети в открытом виде.

5. Вадим вводит запрос в свой OTP-токен.

6. Аутентификационный токен шифрует запрос с помощью секретного ключа Вадима ("cft6yhnj"), в результате получается ответ ("27182818"), и он отображается на экране.

7. Вадим вводит этот ответ на рабочей станции.

8. Ответ передаётся по сети в открытом виде.

9. Аутентификационный сервер находит запись пользователя (Вадима) в аутентификационной базе данных и с использованием хранимого им секретного ключа пользователя зашифровывает тот же запрос.

10. Сервер сравнивает представленный ответ от пользователя ("27182818") с вычисленным им самим ответом ("27182818"). В случае совпадения значений аутентификация считается успешной.

Метод "только ответ"

В методе "только ответ" аутентификационное устройство и сервер аутентификации генерируют "скрытый" запрос, используя значения предыдущего запроса. Для начальной инициализации данного процесса используется уникальное случайное начальное значение, генерируемое при инициализации аутентификационного токена. Схема прохождения пользователем процедуры аутентификации приведена на рис. 2.

Рис. 2. Метод "только ответ"

Пример прохождения пользователем процедуры аутентификация при использовании

аутентификационным токеном метода "только ответ":

1. Пользователь (Сергей) активизирует свой OTP-токен, который вычисляет и отображает ответ на «скрытый» запрос.

2. Пользователь (Сергей) вводит своё «имя пользователя» и этот ответ ("66260689") на рабочей станции.

3. Имя пользователя (Сергей) и ответ ("66260689") передаются по сети в открытом виде.

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

5. Сервер сравнивает представленный ответ от пользователя ("66260689") с вычисленным им самим ответом ("66260689")..

Метод "синхронизация по времени"

В методе "синхронизация по времени" аутентификационное устройство и аутентификационный сервер генерируют OTP на основе значения внутренних часов. Аутентификационный токен может использовать не стандартные интервалы времени, измеряемые в минутах, а в специальном длинном интервале времени, обычно он равняется 30 секундам. Процедура аутентификации показана на рис. 3.

Рис. 3. Метод "синхронизация по времени"

Пример прохождения пользователем процедуры аутентификация при использовании

аутентификационным токеном метода "синхронизация по времени":

1. Пользователь (Константин) активизирует свой OTP-токен, который генерирует OTP ("96823030"), зашифровывая показания часов с помощью своего секретного ключа.

2. Пользователь (Константин) вводит своё имя пользователя и этот OTP на рабочей станции.

3. Имя пользователя и OTP передаются по сети в открытом виде.

4. Аутентификационный сервер находит запись пользователя (Константина) и шифрует показание своих часов с использованием хранимого им секретного ключа пользователя, получая в результате OTP.

5. Сервер сравнивает OTP, представленный пользователем, и OTP, вычисленный им самим.

Метод "синхронизация по событию"

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

Рис. 4. Метод "синхронизация по событию"

Пример прохождения пользователем процедуры аутентификация при использовании

аутентификационным токеном метода "синхронизация по событию":

1. Пользователь (Ольга) активизирует свой OTP-токен, который генерирует OTP ("59252459"), зашифровывая значения количества раз прохождения процедуры аутентификации данным пользователем, с помощью своего секретного ключа.

2. Пользователь (Ольга) вводит своё имя пользователя и этот OTP на рабочей станции.

3. Имя пользователя и OTP передаются по сети в открытом виде.

4. Аутентификационный сервер находит запись пользователя (Ольги) и шифрует значение

количества раз прохождения процедуры аутентификации данным пользователем с

использованием хранимого им секретного ключа пользователя, получая в результате OTP.

5. Сервер сравнивает OTP, представленный пользователем, и OTP, вычисленный им самим.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: