Información sobre TLS mutuo en Google Cloud

TLS mutuo (mTLS) es un protocolo estándar del sector para la autenticación mutua entre un cliente y un servidor. El protocolo mTLS asegura que tanto el cliente como el servidor, en cada extremo de una conexión de red, sean quienes dicen ser. Para ello, verifica que ambos tengan la clave privada asociada al certificado de cliente.

¿Qué es un certificado de cliente?

Un certificado de cliente, también llamado certificado de seguridad en la capa de transporte (TLS), es un archivo que contiene información importante para verificar la identidad de un dispositivo. La información del certificado incluye la clave pública, una declaración de quién emitió el certificado (los certificados pueden ser emitidos por autoridades de certificación o autofirmados) y la fecha de vencimiento del certificado.

Cómo validan las APIs de Google la identidad de los dispositivos

El protocolo TLS usa una técnica llamada infraestructura de clave pública (PKI), que se basa en un par de claves asimétricas: una pública y otra privada. Todo lo que se cifre con la clave privada solo se puede descifrar con la clave pública. Las APIs deGoogle Cloud usan el protocolo TLS para verificar la identidad de un dispositivo. Para ello, descifran el mensaje cifrado con la clave privada mediante la clave pública del certificado durante el handshake de mTLS. Si el descifrado se realiza correctamente, se demuestra que se posee la clave privada, que solo está disponible en dispositivos de confianza.

Para habilitar el proceso de handshake y validación de mTLS, un cliente debe hacer lo siguiente:

  • Establece una conexión mTLS con las APIs de Google mediante endpoints de API específicos de mTLS. Los endpoints específicos de mTLS tienen el siguiente formato: [service].mtls.googleapis.com

  • Descubre y usa el certificado del dispositivo durante el handshake de mTLS. Si usas Endpoint Verification para implementar certificados, los clientes compatibles detectan y usan automáticamente este tipo de certificado.

En el siguiente diagrama se muestra el handshake de mTLS entre un cliente y un servidor de APIs de Google:

Handshake de mTLS entre un cliente y un servidor de APIs de Google

Siguientes pasos