Протокол аутентификации с вызовом и рукопожатием
В вычислительной технике протокол аутентификации Challenge -Handshake ( CHAP ) — это протокол аутентификации, первоначально используемый протоколом «точка-точка» (PPP) для проверки пользователей. CHAP также поддерживается в других протоколах аутентификации, таких как RADIUS и Diameter .
Почти все сетевые операционные системы поддерживают PPP с CHAP, как и большинство серверов доступа к сети . CHAP также используется в PPPoE для аутентификации пользователей DSL.
Поскольку PPP отправляет данные в незашифрованном виде и «в открытом виде», CHAP уязвим для любого злоумышленника, который может наблюдать за сеансом PPP. Злоумышленник может увидеть имя пользователя, запрос CHAP, ответ CHAP и любую другую информацию, связанную с сеансом PPP. Затем злоумышленник может организовать автономную атаку по словарю , чтобы получить исходный пароль. При использовании в PPP CHAP также обеспечивает защиту от атак повтора со стороны однорангового узла за счет использования запроса, который генерируется аутентификатором, которым обычно является сервер доступа к сети .
Если CHAP используется в других протоколах, он может отправляться в открытом виде или может быть защищен уровнем безопасности, таким как Transport Layer Security (TLS). Например, когда CHAP отправляется через RADIUS с использованием протокола пользовательских датаграмм (UDP), любой злоумышленник, который может видеть пакеты RADIUS, может организовать автономную атаку по словарю , как в случае с PPP.
CHAP требует, чтобы и клиент, и сервер знали текстовую версию пароля, хотя сам пароль никогда не отправляется по сети. Таким образом, при использовании в PPP CHAP обеспечивает лучшую безопасность по сравнению с протоколом аутентификации пароля (PAP), который уязвим по обеим этим причинам.
Преимущества CHAP
[ редактировать ]Когда партнер отправляет CHAP, сервер аутентификации получит его, получит «известный хороший» пароль из базы данных и выполнит вычисления CHAP. Если полученные хеши совпадают, то пользователь считается аутентифицированным. Если хеши не совпадают, попытка аутентификации пользователя отклоняется.
Поскольку сервер аутентификации должен хранить пароль в открытом виде, невозможно использовать разные форматы для сохраненного пароля . Если злоумышленник украдет всю базу данных паролей, все эти пароли будут видны в базе данных «в открытом виде».
В результате, хотя CHAP может быть более безопасным, чем PAP, при использовании по каналу PPP, он предотвращает более безопасное хранение «в состоянии покоя», чем при использовании других методов, таких как PAP .
Варианты
[ редактировать ]MS-CHAP похож на CHAP, но использует другой алгоритм хэширования и позволяет каждой стороне аутентифицировать другую.
Рабочий цикл
[ редактировать ]CHAP — это схема аутентификации, первоначально использовавшаяся серверами протокола «точка-точка» (PPP) для проверки личности удаленных клиентов. CHAP периодически проверяет личность клиента с помощью трехэтапного рукопожатия . Это происходит во время установления первоначального соединения (LCP) и может произойти снова в любое время впоследствии. Проверка основана на общем секрете (например, пароле клиента). [ 1 ]
- После завершения фазы установления соединения аутентификатор отправляет партнеру сообщение «запрос».
- Узел отвечает значением, рассчитанным с использованием односторонней хеш-функции для комбинированного запроса и секрета.
- Аутентификатор сверяет ответ с собственным расчетом ожидаемого значения хеш-функции. Если значения совпадают, аутентификатор подтверждает аутентификацию; в противном случае он должен разорвать соединение.
- В PPP аутентификатор может отправлять новый запрос одноранговому узлу через случайные промежутки времени и повторяет шаги с 1 по 3. Однако, когда в большинстве ситуаций используется CHAP (например, RADIUS ), этот шаг не выполняется.
CHAP-пакеты
[ редактировать ]Описание | 1 байт | 1 байт | 2 байта | 1 байт | Переменная | Переменная |
---|---|---|---|---|---|---|
Испытание | Код = 1 | ИДЕНТИФИКАТОР | Длина | Длина испытания | Ценность вызова | Имя |
Ответ | Код = 2 | ИДЕНТИФИКАТОР | Длина | Длина ответа | Значение ответа | Имя |
Успех | Код = 3 | ИДЕНТИФИКАТОР | Длина | Сообщение | ||
Отказ | Код = 4 | ИДЕНТИФИКАТОР | Длина | Сообщение |
Идентификатор, выбранный для случайного запроса, также используется в соответствующих пакетах ответа, успеха и отказа. Новое испытание с новым идентификатором должно отличаться от последнего испытания с другим идентификатором. Если успех или неудача потеряны, тот же ответ может быть отправлен снова, и это вызывает ту же индикацию успеха или неудачи. Для MD5 в качестве хеша значение ответа равно MD5(ID||secret||challenge)
, MD5 для объединения идентификатора, секрета и запроса. [ 2 ]
См. также
[ редактировать ]- Список протоколов аутентификации
- Протокол аутентификации пароля
- Аутентификация типа «запрос-ответ»
- Криптографическая хэш-функция
Ссылки
[ редактировать ]- ^ Форузан (2007). Передача данных и сети 4E Sie . McGraw-Hill Education (India) Pvt Limited. стр. 352–. ISBN 978-0-07-063414-5 . Проверено 24 ноября 2012 г.
- ^ «Понимание и настройка аутентификации PPP CHAP» . Техническое примечание Cisco . 2005 . Проверено 14 августа 2011 г.