Conoce cómo mTLS puede aumentar la seguridad de tus aplicaciones

mTLS añade una capa extra de confianza a tus aplicaciones y ayuda a prevenir formas de robo de datos comunes.

Rafael Rigues - Technical Researcher
Conoce cómo mTLS puede aumentar la seguridad de tus aplicaciones

La seguridad es una preocupación constante en cualquier tipo de infraestructura de red. Es necesario proteger a los clientes, servidores y datos contra ataques, que podrían venir de fuera o dentro de la propia red.

Los delincuentes tienen como objetivo obtener tu información, ya sean datos de tarjetas de crédito de tus clientes o el plan estratégico de su empresa, y aprovecharán cualquier oportunidad para acceder a ella.

Las estrategias de estos agentes malintencionados incluyen técnicas como el robo de credenciales de acceso, interceptación de datos en tránsito (ataques man-in-the-middle), spoofing (o suplantación de identidad: cuando un delincuente se hace pasar por un componente legítimo de la red para robar datos) y abuso de API (manipulación de llamadas para generar resultados inesperados y extraer datos), por citar algunos ejemplos.

Una forma de protegerse contra estas y otras amenazas es implantar un esquema de autenticación mutua en tu infraestructura: antes de iniciar una conexión, clientes y servidores verifican su identidad mediante certificados digitales y toda la comunicación entre ellos se cifra.

Este esquema se denomina mTLS (Mutual Transport Layer Security, TLS mutuo) y está disponible en la Plataforma de Edge Computing de Azion. En este artículo explicaremos cómo funciona y los beneficios que puede aportar.

El problema de la confianza

Imaginemos una aplicación sencilla compuesta por un front-end, como la página de un e-commerce, y un servidor, donde se procesan y almacenan los datos procedentes del front-end. Para que funcione de forma segura, hay que asegurarse de que:

  1. El cliente sea quien dice ser y esté autorizado a acceder al servidor.
  2. El servidor sea quien dice ser y no un impostor.
  3. Los datos no puedan ser interceptados en el camino entre el cliente y el servidor.

Una forma de implementar la seguridad es con el uso de credenciales de acceso como nombre de usuario y contraseña. En este modelo, una aplicación solo puede acceder a los recursos de un servidor tras presentar unas credenciales válidas. ¿Esto resuelve el problema? No del todo…

Por sí mismo, este sistema tiene múltiples puntos de fallo: las contraseñas débiles pueden ser descifradas mediante un ataque de “fuerza bruta” y las contraseñas fuertes pueden ser robadas mediante ingeniería social u otros métodos.

Además, este da por supuesto que cualquier poseedor de credenciales válidas es un cliente legítimo. Esto significa que un malhechor en posesión de las credenciales podría conectarse al servidor sin ser cuestionado. ¡Y esto podría ser solo el punto 1 de una larga lista de vulnerabilidades!

Cómo TLS y mTLS funcionan

Un enfoque mejor es establecer una cadena de confianza utilizando certificados digitales. Ya utilizas este sistema a diario, aunque no lo sepas.

Al acceder a un sitio web seguro (indicado por el uso del protocolo HTTPS en la URL), el servidor envía al cliente (tu navegador) un certificado TLS emitido por una CA (Certification Authority, autoridad certificadora) que contiene información sobre la identidad del propietario del certificado y una fecha de caducidad.

El navegador comprueba esta información con la CA y así puede garantizar que el servidor es realmente quien dice ser, como una tienda online o un banco, y no un impostor que intente robar su información.

El certificado también incluye una clave criptográfica, que se utilizará para cifrar todos los datos en tránsito con el objetivo de evitar que sean interceptados. Este proceso se conoce como TLS Handshake (apretón de manos TLS). 

En este ejemplo solo se verifica la identidad del servidor. mTLS es una extensión de este concepto en el que tanto el servidor como el cliente intercambian certificados para validar sus identidades. Solo entonces se establece una conexión y los datos pueden circular.

Diagrama que muestra los pasos de un "apretón de manos TLS"

Cómo funciona una conexión mTLS típica. 1) El cliente (izquierda) abre una conexión con el servidor (derecha). 2) El servidor envía su certificado. 3) El cliente valida el certificado del servidor y entrega el suyo. 4) El servidor valida el certificado del cliente y establece la conexión. Imagen: Azion Technologies.

Cabe señalar que mTLS no es un protocolo nuevo. Forma parte de la especificación TLS y cualquier servidor capaz de realizar autenticación TLS también es capaz de realizar mTLS; solo tiene que estar configurado para ello.

Ventajas de mTLS

mTLS cumple todos los requisitos de nuestro ejemplo anterior:

  • Garantiza la identidad del cliente, independientemente de las credenciales de acceso. Incluso si consigue averiguar cuáles son, una persona malintencionada no tendrá acceso a la aplicación porque no dispone de un certificado válido. Esto hace imposibles los ataques basados en el robo de credenciales.

  • Garantiza la identidad del servidor, impidiendo los ataques de spooting. Si el servidor presenta un certificado no válido, la conexión ni siquiera se establece y cualquier intento de ataque se frustra antes de que pueda comenzar.

  • Evita los ataques man-in-the-midle. Los datos en tránsito se cifran mediante una clave seleccionada durante el handshake inicial, que solo conocen el cliente y el servidor. Aunque sean interceptados por un delincuente, sin la clave será imposible descifrarlos.

Estas características hacen de mTLS una función esencial en segmentos de mercado como el financiero y el comercio electrónico, donde la seguridad de la información es vital. También es uno de los pilares para implantar una arquitectura de seguridad de Zero Trust (confianza cero), cuyo lema es “nunca confíes, siempre verifica”.  

También puede utilizarse para autenticar estaciones de trabajo en una red corporativa, sensores en una infraestructura de internet de las cosas (IoT), aplicaciones que se ejecutan en el edge o en cualquier otra situación en la que se requiera confianza mutua.

mTLS en la Plataforma de Edge Computing de Azion

La Plataforma de Edge Computing de Azion es compatible con mTLS. Es un prerrequisito para el open banking y puede ser necesaria si tu edge application disponibiliza pagos y otros servicios financieros.

Para habilitar mTLS, tu aplicación debe operar con el protocolo HTTPS. También necesitas un certificado digital con soporte mTLS, generado por una autoridad de certificación externa. En Azion, llamamos a este certificado Trusted CA. Recuerda que los certificados gratuitos, generados internamente por Azion (Azion [SAN]), no incluyen soporte para mTLS.

Para más detalles sobre cómo configurar el soporte mTLS en tu aplicación, consulta nuestra documentación.

Conclusión

mTLS es una herramienta esencial para proteger tus servidores y aplicaciones. Con ella garantizas la privacidad de los datos de tus clientes y el compliance de los estándares de seguridad globalmente reconocidos.

Para obtener más información sobre cómo los servicios de Azion pueden ayudarte a aumentar el nivel de seguridad brindado a tus usuarios y a tu organización, puedes entrar en contacto con uno de nuestros experts.

Suscríbete a nuestro boletín informativo