Protocolo de autenticación de contraseña, o PAP, y Protocolo de Autenticación de Desafío de Mano, o CHAP, se utilizan para autenticar sesiones PPP y se pueden usar con muchas VPN.
PAP funciona como un procedimiento de inicio de sesión estándar. El sistema remoto se autentica mediante una combinación estática de nombre de usuario y contraseña. La contraseña puede pasar a través de un túnel cifrado establecido para mayor seguridad, pero PAP está sujeto a numerosos ataques. Debido a que la información es estática, es vulnerable a la adivinación de contraseñas y al espionaje.
CHAP adopta un enfoque más sofisticado y seguro para la autenticación. Crea una frase de desafío única para cada autenticación al generar una cadena aleatoria. Esta frase de desafío se combina con nombres de host de dispositivo utilizando funciones hash unidireccionales. Con este proceso, CHAP puede autenticarse de manera que la información secreta estática no se envíe por cable.
Profundicemos en las diferencias entre PAP y CHAP y cómo pueden trabajar juntos.
¿Qué es PAP?
De los dos métodos de autenticación de Protocolo Punto a Punto (PPP), PAP es más antiguo. Fue estandarizado en 1992 por medio de la Solicitud de Comentarios 1334 de la IETF. PAP es un protocolo de autenticación cliente-servidor basado en contraseñas. La autenticación solo se produce una vez al comienzo de un proceso de establecimiento de sesión.
PAP utiliza un proceso de enlace bidireccional para la autenticación mediante los siguientes pasos.
Paso 1. El cliente envía el nombre de usuario y la contraseña al servidor.
El cliente que desea establecer una sesión PPP con un servidor envía una combinación de nombre de usuario y contraseña al servidor. Esto se realiza a través de un paquete de solicitud de autenticación.
Paso 2. El servidor acepta credenciales y verifica.
Si el servidor está escuchando solicitudes de autenticación, aceptará las credenciales de nombre de usuario y contraseña y verificará que coincidan.
Si las credenciales se envían correctamente, el servidor enviará un paquete de respuesta authentication-ack al cliente. El servidor establecerá la sesión PPP entre el cliente y el servidor.
Si las credenciales se envían incorrectamente, el servidor enviará un paquete de respuesta authentication-nak al cliente. El servidor no establecerá una respuesta basada en el reconocimiento negativo.
PAP es un mecanismo de autenticación simple y fácil de implementar, pero tiene serios inconvenientes para su uso en entornos del mundo real. El mayor inconveniente es que PAP envía nombres de usuario y contraseñas estáticos de los clientes a los servidores en texto sin formato. Si los malos actores interceptaran esta comunicación, utilizando herramientas como un rastreador de paquetes, podrían autenticar y establecer una sesión PPP en nombre del cliente.
Es posible enviar solicitudes de autenticación PAP a través de túneles cifrados existentes. Pero, si hay otras opciones de autenticación disponibles, como CHAP, los equipos deben usar un método alternativo.
¿Qué es CHAP?
CHAP utiliza un proceso de apretón de manos de tres vías para proteger la contraseña de autenticación de actores defectuosos. Funciona de la siguiente manera.
Paso 1. Una vez establecido el enlace, el autenticador envía un desafío de autenticación.
El servidor de acceso a la red realiza una búsqueda de nombre de host en el cliente e inicia la autenticación CHAP enviando un «desafío de pregunta» al usuario remoto. Este desafío incluye una cadena de desafío generada aleatoriamente.
Paso 2. El cliente realiza una búsqueda de nombre de host.
El cliente utiliza la contraseña que tanto el cliente como el servidor conocen para crear un hash unidireccional cifrado basado en la cadena de desafío.
Paso 3. El servidor descifra el hash y lo verifica.
El servidor descifrará el hash y verificará que coincida con la cadena de desafío inicial. Si las cadenas coinciden, el servidor responde con un paquete de autenticación correcta. Si las cadenas no coinciden, el servidor envía una respuesta de mensaje de error de autenticación y la sesión finaliza.
¿Cuáles son las diferencias entre PAP y CHAP?
CHAP surgió en 1996 en gran parte como respuesta a las debilidades de autenticación inherentes a PAP. En lugar de un apretón de manos de dos vías, CHAP usa un apretón de manos de tres vías y no envía la contraseña a través de la red. CHAP utiliza un hash cifrado para el que tanto el cliente como el servidor conocen la clave secreta compartida. Este paso adicional ayuda a eliminar las debilidades de seguridad encontradas en PAP.
Otra diferencia es que CHAP se puede configurar para realizar autenticaciones repetidas a mitad de sesión. Esto es útil para ciertas sesiones PPP que dejan un puerto abierto aunque el dispositivo remoto se haya desconectado. En ese caso, otra persona podría recoger la conexión a mitad de sesión estableciendo conectividad física.
¿Cómo pueden trabajar juntos PAP y CHAP?
PAP y CHAP no pueden trabajar juntos per se. Pero los protocolos que utilizan PAP o CHAP pueden interactuar con ambos métodos de autenticación, si se desea.
Por ejemplo, PPP puede usar PAP o CHAP para la autenticación. Por lo tanto, los administradores podrían configurar el protocolo de comunicaciones para intentar autenticarse primero a través del apretón de manos seguro de tres vías de CHAP y luego recurrir al proceso de autenticación bidireccional menos seguro que se encuentra en PAP.