Protocolo de autenticación por desafío mutuo

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En informática, el Challenge-Handshake Authentication Protocol (CHAP) es un protocolo de autenticación utilizado originalmente por Point-to-Point Protocol (PPP) para validar usuarios. CHAP también se incluye en otros protocolos de autenticación como RADIUS y Diameter.

Casi todos los sistemas operativos de red admiten PPP con CHAP, al igual que la mayoría de los servidores de acceso a la red. CHAP también se usa en PPPoE para autenticar a los usuarios de DSL.

Como el PPP envía datos sin cifrar y "en claro", CHAP es vulnerable a cualquier atacante que pueda observar la sesión del PPP. Un atacante puede ver el nombre del usuario, el desafío de CHAP, la respuesta de CHAP y cualquier otra información asociada con la sesión de PPP. Luego, el atacante puede montar un ataque de diccionario fuera de línea para obtener la contraseña original. Cuando se usa en PPP, CHAP también brinda protección contra ataques de reproducción por parte del par mediante el uso de un desafío generado por el autenticador, que generalmente es un servidor de acceso a la red.

Cuando se usa CHAP en otros protocolos, se puede enviar sin cifrar o puede estar protegido por una capa de seguridad como Transport Layer Security (TLS). Por ejemplo, cuando se envía CHAP a través de RADIUS mediante el Protocolo de datagramas de usuario (UDP), cualquier atacante que pueda ver los paquetes RADIUS puede montar un ataque de diccionario fuera de línea, como con PPP.

CHAP requiere que tanto el cliente como el servidor conozcan la versión de texto simple de la contraseña, aunque la contraseña en sí nunca se envía a través de la red. Por lo tanto, cuando se usa en PPP, CHAP proporciona una mejor seguridad en comparación con el Protocolo de autenticación de contraseña (PAP), que es vulnerable por ambas razones.

Beneficios de CHAP

Cuando el par envía CHAP, el servidor de autenticación lo recibirá y obtendrá el "bien conocido" contraseña de una base de datos y realizar los cálculos CHAP. Si los valores hash resultantes coinciden, se considera que el usuario está autenticado. Si los valores hash no coinciden, se rechaza el intento de autenticación de los usuarios.

Dado que el servidor de autenticación tiene que almacenar la contraseña en texto no cifrado, es imposible utilizar diferentes formatos para la contraseña almacenada. Si un atacante robara toda la base de datos de contraseñas, todas esas contraseñas serían visibles "en claro" en la base de datos

Como resultado, si bien CHAP puede ser más seguro que PAP cuando se usa a través de un enlace PPP, evita un almacenamiento más seguro 'en reposo'. que con otros métodos como la PAP.

Variantes

MS-CHAP es similar a CHAP pero utiliza un algoritmo hash diferente y permite que cada parte autentique a la otra.

Ciclo de trabajo

CHAP es un esquema de autenticación utilizado originalmente por servidores de protocolo punto a punto (PPP) para validar la identidad de clientes remotos. CHAP verifica periódicamente la identidad del cliente mediante un protocolo de enlace de tres vías. Esto ocurre en el momento de establecer el enlace inicial (LCP) y puede volver a ocurrir en cualquier momento posterior. La verificación se basa en un secreto compartido (como la contraseña del cliente).

  1. Después de la finalización de la fase de establecimiento de enlaces, el autenticador envía un mensaje "desafío" al par.
  2. El par responde con un valor calculado utilizando una función de hash de un solo sentido sobre el desafío y el secreto combinado.
  3. El autenticador comprueba la respuesta contra su propio cálculo del valor de hash esperado. Si los valores coinciden, el autenticador reconoce la autenticación; de lo contrario debe terminar la conexión.
  4. En PPP, el autenticador puede enviar un nuevo desafío a intervalos aleatorios al par y repite los pasos 1 a 3. Sin embargo, cuando se utiliza CHAP en la mayoría de las situaciones (por ejemplo, RADIUS), este paso no se realiza.

Paquetes CHAP

Descripción 1 byte 1 byte 2 bytes 1 byte Variable Variable
Desafío Código = 1 ID Duración Longitud del desafío Valor de desafío Nombre
Respuesta Código = 2 ID Duración Longitud de la respuesta Valor de la respuesta Nombre
Éxito Código = 3 ID Duración Mensaje
Fallo Código = 4 ID Duración Mensaje

La ID elegida para el desafío aleatorio también se usa en los paquetes de respuesta, éxito y falla correspondientes. Un nuevo desafío con una nueva identificación debe ser diferente del último desafío con otra identificación. Si se pierde el éxito o el fracaso, se puede enviar de nuevo la misma respuesta y desencadena la misma indicación de éxito o fracaso. Para MD5 como hash, el valor de respuesta es MD5(ID||secret||challenge), el MD5 para la concatenación de ID, secret y challenge.

Contenido relacionado

Base de datos de Berkeley

Formato de archivo de intercambio de audio

Bob frankston

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save