Entender o TLS mútuo no 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 do cliente, também chamado de certificado Transport Layer Security (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 (ICP), que depende de um par de chaves assimétricas: uma chave pública e uma chave privada. Tudo o que for criptografado com a chave privada pode ser descriptografado somente com a chave pública. As APIs do Google 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 de mTLS. A descriptografia bem-sucedida prova que a chave privada está disponível apenas em dispositivos de confiança.

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

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

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

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

handshake de mTLS entre um cliente e um servidor de API do Google

A seguir