Протоколы безопасной удаленной аутентификации пользователей

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

Механизм запрос-ответ заключается в том, что пользователь A при необходимости аутентификации пользователя B посылает ему запрос, в который включает непредсказуемый элемент (как правило, случайное число). Пользователь B должен ответить на этот запрос, предварительно выполнив некую обработку этого элемента. При этом злоумышленник не способен подделать ответ, так как в механизм обработки запроса включена секретная информация. После проверки результата пользователем A, присланным пользователем B, выполняется подтверждение или не подтверждение подлинности сеанса работы.

Механизм отметки времени заключается в том, что для каждого пересылаемого сообщения фиксируется время. Это позволяет каждому субъекту сети определить, насколько старо пришедшее сообщение, и отвергнуть его, если появится сомнение в его подлинности.

Рассмотрим ряд протоколов удаленной аутентификации пользователей.

Протокол CHAP (Challenge Handshaking Authentication Protocol). Предполагается, что аутентифицируемая сторона (клиент) и аутентифицирующая (сервер) уже обладают общим секретом (например, паролем доступа к серверу). Задача состоит в безопасной удаленной аутентификации клиента, проверке его подлинности путем проверки знания общего секрета.

  КЛИЕНТ
  СЕРВЕР
ЗАПРОС, N


Обработка запроса

ОТВЕТ, MD5(К, N)

Рис. 6.3. Схема протокола CHAP

1. При необходимости прохождения аутентификации сервер посылает сообщение «ЗАПРОС» клиенту, в которое включает случайный, уникальный и непредсказуемый номер N.

2. Клиент обрабатывает запрос сервера и формирует ответную последовательность, хэшируя пароль и случайный номер N с помощью алгоритма MD5, то есть вычисляет значение MD5(K, N).

3. Клиент отправляет серверу для аутентификации пакет «ОТВЕТ», в которую включает вычисленное значение MD5(K, N).

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

Использование в протоколе случайного числа N практически исключает возможность пересылки от клиента к серверу одинаковых последовательностей в течение длительного времени. Злоумышленник же, зная число N, не сможет восстановить ответ клиента, так как не знает секретного ключа K. В силу высокой криптостойкости функции хэширования MD5, злоумышленник, зная число N и значение MD5(K, N), не сможет восстановить ключ K.

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

Пусть K – пароль аутентификации, известный как подлинному клиенту, так и серверу. Клиент и сервер на основании ключа K могут вычислить последовательность из M одноразовых ключей S1,..., SM следующим образом [20]:

,

,

...

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

Недостатком описанной выше схемы является то, что после исчерпания всех одноразовых паролей (после M последовательных аутентификаций) необходимо менять общий секрет K, так как если пароли начнут передаваться заново, начиная с , то злоумышленник, слушая канал связи, будет уже знать всю предысторию передаваемых паролей, и сможет пройти аутентификацию. Для устранения данного недостатка используют подход, основанный на передаче случайного числа N от клиента к серверу в момент формирования списка одноразовых паролей, и использование данного числа как второго аргумента функции хэширования MD4. Схема аутентификации клиента с помощью протокола S/KEY будет выглядеть в данном случае следующим образом.

1. Сервер высылает клиенту число M одноразовых паролей и случайное число N, используемое для генерирования уникального и непредсказуемого списка.

2. Клиент и сервер генерируют последовательность из M одноразовых паролей следующим образом:

,

,

...

3. При необходимости аутентификации сервер посылает клиенту число t, в ответ клиент посылает серверу одноразовый пароль . Сервер, анализируя принятую информацию, принимает решение о принятии либо отказе аутентификации.

4. В следующий раз сервер требует на этапе аутентификации пароль ... пока не дойдет до .

5. Если список одноразовых паролей исчерпан (переслали ), то клиентом и сервером выполняется повторная инициализация списка одноразовых паролей (при другом N).


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



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