В вычислительной технике протокол аутентификации Challenge-Handshake ( CHAP ) — это протокол аутентификации , изначально использовавшийся протоколом Point-to-Point (PPP) для проверки пользователей. CHAP также используется в других протоколах аутентификации, таких как RADIUS и Diameter .
Почти все сетевые операционные системы поддерживают PPP с CHAP, как и большинство серверов сетевого доступа . CHAP также используется в PPPoE для аутентификации пользователей DSL.
Поскольку PPP отправляет данные незашифрованными и «в открытом виде», CHAP уязвим для любого злоумышленника, который может наблюдать за сеансом PPP. Злоумышленник может увидеть имя пользователя, вызов CHAP, ответ CHAP и любую другую информацию, связанную с сеансом PPP. Затем злоумышленник может провести офлайновую атаку по словарю , чтобы получить исходный пароль. При использовании в PPP CHAP также обеспечивает защиту от атак повторного воспроизведения со стороны однорангового узла посредством использования вызова, который генерируется аутентификатором, которым обычно является сервер доступа к сети .
Если CHAP используется в других протоколах, он может быть отправлен в открытом виде или защищен уровнем безопасности, таким как Transport Layer Security (TLS). Например, когда CHAP отправляется через RADIUS с использованием User Datagram Protocol (UDP), любой злоумышленник, который может видеть пакеты RADIUS, может провести офлайновую атаку по словарю , как в случае с PPP.
CHAP требует, чтобы и клиент, и сервер знали версию пароля в открытом виде, хотя сам пароль никогда не отправляется по сети. Таким образом, при использовании в PPP CHAP обеспечивает лучшую безопасность по сравнению с протоколом аутентификации паролей (PAP), который уязвим по обеим этим причинам.
Когда одноранговый узел отправляет CHAP, сервер аутентификации получает его и получает "известный хороший" пароль из базы данных, а также выполняет вычисления CHAP. Если полученные хэши совпадают, то пользователь считается аутентифицированным. Если хэши не совпадают, то попытка аутентификации пользователя отклоняется.
Поскольку сервер аутентификации должен хранить пароль в открытом виде, невозможно использовать различные форматы для сохраненного пароля . Если бы злоумышленник украл всю базу данных паролей, все эти пароли были бы видны в базе данных «в открытом виде».
В результате, хотя CHAP может быть более безопасным, чем PAP при использовании по каналу PPP, он не обеспечивает более безопасное хранение «в состоянии покоя», чем другие методы, такие как PAP .
MS-CHAP похож на CHAP, но использует другой алгоритм хеширования и позволяет каждой стороне аутентифицировать другую.
CHAP — это схема аутентификации, изначально использовавшаяся серверами протокола Point-to-Point Protocol (PPP) для проверки подлинности удаленных клиентов. CHAP периодически проверяет подлинность клиента с помощью трехстороннего рукопожатия . Это происходит во время установления первоначального соединения (LCP) и может повториться в любое время после этого. Проверка основана на общем секрете (например, пароле клиента). [1]
Идентификатор, выбранный для случайного вызова, также используется в соответствующих пакетах ответа, успеха и отказа. Новый вызов с новым идентификатором должен отличаться от последнего вызова с другим идентификатором. Если успех или неудача потеряны, тот же ответ может быть отправлен снова, и он запускает ту же индикацию успеха или неудачи. Для MD5 в качестве хэша значение ответа равно MD5(ID||secret||challenge)
, MD5 для конкатенации идентификатора, секрета и вызова. [2]