¿Qué es la autenticación mutua? | Autenticación en dos fases

La autenticación mutua, o autenticación en dos fases, se produce cuando ambos lados de una conexión verifican la identidad del otro.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir "autenticación mutua"
  • Explicar cómo funciona la autenticación mutua
  • Enumerar los principales casos de uso de la autenticación mutua

Copiar enlace del artículo

¿Qué es la autenticación mutua?

La autenticación mutua es cuando dos partes de un canal de comunicación verifican la identidad de la otra parte, en lugar de que solo una parte verifique a la otra. La autenticación mutua también se conoce como "autenticación bidireccional", porque el proceso va en ambas direcciones.

Cuando alguien utiliza una aplicación para compartir coche, suele comprobar la matrícula o la descripción del vehículo para asegurarse de que se sube al coche correcto. Una vez que se sube, el conductor pregunta al pasajero su nombre para confirmar que está recogiendo a la persona correcta. Tanto el pasajero como el conductor comprueban que están interactuando con la persona prevista, de modo que el conductor preste el servicio correcto, el pasajero esté en un coche que va a su destino, y ambos pueden confirmar que están con alguien que ha sido verificado por la aplicación de viajes compartidos.

De forma similar, la autenticación mutua verifica a ambas partes en un canal de comunicación digital. Por ejemplo, un cliente y un servidor que utilizan la autenticación mutua toman medidas para verificar de forma independiente la identidad del otro, en lugar de que solo el cliente autentique al servidor. Las conexiones de dispositivo a dispositivo, como las que se establecen entre los dispositivos del Internet de las Cosas (IoT), también suelen utilizar la autenticación mutua.

La autenticación mutua se suele asociar con el protocolo Transport Layer Security (TLS), pero también la pueden utilizar otros protocolos y en otros contextos. Más información sobre la autenticación mutua de TLS.

¿Cómo funciona la autenticación mutua?

Hay tres métodos principales para autentificar mutuamente los extremos de un canal de comunicación:

1. Autenticación de clave pública: este método se basa en la encriptación de clave pública. La encriptación es el proceso de codificar datos mediante el uso de una clave. La encriptación de clave pública utiliza dos claves en lugar de una: una clave pública y una clave privada. Los datos encriptados con la clave pública se desencriptan con la clave privada, y los datos encriptados con la clave privada se desencriptan con la clave pública.

En la autenticación mutua de clave pública, ambas partes de la comunicación anuncian una clave pública, y ambas tienen que demostrar que poseen la clave privada que acompaña a su clave pública, como quien muestra un documento de identidad emitido por el gobierno para verificar su nombre. Cada parte envía un fragmento de datos que se conoce como "firma" y la encripta con su clave privada, y la otra parte desencripta la firma utilizando la clave pública. Si la firma se puede desencriptarse correctamente con la clave pública, entonces se ha utilizado la clave privada correcta, y la parte que ha enviado la firma es legítima.

2. Autenticación por certificado: este enfoque es similar a la autenticación de clave pública, salvo que en lugar de tener solo una clave pública, ambas partes cuentan con un certificado de clave pública. El certificado contiene información adicional que ayuda a verificar la identidad de las partes, incluyendo quién emitió el certificado y la clave pública, a quién se aplica el certificado, cuándo caduca el certificado, etc. Los certificados TLS pueden utilizarse para este tipo de autenticación mutua si ambas partes tienen uno.

3. Nombre de usuario y contraseña: a pesar del nombre, este método de autenticación mutua sigue utilizando un certificado en el lado del servidor. El servidor presenta un certificado al cliente, que lo verifica. En el lado del cliente, es como la típica autenticación de nombre de usuario/contraseña: el cliente envía su combinación de nombre de usuario y contraseña al servidor, que verifica las credenciales.

¿Cuándo se utiliza la autenticación mutua?

La autenticación unidireccional ocurre todo el tiempo en Internet. Cada vez que alguien carga un sitio web que utiliza HTTPS, su dispositivo autentica la identidad del servidor web al comprobar el certificado TLS del servidor. Otro ejemplo sería el de una persona que inicia sesión en su cuenta en una aplicación: en este caso, la aplicación está autenticando a la persona.

Aunque la autenticación mutua elimina algunos fallos de seguridad y hace que algunos tipos de ataques sean mucho más difíciles de llevar a cabo, añade más tiempo y potencia informática al intercambio de información. También requiere cierta configuración previa: ambas partes de la comunicación necesitan un conjunto de credenciales, un par de claves públicas y privadas, o un certificado de clave pública (según el tipo de autenticación que se use). Esto hace que el usuario medio tenga dificultades para implementar la autenticación mutua, y por eso la autenticación mutua no suele formar parte de TLS cuando alguien utiliza una aplicación web.

Entre los principales casos de uso de la autenticación mutua se incluyen:

  • IoT: la mayoría de los dispositivos IoT necesitan conectarse a un servidor en remoto para funcionar correctamente. También puede que necesiten conectarse a otros dispositivos IoT. Los dispositivos IoT tienen que hacerlo a través de una red no segura (Internet). La autenticación mutua ayuda a garantizar que los datos que reciben sean precisos y provenga de una fuente legítima, lo que las posibilidades de que un atacante haya puesto en riesgo sus conexiones.
  • Seguridad de la API: la autenticación garantiza que las solicitudes de la API provenga de una fuente legítima. La autenticación mutua es una forma de asegurarse de que una API no acepte solicitudes de atacantes, y de que un usuario de la API no acepte respuestas falsas de la API.
  • Seguridad Zero Trust: "Zero Trust" es una filosofía que asume que cualquier usuario o dispositivo puede representar una amenaza. Al requerir que ambos lados de una conexión se autentiquen, la autenticación mutua garantiza que solo se conecten los usuarios legítimos a la red, al servidor o a la aplicación. A la inversa, los usuarios pueden estar seguros de que se han conectado a la red, el servidor o la aplicación correctos.

¿Qué tipos de ataques ayuda a detener la autenticación mutua?

Ataques en ruta: en un ataque en ruta, un atacante se encuentra en el medio de una conexión entre dos partes. El atacante intercepta las comunicaciones en ambas direcciones y se hace pasar por los dos extremos de la conversación. La autenticación mutua ayuda a detener este tipo de ataque, ya que el atacante no podrá autenticarse en ambos extremos de la comunicación.

Suplantación y falsificación de identidad: los atacantes utilizan estos ataques para engañar a un servidor o a un usuario al hacerle creer que son una parte conocida y de confianza. Un atacante podría suplantar un servidor web a un usuario, o viceversa. Estos ataques son mucho más difíciles de llevarse a cabo cuando ambas partes tienen que autenticarse.

Robo de credenciales: algunas formas de autenticación mutua se basan en contraseñas, y estas podrían ser objeto de robo de credenciales (cuando un atacante roba la contraseña de un usuario legítimo). Sin embargo, como la autenticación mutua suele basarse en la clave pública, el robo de credenciales no es posible porque no hay credenciales que robar. Esto puede impedir que los ataques de phishing tengan efecto.

¿Qué protocolos son compatibles con la autenticación mutua?

Estos protocolos de red llevan incorporada la autenticación mutua u ofrecen la opción de utilizarla:

Protocolo Secure Shell (SSH): SSH es un protocolo de tunelización para conectarse de forma segura a un servidor o dispositivo en remoto. SSH puede utilizar la autenticación por clave pública o por certificado. En otras palabras, es posible autenticarse mutuamente en SSH con una clave pública o con un certificado de clave pública.

TLS: aunque TLS no autentifica mutuamente ambos extremos de una conexión por defecto, puede utilizarse con este fin. El TLS mutuo (mTLS) es uno de los tipos de autenticación mutua más aplicados. En mTLS, ambos lados de una conexión tienen un certificado TLS. mTLS se suele utilizar para la seguridad de las API, la seguridad del IoT y las aplicaciones de seguridad de Zero Trust.

¿Cloudflare ofrece autenticación mutua?

La autenticación mutua es el núcleo de varias de las soluciones de seguridad Zero Trust que ofrece Cloudflare. Cloudflare for Teams, un conjunto de soluciones Zero Trust para el control de acceso a aplicaciones y la navegación por Internet, ofrece mTLS para la verificación de usuarios y dispositivos. Cloudflare API Shield da soporte a mTLS para la autenticación y seguridad de la API.

Ventas