Введение

В вычислительной технике протокол аутентификации Challenge Handshake Authentication Protocol (CHAP) — это протокол аутентификации, изначально разработанный для использования протоколом Point to Point Protocol (PPP) для проверки подлинности пользователей. CHAP также применяется в других протоколах аутентификации, таких как RADIUS и Diameter. Практически все сетевые операционные системы поддерживают PPP с CHAP, равно как и большинство серверов сетевого доступа. CHAP также используется в PPPoE для аутентификации пользователей DSL. Поскольку PPP передает данные в незашифрованном виде, "открытым текстом", CHAP уязвим для злоумышленников, способных перехватить сеанс PPP. Злоумышленник может увидеть имя пользователя, запрос CHAP, ответ CHAP и любую другую информацию, связанную с сеансом PPP. Затем злоумышленник может провести оффлайн-атаку по словарю для получения исходного пароля. При использовании в PPP, CHAP также обеспечивает защиту от атак повторного воспроизведения (replay attacks) благодаря использованию запроса, генерируемого аутентификатором, которым обычно является сервер сетевого доступа. При использовании 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 – это схема аутентификации, изначально использовавшаяся серверами протокола Point-to-Point (PPP) для проверки подлинности удаленных клиентов. CHAP периодически подтверждает подлинность клиента, используя трехэтапное согласование. Это происходит при установлении начального соединения (LCP) и может повторяться в любое время после этого. Подтверждение основано на общем секрете (например, пароле клиента). После завершения этапа установления соединения аутентификатор отправляет "запрос" (challenge) одноранговому узлу. Узел отвечает значением, вычисленным с использованием односторонней хеш-функции на основе запроса и секрета. Аутентификатор проверяет полученный ответ, сравнивая его со своим собственным вычисленным ожидаемым хеш-значением. Если значения совпадают, аутентификатор подтверждает аутентификацию, в противном случае соединение должно быть разорвано. В PPP аутентификатор может отправлять новые запросы одноранговому узлу через случайные интервалы времени, повторяя шаги 1–3. Однако, когда CHAP используется в большинстве случаев (например, в RADIUS), этот шаг не выполняется.