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 afirman ser. Para ello, verifica que ambos tengan 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 los certificados o los 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 una privada. Todo lo que esté encriptado con la clave privada se puede desencriptar con la clave pública. Las APIs de Google Cloud usan el protocolo TLS para verificar la identidad de un dispositivo mediante la desencriptación del mensaje encriptado por la clave privada con la clave pública del certificado durante el protocolo de enlace mTLS. La desencriptación correcta prueba la posesión de la clave privada, que solo está disponible en dispositivos de confianza.
Para habilitar el protocolo de enlace y el proceso de validación 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 usas la Verificación de extremos para la implementación de certificados, los clientes admitidos descubren y usan este tipo de certificado de forma automática.
En el siguiente diagrama, se ilustra el protocolo de enlace mTLS entre un cliente y un servidor de la API de Google: