La autenticación CHAP utiliza la noción de desafío y respuesta, que significa que el par (autenticador) exige al emisor de llamada (autenticado) que demuestre su identidad. El desafío incluye un número aleatorio y un ID único que genera el autenticador. El emisor de llamada debe utilizar el ID, el número aleatorio y sus credenciales de seguridad de CHAP para generar la respuesta adecuada (reconocimiento) para enviar al par.
Las credenciales de seguridad de CHAP incluyen un nombre de usuario de CHAP y un "secreto" de CHAP. El secreto de CHAP es una cadena arbitraria conocida por el emisor de llamada y por el par antes de negociar un enlace de PPP. Configure credenciales de seguridad de CHAP en la base de datos de CHAP, /etc/ppp/chap-secrets.
La base de datos de CHAP se implementa en el archivo /etc/ppp/chap-secrets. Los equipos en ambos lados del enlace de PPP deben tener sus respectivas credenciales de PAP en sus archivos /etc/ppp/chap-secrets para una autenticación correcta.
El archivo /etc/ppp/chap-secrets tiene la siguiente sintaxis.
myclient myserver secret5748 *
Los parámetros tienen los siguientes significados:
Nombre de usuario de CHAP del emisor de llamada. Este nombre puede ser diferente o igual al nombre de usuario de UNIX del emisor de llamada.
Nombre del equipo remoto, generalmente un servidor de marcación de entrada.
Secreto de CHAP del emisor de llamada.
Dirección IP que está asociada con el emisor. Utilice un asterisco (*) para indicar cualquier dirección IP.
La autenticación CHAP se produce en la siguiente secuencia.
Figura 8-2 Secuencia de autenticación CHAP
Dos iguales que están por iniciar comunicaciones se ponen de acuerdo sobre un secreto que se utilizará para la autenticación durante la negociación del enlace de PPP.
Los administradores de ambas máquinas agregan el secreto, los nombres de usuario de CHAP y otras credenciales de CHAP a la base de datos /etc/ppp/chap-secrets de sus respectivas máquinas.
El emisor de llamada (autenticado) llama al par remoto (autenticador).
El autenticador genera un número aleatorio y un ID, y envía esos datos al autenticado como una desafío.
El autenticado busca el nombre y secreto del par en su base de datos /etc/ppp/chap-secrets.
El autenticado calcula una respuesta aplicando el algoritmo computacional MD5 al secreto y al desafío de número aleatorio del par. A continuación, el autenticado envía los resultados como su respuesta al autenticador.
El autenticador busca el nombre y secreto del autenticado en su base de datos /etc/ppp/chap-secrets.
El autenticador calcula su propia figura aplicando MD5 al número que se generó como el desafío y el secreto para el autenticado en /etc/ppp/chap-secrets.
El autenticador compara sus resultados con la respuesta del emisor de llamada. Si los dos números son los mismos, el par ha autenticado correctamente al emisor de llamada y la negociación del enlace continúa. De lo contrario, el enlace se pierde.