Entenda o TLS mútuo em Google Cloud

O TLS mútuo (mTLS) é um protocolo padrão do setor para autenticação mútua entre um cliente e um servidor. O protocolo mTLS garante que o cliente e o servidor, em cada extremidade de uma conexão de rede, sejam quem afirmam ser, verificando se ambos têm a chave privada associada ao certificado do cliente.

O que é um certificado do cliente?

Um certificado de cliente, também chamado de certificado de segurança da camada de transporte (TLS), é um arquivo que contém informações importantes para verificar a identidade de um dispositivo. As informações do certificado incluem a chave pública, uma declaração de quem emitiu o certificado (os certificados podem ser emitidos por autoridades certificadoras ou autoassinados) e a data de validade do certificado.

Como as APIs do Google validam a identidade do dispositivo

O protocolo TLS usa uma técnica chamada infraestrutura de chave pública (PKI), que depende de um par de chaves assimétricas: uma chave pública e uma chave privada. Qualquer coisa criptografada com a chave privada só pode ser descriptografada com a chave pública. As APIsGoogle Cloud usam o protocolo TLS para verificar a identidade de um dispositivo descriptografando a mensagem criptografada pela chave privada usando a chave pública do certificado durante o handshake mTLS. A descriptografia bem-sucedida prova a posse da chave privada, que só está disponível em dispositivos confiáveis.

Para ativar o processo de handshake e validação do mTLS, o cliente precisa fazer o seguinte:

  • Estabeleça uma conexão mTLS com as APIs do Google usando endpoints de API específicos de mTLS. Os endpoints específicos de mTLS têm o seguinte formato: [service].mtls.googleapis.com

  • Detectar e usar o certificado do dispositivo durante o handshake mTLS. Se você estiver usando a Verificação de endpoints para implantação de certificados, esse tipo de certificado será descoberto e usado automaticamente pelos clientes compatíveis.

O diagrama a seguir ilustra o handshake mTLS entre um cliente e um servidor da API do Google:

Handshake mTLS entre um cliente e um servidor da API do Google

A seguir