La TLS mutua (mTLS) es un protocolo estándar de la industria para la autenticación mutua entre un cliente y un servidor. El protocolo mTLS garantiza que el cliente y el servidor, en cada extremo de una conexión de red, sean quienes dicen ser a través de la verificación de que ambos poseen la clave privada asociada con el certificado del cliente.
¿Qué es un certificado de cliente?
Un certificado de cliente, también llamado certificado de seguridad de 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 (las autoridades certificadoras pueden emitir certificados o autofirmarlos) y la fecha de vencimiento del certificado.
Cómo las APIs de Google validan la identidad del dispositivo
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 una privada. Todo lo que se encripta con la clave privada solo se puede desencriptar con la clave pública. Las APIs deGoogle Cloud usan el protocolo TLS para verificar la identidad de un dispositivo desencriptando el mensaje encriptado por la clave privada con la clave pública del certificado durante el protocolo de enlace mTLS. La desencriptación correcta demuestra la posesión de la clave privada, que solo está disponible desde dispositivos de confianza.
Para habilitar el proceso de validación y enlace de mTLS, un cliente debe hacer lo siguiente:
Establece una conexión de mTLS con las APIs de Google mediante extremos de API específicos de mTLS. Los extremos específicos de mTLS tienen el siguiente formato:
[service].mtls.googleapis.com
Descubre y usa el certificado del dispositivo durante el protocolo de enlace mTLS. Si estás usando la Verificación de extremos para la implementación de certificados, los clientes compatibles descubren y usan automáticamente este tipo de certificado.
En el siguiente diagrama, se ilustra el protocolo de enlace mTLS entre un cliente y un servidor de la API de Google: