Протокол аутентификации CHAP

Протокол CHAP является более защищенным, чем РАР. Он использует трехзвенную процедуру обмена пакетами. Для реализации этой процедуры используется четыре типа пакетов:

 ВЫЗОВ – Challenge;

 ОТКЛИК – Response;

 ПОДТВЕРЖДЕНИЕ – Success;

 ОТКАЗ – Failure.

Проверка подлинности проводится сразу после завершения фазы установления звена передачи данных и может быть повторена любое количество раз в любое время. После того, как звено переда­чи данных установлено, проверяющая сторона высылает пакет ВЫЗОВ, который включает в себя некоторую последовательность символов. Проверяемая сторона отвечает пакетом ОТКЛИК, содержа­щим последовательность, сгенерированную с помощью односторонней хэш-функции из содержа­щейся в пакете ВЫЗОВ последовательности и локально хранимого пароля. Проверяющая сторона сравнивает эту последовательность с самостоятельно вычисленной по тем же исходным данным. Ес­ли значения совпадают, то проверяющая сторона высылает проверяемой пакет ПОДТВЕРЖДЕНИЕ, если нет, то звено передачи данных следует разорвать.

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

Последовательность, содержащаяся в пакете ВЫЗОВ, должна быть уникальной (иначе можно было бы повторно использовать перехваченный ранее пакет ОТКЛИК, посланный в ответ на пакет ВЫЗОВ, содержащий ту же самую последовательность, и таким образом сфальсифицировать процедуру) и непредсказуемой (иначе можно было бы, предсказав эту величину, составить пакет ВЫЗОВ и, имитируя проверяющую сторону, послать проверяемой стороне этот пакет, получить и сохранить пакет ОТКЛИК, дождаться использования такого же пакета ВЫЗОВ настоящей проверяющей стороной и послать в ответ полученный “обманным путем” пакет ОТКЛИК).

Процедура аутентификации с помощью протокола CHAP может быть затребована так же, как и в случае с протоколом РАР, только с указанием шестнадцатиричного номера, соответствующего CHAP и метода аутентификации, то есть используемой хэш-функции. Причем стандартной функцией, которая должна поддерживаться во всех реализациях, является MD5 (Message Digest Version 5 – профиль сообщения, версия 5). После этого производится обмен пакетами протокола CHAP. Эти пакеты имеют тот же формат, что и пакеты протокола РАР (рис. 2.3). Поле КОД указывает тип пакета.

Поле ИДЕНТИФИКАТОР содержит уникальное значение, которое позволяет определить, какому запросу соответствует полученный ответ. Поле ДЛИНА содержит длину пакета в байтах. Длина и формат поля ДАННЫЕ определяются типом пакета CHAP.

Процедура аутентификации начинается с отправки проверяющей стороной пакета ВЫЗОВ. Этот пакет должен быть отправлен повторно, если в ответ на него не был получен пакет ОТКЛИК. Кроме того, такой пакет может быть отправлен уже в ходе работы протоколов сетевого уровня для того, чтобы убедиться, что система на противоположной стороне звена передачи данных осталась той же самой.

Поле данных CHAP в пакете ВЫЗОВ содержит:

 произвольную последовательность символов, которая должна быть уникальной для каждого посланного пакета ВЫЗОВ; ее длина зависит от применяемого алгоритма генерации этой последовательности и не зависит от используемой хэш-функции;

 длину последовательности в байтах;

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

Пакет ОТКЛИК должен быть отправлен проверяемой стороной в ответ на каждый принятый пакет ВЫЗОВ. Поле данных CHAP в пакете ОТКЛИК содержит:

 результат вoздeйcтвия односторонней хэш-функции на строку символов, полученную путем конкатенации идентификатора проверяющей стороны из пакета ВЫЗОВ, хранимого локально пароля и последовательности символов из пакета ВЫЗОВ; длина результата зависит от применяемой хэш-функции (16 байт для функции MD5); в случае использования двусторонней (взаимной) аутентификации пароли, используемые для получения результата, не должны совпадать (иначе злоумышленник сможет, получив пакет ВЫЗОВ, отправить его в качестве собственного, получить в ответ пакет ОТКЛИК и отправить его в качестве собственного пакета ОТКЛИК);

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

Получив пакет ОТКЛИК, проверяющая сторона сравнивает содержимое результата из этого па­кета с вычисленной самостоятельно на основании тех же исходных данных с помощью той же хэш-функции величиной. В зависимости от результата этого сравнения проверяющая сторона высылает либо пакет ПОДТВЕРЖДЕНИЕ, либо пакет ОТКАЗ. После передачи пакета ОТКАЗ проверяющая сто­рона разрывает звено передачи данных.

Поле данных CHAP в пакете ПОДТВЕРЖДЕНИЕ и пакете ОТКАЗ содержит:

 сообщение, которое, как правило, содержит текст, содержание которого стандартом не устанав­ливается;

 длину сообщения в байтах.

Наши рекомендации