Аутентификация с использованием PPP: CHAP против PAP

Используя PPP, каждая система может требовать от своего партнёра идентифицировать себя при помощи одного из двух методов аутентификации: PAP (Password Authentication Protocol) или CHAP (Challenge Handshake Authentication Protocol). В зависимости от ситуации, каждая из сторон может потребовать идентификацию от другой, независимо от их роли в процессе. Далее рассмотрим различия между "клиентом" и "сервером" и обсудим, как каждая из сторон идентифицируется.

PAP работает аналогично обычной процедуре входа в систему: клиент отправляет серверу своё имя пользователя и пароль, которые затем сверяются с базой данных. Однако этот метод уязвим для атак, так как злоумышленник может перехватить передаваемые данные и попытаться использовать их для несанкционированного доступа.

В отличие от PAP, CHAP предоставляет большую степень безопасности. Сервер отправляет клиенту случайно сгенерированную строку-вызов, а клиент в ответ отправляет результат хеширования этой строки с использованием секретного ключа. Это делает невозможным перехват и повторное использование данных для атаки.

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

Для хранения ключей аутентификации PPP использует два отдельных файла: /etc/ppp/chap-secrets и /etc/ppp/pap-secrets. В зависимости от используемого метода и настроек, PPP может использовать один из этих файлов или оба.

По умолчанию, PPP не требует аутентификации от удалённой стороны, но готов идентифицировать себя по запросу. CHAP предпочтительнее PAP из-за высокой степени безопасности, поэтому PPP пытается использовать CHAP, если это возможно. Если CHAP недоступен или отсутствует соответствующий ключ, PPP переключается на PAP.

Для повышения безопасности рекомендуется требовать аутентификацию от всех систем, с которыми устанавливается связь. Это можно настроить в глобальном файле /etc/ppp/options. Таким образом, можно предотвратить несанкционированные подключения к вашему хосту.

Далее рассмотрим два ключевых файла PPP: pap-secrets и chap-secrets, которые находятся в /etc/ppp. Они содержат информацию о клиентах, серверах и паролях, а также списки IP-адресов. Важно понимать различия в интерпретации данных для CHAP и PAP.