O TLS mútuo, ou mTLS, é um protocolo padrão da indústria para a autenticação mútua entre um cliente e um servidor. Garante que o cliente e o servidor se autenticam entre si, verificando se cada um tem um certificado válido emitido por uma autoridade de certificação (AC) fidedigna. Ao contrário do TLS padrão, em que apenas o servidor é autenticado, o mTLS requer que o cliente e o servidor apresentem certificados, confirmando as identidades de ambas as partes antes de a comunicação ser estabelecida.
O mTLS está configurado no recurso de proxy HTTPS de destino de todos os balanceadores de carga de aplicações:
- Balanceador de carga de aplicações externo global
- Balanceador de carga de aplicações clássico
- Balanceador de carga de aplicações externo regional
- Balanceador de carga de aplicações interno regional
- Balanceador de carga de aplicações interno entre regiões
O mTLS usa a infraestrutura de chave pública (PKI) para autenticar a identidade das entidades que comunicam através da rede. A infraestrutura inclui três componentes: um cliente, um servidor e uma autoridade de certificação (AC). O mTLS para equilibradores de carga suporta as seguintes funcionalidades:
Verificar se o cliente que apresenta o certificado possui a respetiva chave privada.
Valide os certificados de cliente num dos dois modos:
Rejeitar certificados inválidos: aplica uma autenticação rigorosa rejeitando pedidos se não for possível validar a cadeia de certificados de cliente.
Permitir certificados inválidos ou em falta: oferece flexibilidade ao transmitir todos os pedidos ao back-end, mesmo que um certificado de cliente esteja em falta ou seja inválido.
Validar certificados de cliente em relação a uma âncora de PKI carregada (certificado raiz), com a opção de adicionar várias âncoras separadamente para permitir uma migração perfeita de uma PKI antiga para uma nova sem tempo de inatividade.
Disponibilize certificados intermédios adicionais para ajudar a construir o caminho de validação do certificado do cliente em relação às âncoras de PKI especificadas (certificados de raiz). Estes certificados intermédios permitem que o mTLS funcione com clientes que não fornecem a cadeia de certificados completa.
Gere e transmita uma impressão digital do certificado ao back-end como um cabeçalho de pedido personalizado.
Transmita os campos selecionados extraídos do certificado para o back-end através de cabeçalhos personalizados.
Transmita o resultado da validação e quaisquer erros de validação ao back-end através de cabeçalhos personalizados.
Requisitos de certificado
Ao configurar certificados para mTLS, certifique-se de que estão em conformidade com estes requisitos:
- As ferramentas de criptografia modernas formam a base da autenticação mTLS. Os certificados têm de usar algoritmos RSA ou ECDSA para a troca de chaves. Os algoritmos de hash têm de usar SHA-256 ou uma função de hash criptográfica mais forte. Os algoritmos de hash, como MD4, MD5 e SHA-1, não são suportados.
- Para certificados de cliente (folha):
- A extensão Basic Constraints
não pode conter
CA=true. - A extensão Utilização alargada da chave
tem de conter
clientAuth. - A extensão Utilização alargada da chave
não deve conter os campos
codeSigning,timeStampingouOCSPSigning. - O certificado não pode ter expirado.
- O certificado de cliente não pode ser um certificado autoassinado.
- A extensão Basic Constraints
não pode conter
- Para certificados de raiz e intermédios:
- A extensão Restrições básicas
tem de conter
CA=true. - A extensão Key Usage
tem de ser definida como
keyCertSign. - A extensão Extended Key Usage
deve conter o campo
clientAuth. - O certificado não pode ter expirado.
- A extensão Restrições básicas
tem de conter
Arquitetura de uma implementação de mTLS
Com o mTLS, pode configurar um recurso de configuração de confiança, que contém um repositório de confiança. O repositório de confiança encapsula uma âncora de confiança (certificado de raiz) e, opcionalmente, um ou mais certificados intermédios. Quando o equilibrador de carga recebe um certificado de cliente, valida-o estabelecendo uma cadeia de fidedignidade do certificado de cliente até à âncora de fidedignidade configurada.
Segue-se uma breve vista geral dos diferentes recursos que tem de configurar para configurar o mTLS para o equilibrador de carga: