¿Qué es el TLS mutuo (mTLS)?

El TLS mutuo (mTLS) es un tipo de autenticación en el que las dos partes de una conexión se autentican mutuamente mediante el uso del protocolo TLS.

Objetivos de aprendizaje

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

  • Explicar cómo funciona el TLS mutuo (mTLS)
  • Entender la diferencia entre TLS mutuo y TLS normal
  • Ilustrar cómo detiene los ataques mTLS

Copiar enlace del artículo

¿Qué es el TLS mutuo (mTLS)?

El TLS mutuo, abreviado como mTLS, es un método de autenticación mutua. El mTLS garantiza que las partes de cada extremo de una conexión de red son quienes dicen ser, verificando que ambas tienen la clave privada correcta. La información incluida en sus respectivos certificados TLS proporciona una verificación adicional.

mTLS se suele utilizar en un marco de seguridad Zero Trust* para verificar los usuarios, dispositivos y servidores dentro de una organización. También puede ayudar a mantener la seguridad de las API.

*Zero Trust significa que no se confía por defecto en ningún usuario, dispositivo o tráfico de red, un enfoque que ayuda a eliminar muchas vulnerabilidades de seguridad.

¿Qué es TLS?

Transport Layer Security (TLS) es un protocolo de encriptación que se usa mucho en Internet. TLS, anteriormente conocido como SSL, autentica al servidor en una conexión cliente-servidor, y encripta las comunicaciones entre el cliente y el servidor para que partes externas no puedan espiar las comunicaciones.

Hay tres cosas importantes que hay que entender sobre cómo funciona TLS:

1. Clave pública y clave privada

TLS funciona con una técnica conocida como encriptación de clave pública, que se basa en un par de claves: una clave pública y una clave privada.

  • Todo lo que se encripte con la clave pública solo se podrá desencriptar con la clave privada
  • Todo lo que se encripte con la clave privada solo se podrá desencriptar con la clave pública

Por tanto, un servidor que desencripta un mensaje encriptado con la clave pública demuestra que posee la clave privada. Cualquiera puede ver la clave pública consultando el certificado TLS del dominio o del servidor.

2. Certificado TLS

Un certificado TLS es un archivo de datos que contiene información importante para verificar la identidad de un servidor o dispositivo, incluyendo la clave pública, una declaración de quién emitió el certificado (los certificados TLS los emite una agencia certificadora) y la fecha de caducidad del certificado.

3. Protocolo de enlace TLS

El protocolo de enlace TLS es el proceso para verificar el certificado TLS y la posesión de la clave privada por parte del servidor. El protocolo de enlace TLS también establece cómo se llevará a cabo la encriptación una vez haya finalizado el protocolo de enlace.

¿Cómo funciona mTLS?

Lo normal es que en TLS el servidor tenga un certificado TLS y un par de claves públicas/privadas, mientras que el cliente no los tiene. El proceso típico de TLS funciona de la siguiente manera:

  1. El cliente se conecta al servidor
  2. El servidor presenta su certificado TLS
  3. El cliente verifica el certificado del servidor
  4. El cliente y el servidor intercambian información a través de una conexión TLS encriptada

Sin embargo, en mTLS, tanto el cliente como el servidor tienen un certificado, y ambas partes se autentican utilizando su par de claves públicas/privadas. En comparación con el TLS normal, en mTLS hay pasos adicionales para verificar a ambas partes (pasos adicionales en en negrita):

  1. El cliente se conecta al servidor
  2. El servidor presenta su certificado TLS
  3. El cliente verifica el certificado del servidor
  4. El cliente presenta su certificado TLS
  5. El servidor verifica el certificado del cliente
  6. El servidor concede el acceso
  7. El cliente y el servidor intercambian información a través de una conexión TLS encriptada

Agencias certificadoras en mTLS

La organización que implementa mTLS actúa como su propia agencia certificadora. Esto se diferencia del TLS estándar, en el que la agencia certificadora es una organización externa que comprueba si el propietario del certificado es el legítimo dueño del dominio asociado (más información sobre la validación de certificados TLS).

Para mTLS es necesario un certificado TLS "raíz"; esto permite que una organización pueda ser su propia agencia certificadora. Los certificados utilizados por los clientes y servidores autorizados tienen que corresponder a este certificado raíz. El certificado raíz está autofirmado, lo que significa que es la propia organización la que lo crea. (Este enfoque no funciona para TLS unidireccional en la Internet pública, porque una agencia certificadora externa tiene que emitir esos certificados).

¿Por qué utilizar mTLS?

mTLS ayuda a garantizar que el tráfico sea seguro y de confianza en ambas direcciones entre un cliente y un servidor. Esto ofrece una capa adicional de seguridad para los usuarios que se conectan a la red o a las aplicaciones de una organización. También verifica las conexiones con dispositivos cliente que no siguen un proceso de inicio de sesión, como los dispositivos del Internet de las Cosas (IoT).

mTLS evita varios tipos de ataques, entre los que se incluyen:

  • Ataques en ruta: los atacantes en ruta se sitúan entre un cliente y un servidor, e interceptan o modifican las comunicaciones entre ambos. Cuando se utiliza mTLS, los atacantes en ruta no pueden autenticar ni al cliente ni al servidor, lo que hace que este ataque sea casi imposible de llevar a cabo.
  • Ataques de suplantación: los atacantes pueden intentar "suplantar" (imitar) un servidor web a un usuario, o viceversa. Los ataques de suplantación son mucho más complicados cuando ambas partes tienen que autenticarse con certificados TLS.
  • Relleno de credenciales: los atacantes utilizan conjuntos de credenciales filtrados de una fuga de datos para intentar iniciar sesión como un usuario legítimo. Sin un certificado TLS emitido de forma legítima, los ataques de relleno de credenciales no pueden tener éxito contra las organizaciones que utilizan mTLS.
  • Ataques de fuerza bruta: llevado a cabo normalmente con bots, un ataque de fuerza bruta es cuando un atacante utiliza el método de ensayo y error rápido para adivinar la contraseña de un usuario. mTLS garantiza que una contraseña no sea suficiente para acceder a la red de una organización. (La limitación de velocidad es otra forma de hacer frente a este tipo de ataque de bots).
  • Ataques de phishing: el objetivo de un ataque de phishing suele ser robar las credenciales del usuario, y luego utilizarlas para poner en riesgo una red o una aplicación. Incluso si un usuario cae en un ataque de este tipo, el atacante sigue necesitando un certificado TLS y una clave privada correspondiente para poder utilizar esas credenciales.
  • Peticiones maliciosas de la API: cuando se utiliza para la seguridad de la API, mTLS garantiza que las solicitudes de la API procedan únicamente de usuarios legítimos y autenticados. Esto impide que los atacantes envíen solicitudes de API maliciosas que tengan como objetivo aprovechar una vulnerabilidad o subvertir la forma en que se supone que funciona la API.

Los sitios web ya utilizan TLS, así que ¿por qué no se utiliza mTLS en todo Internet?

Para los fines cotidianos, la autenticación unidireccional ofrece suficiente protección. Los objetivos de TLS en la Internet pública son: 1) asegurar que la gente no visite sitios web suplantados, 2) mantener los datos privados seguros y encriptados mientras cruzan las diversas redes que forman Internet, y 3) asegurar que los datos no sean alterados en tránsito. El TLS unidireccional, por el que el cliente solo verifica la identidad del servidor, cumple estos objetivos.

Además, sería extremadamente difícil distribuir certificados TLS a todos los dispositivos de los usuarios finales. Generar, gestionar y verificar los miles de millones de certificados necesarios para ello es una tarea casi imposible.

Pero a menor escala, mTLS es muy útil y bastante práctico para las organizaciones individuales, especialmente cuando esas organizaciones emplean un enfoque Zero Trust para la seguridad de la red. Ya que un enfoque Zero Trust no confía por defecto en ningún usuario, dispositivo o solicitud, las organizaciones deben ser capaces de autenticar a cada usuario, dispositivo y solicitud cada vez que intenten acceder a cualquier punto de la red. mTLS ayuda a hacer esto posible al autenticar a los usuarios y verificar los dispositivos.

¿Cómo utiliza Cloudflare mTLS?

Cloudflare for Teams utiliza mTLS para la seguridad Zero Trust. Cloudflare API Shield también utiliza mTLS para verificar los puntos de conexión de la API, lo que garantiza que ninguna parte no autorizada pueda enviar solicitudes de la API que sean potencialmente maliciosas. Más información sobre cómo implementar mTLS con Cloudflare.

Ventas