Ataque Man-in-the-middle

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En criptografía, un ataque man-in-the-middle o JANUS (MitM o intermediario, en español) es un ataque en el que se adquiere la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que el enlace entre ellos ha sido violado. El atacante debe ser capaz de observar e interceptar mensajes entre las dos víctimas. El ataque MitM es particularmente significativo en el protocolo original de intercambio de claves de Diffie-Hellman, cuando éste se emplea sin autenticación.

La necesidad de una transferencia adicional por un canal seguro[editar]

Salvo el Interlock Protocol, todos los sistemas criptográficos seguros frente a ataques MitM requieren un intercambio adicional de datos o la transmisión de cierta información a través de algún tipo de canal seguro. En ese sentido, se han desarrollado muchos métodos de negociación de claves con diferentes exigencias de seguridad respecto al canal seguro.

Posibles subataques[editar]

El ataque MitM puede incluir algunos de los siguientes subataques:

  • Intercepción de la comunicación (eavesdropping), incluyendo análisis del tráfico y posiblemente un ataque a partir de textos planos (plaintext) conocidos.
  • Ataques a partir de textos cifrados escogidos, en función de lo que el receptor haga con el mensaje descifrado.
  • Ataques de sustitución.
  • Ataques de repetición.
  • Ataque por denegación de servicio (denial of service). El atacante podría, por ejemplo, bloquear las comunicaciones antes de atacar una de las partes. La defensa en ese caso pasa por el envío periódico de mensajes de status autenticados.

MitM se emplea típicamente para referirse a manipulaciones activas de los mensajes, más que para denotar intercepción pasiva de la comunicación.

Un ejemplo de criptografía de clave pública[editar]

Supóngase que Andrés desea comunicarse con Bárbara, y Juan quiere interceptar esa conversación, o quizá hacer llegar un mensaje falso a Bárbara. Para iniciar la comunicación, Andrés debe solicitar a Bárbara su clave pública. Si Bárbara envía su clave a Andrés, pero Juan es capaz de interceptarla, éste podría desplegar un ataque MitM. Juan podría enviar a Andrés su propia clave pública (de Juan, en lugar de la de Bárbara). Andrés, creyendo que la clave pública recibida es de Bárbara, cifraría su mensaje con la clave de Juan y enviaría el criptograma a Bárbara. Juan interceptaría de nuevo, descifraría el mensaje con su clave privada, guardaría una copia; volvería a cifrar el mensaje con la clave de Bárbara (tras una alteración, si así lo deseara) y lo re-enviaría a Bárbara. Cuando ésta lo recibiera, creería que proviene de Andrés.

Este ejemplo ilustra la necesidad de Andrés y Bárbara de contar con alguna garantía de que están usando efectivamente las claves públicas correctas. En otro caso, sus comunicaciones se verían expuestas a ataques de este tipo usando la tecnología de clave pública. Afortunadamente, existe una variedad de técnicas que ayudan a defenderse de los ataques MitM.

Defensas contra el ataque[editar]

La posibilidad de un ataque de intermediario sigue siendo un problema potencial de seguridad serio, incluso para muchos criptosistemas basados en clave pública. Existen varios tipos de defensa contra estos ataques MitM que emplean técnicas de autenticación basadas en:

  • Claves públicas
  • Autenticación mutua fuerte
  • Claves secretas (secretos con alta entropía)
  • Passwords (secretos con baja entropía)
  • Otros criterios, como el reconocimiento de voz u otras características biométricas

La integridad de las claves públicas debe asegurarse de alguna manera, pero éstas no exigen ser secretas, mientras que los passwords y las claves de secreto compartido tienen el requerimiento adicional de la confidencialidad. Las claves públicas pueden ser verificadas por una autoridad de certificación (CA), cuya clave pública sea distribuida a través de un canal seguro (por ejemplo, integrada en el navegador web o en la instalación del sistema operativo).

Enlaces externos[editar]