Строгая аутентификация на основе многоразового пароля в протоколе CHAP
Протокол аутентификации по квитированию вызова (Challenge Handshake Authentication Protocol, CHAP) входит в семейство протоколов PPR В этом протоколе предусмотрено 4 типа сообщений: Success (успех), Challenge (вызов), Response (ответ), Failure (ошибка).
Этот протокол используется, например, при аутентификации удаленных пользователей, подключенных к Интернету по коммутируемому каналу Здесь аутентификатором является сервер провайдера, а аутентифицируемым — клиентский компьютер (рис. 24.14). При заключении договора клиент получает от провайдера пароль (пусть, например, это будет слово parol). Этот пароль хранится в базе данных провайдера в виде дайджеста Z = rf(parol), полученного путем применения к паролю одностороцней хэш-функции MD5.
Узел-аутентификатор |
---|
|
d(parol)«4СерверпровайдераParis |
Разделяемый секрет — parol
Аутентифицируемыйузел |
---|
|
КомпьютерклиентаMoscow |
<^л >1 Запрос на установление соединения, Moscow (jP)
(Т) Пакет типа Challenge: (ID, Challenge), Paris i ~ %
1 Пакет типа Response Y » d{(ID, challenge, d(parol)}, Moscow (IT)
©Сервер вычисляет локально d{(ID, challenge, d(parol)} и сравнивает с полученным от клиента значением Y
(J) Значения совпали, пакет типа Success \
Рйе. 24.14. Аутентификация по протоколу CHAP
Аутентификация выполняется в следующей последовательности.
1. Пользователь-клиент активизирует программу (например, программу дозвона) удаленного доступа к серверу провайдера, вводя имя и назначенный ему пароль. Имя (на рисунке это «Moscow») передается по сети провайдеру в составе запроса на соединение, но пароль не передается в сеть ни в каком виде. То есть здесь мы имеем дело со строгой аутентификацией.
2. Сервер провайдера, получив запрос от клиента, генерирует псевдослучайное слово-вызов (пусть это будет слово «challenge») и передает его клиенту вместе со значением, идентифицирующем сообщение в рамках данного сеанса (ID), и собственным именем (здесь «Paris»). Это сообщение типа Challenge. (Для защиты от перехвата ответа аутентификатор должен использовать разные значения слова-вызова при каждой процедуре аутентификации.)
3. Программа клиента, получив этот пакет, извлекает из него слово-вызов, добавляет к нему идентификатор и вычисленный локально дайджест Z = d(parol), а затем вычисляет с помощью все той же функции MD5 дайджест Y = d{(ID, challenge, d(parol)} от всех этих трех значений. Результат клиент посылает серверу провайдера в пакете Response.
4. Сервер провайдера сравнивает полученный по сети дайджест Y с тем значением, которое он получил, локально применив ту же хэш-функцию к набору аналогичных компонентов, хранящихся в его памяти.