Sobre a autenticação mútua TLS para balanceadores de carga de aplicativos

A autenticação mútua do Transport Layer Security ( mTLS ) oferece maior segurança para o seu balanceador de carga de aplicativos (ALB) do IBM Cloud®, permitindo a autenticação baseada em certificado entre os clientes e o balanceador de carga, bem como entre o balanceador de carga e os servidores de back-end.

O que é o “ TLS ” mútuo?

mTLS é uma extensão do protocolo padrão TLS que exige que ambas as partes envolvidas em uma conexão se autentiquem mutuamente por meio de certificados digitais. Enquanto a autenticação de servidor ( TLS ) padrão exige apenas que o servidor apresente um certificado ao cliente, a autenticação de cliente e servidor ( mTLS ) exige que tanto o cliente quanto o servidor apresentem certificados, criando um mecanismo de autenticação bidirecional.

Com o suporte do mTLS para ALBs, é possível implementar a autenticação baseada em certificado em dois níveis:

Autenticação no front-end
Verifique a identidade dos clientes exigindo que eles apresentem certificados válidos ao se conectarem ao listener do balanceador de carga.
Autenticação no back-end
Autentique o balanceador de carga junto aos servidores de back-end apresentando um certificado de cliente e, opcionalmente, verifique os certificados dos servidores de back-end.

Principais recursos

O suporte ao ALB mTLS oferece os seguintes recursos:

Verificação do certificado do cliente no ouvinte
Habilite a autenticação de clientes no front-end do balanceador de carga, configurando um certificado de Autoridade Certificadora (CA) para verificar os certificados dos clientes. A verificação garante que apenas clientes com certificados válidos assinados pela CA confiável possam estabelecer conexões.
Suporte à Lista de Revogação de Certificados (CRL)
Carregue uma CRL para verificar se os certificados de cliente foram revogados, proporcionando uma camada adicional de segurança ao rejeitar certificados comprometidos ou vencidos.
Verificação do certificado do servidor back-end
Valide os certificados dos servidores back-end durante os handshakes do TLS para garantir que o balanceador de carga se conecte apenas a servidores back-end confiáveis. A validação ajuda a prevenir ataques do tipo “man-in-the-middle”.
Autenticação de clientes no back-end
Apresentar um certificado de cliente do balanceador de carga aos servidores de back-end quando a infraestrutura de back-end exigir o protocolo “ mTLS ”, permitindo uma autenticação bidirecional segura.

Casos de uso

mTLS A autenticação é importante em situações em que é necessário um nível mais elevado de segurança e verificação de identidade:

Arquiteturas de segurança de confiança zero
Implemente os princípios do modelo “zero-trust”, exigindo autenticação baseada em certificado para todas as conexões, garantindo que cada cliente e servidor seja verificado antes do estabelecimento da comunicação.
segurança de API
Proteja os pontos de extremidade da API exigindo que os clientes apresentem certificados válidos, impedindo o acesso não autorizado a APIs confidenciais e garantindo que apenas aplicativos autenticados possam utilizar seus serviços.
Comunicação entre microsserviços
Garanta a segurança da comunicação entre microsserviços por meio da implementação de uma arquitetura de camadas de segurança ( mTLS ) tanto no front-end quanto no back-end, garantindo que toda a comunicação entre serviços seja autenticada e criptografada.
Requisitos de conformidade
Atenda aos requisitos de conformidade regulatória que exigem mecanismos de autenticação robustos, como os dos setores de serviços financeiros, saúde ou governo.
Validação no servidor back-end
Certifique-se de que seu balanceador de carga se conecte apenas a servidores back-end legítimos, verificando seus certificados, a fim de se proteger contra instâncias back-end maliciosas ou comprometidas.

Como o mTLS funciona com balanceadores de carga de aplicativos

Os ALBs oferecem suporte à função de “ mTLS ” tanto para conexões do cliente ao balanceador de carga quanto do balanceador de carga ao servidor. Os fluxos de trabalho a seguir mostram como ocorre a validação do certificado durante cada handshake do protocolo TLS.

mTLS de front-end (nível do ouvinte)

Ao habilitar a autenticação de cliente ( mTLS ) no nível do ouvinte:

  1. Um cliente inicia uma conexão do tipo “ HTTPS ” com o balanceador de carga.
  2. O balanceador de carga apresenta seu certificado de servidor ao cliente.
  3. O balanceador de carga solicita um certificado de cliente ao cliente.
  4. O cliente apresenta seu certificado ao balanceador de carga.
  5. O balanceador de carga verifica se o certificado do cliente corresponde ao certificado da CA configurado.
  6. Se uma CRL estiver configurada, o balanceador de carga verifica se o certificado foi revogado.
  7. Se a verificação for bem-sucedida, a conexão é estabelecida. Caso contrário, a conexão é rejeitada.

mTLS de back-end (nível de pool)

Ao habilitar a autenticação do servidor ou a apresentação de certificado do cliente no nível do pool:

  1. O balanceador de carga inicia uma conexão com um servidor back-end.
  2. O servidor back-end apresenta seu certificado ao balanceador de carga.
  3. Se a verificação do servidor estiver ativada, o balanceador de carga valida o certificado do servidor back-end em relação ao certificado da CA configurado.
  4. Se o servidor back-end solicitar a autenticação do cliente, o balanceador de carga apresenta seu certificado de cliente.
  5. O servidor back-end verifica o certificado do cliente.
  6. Se a verificação for bem-sucedida, a conexão é estabelecida e o tráfego flui para o servidor back-end.

Suporte à Lista de Revogação de Certificados (CRL)

Uma CRL é uma lista de certificados que foram revogados pela CA antes de sua data de validade. Os certificados podem ser revogados por diversos motivos, incluindo:

  • A chave privada foi comprometida
  • O certificado foi emitido incorretamente
  • Os privilégios do titular do certificado foram alterados
  • O certificado já não é necessário

Ao configurar uma CRL para o seu listener, o balanceador de carga verifica cada certificado de cliente em relação à lista de revogação durante o handshake do protocolo TLS. Se um certificado constar na CRL, a conexão será rejeitada, mesmo que o certificado seja válido e esteja devidamente assinado.

O suporte ao CRL oferece uma camada adicional de segurança, garantindo que certificados comprometidos ou invalidados não possam ser usados para acessar seus serviços, mesmo que ainda não tenham expirado.

Pré-requisitos

Antes de configurar o “ mTLS ” para o seu ALB, certifique-se de que cumpre os seguintes requisitos:

  • Você possui um ALB com um perfil compatível com o mTLS. Verifique a propriedade “ mtls_supported ” no perfil do balanceador de carga.
  • Seu listener utiliza o protocolo HTTPS. O endereço mTLS está disponível apenas para listeners do tipo HTTPS.
  • Você possui certificados válidos no formato PEM armazenados em Secrets Manager.
  • Você possui as permissões adequadas do IAM para gerenciar balanceadores de carga e acessar certificados em Secrets Manager.

Requisitos do certificado

Todos os certificados utilizados para mTLS devem atender aos seguintes requisitos:

  • Os certificados devem estar no formato “ PEM ”.
  • Os certificados devem ser armazenados em Secrets Manager e identificados por meio de seu CRN.
  • Os certificados CA utilizados para verificação devem incluir a cadeia completa de certificados (certificados raiz e intermediários).
  • Os certificados de cliente apresentados pelo balanceador de carga aos servidores de back-end devem incluir a chave privada.
  • Os certificados devem estar válidos (não podem estar vencidos) e devidamente assinados por uma autoridade certificadora confiável.

Considerações importantes

Tenha em mente as seguintes considerações ao implementar mTLS:

Responsabilidade pelo gerenciamento de certificados
Você é responsável por gerenciar todos os certificados, incluindo a obtenção, o envio, a renovação e a revogação dos mesmos. O IBM Cloud não gerencia nem renova certificados automaticamente.
Validação do certificado
É necessário verificar se os certificados estão devidamente assinados pelas Autoridades Certificadoras previstas e se as relações de confiança estão corretamente estabelecidas. Certificados inválidos ou incompatíveis causam falhas no handshake d TLS e indisponibilidade do serviço.
Verificação do servidor back-end
A verificação do servidor back-end está desativada por padrão para manter a compatibilidade com versões anteriores. Quando essa opção estiver ativada, é necessário garantir que exista uma relação de confiança válida entre o balanceador de carga e os servidores de back-end, fazendo o upload do certificado da autoridade certificadora (CA) apropriado.
Configuração no nível do pool
Tanto a verificação do servidor back-end quanto a autenticação do cliente são configuradas no nível do pool. Todos os servidores de back-end de um pool utilizam a mesma configuração. Se você precisar de políticas de certificado diferentes para servidores de back-end distintos, crie grupos separados.
Atualizações de certificados
Para que as atualizações ou revogações de certificados entrem em vigor, pode ser necessário reiniciar o serviço de balanceamento de carga. Planeje as atualizações de certificados durante os períodos de manutenção para minimizar a interrupção do serviço.
Várias autoridades certificadoras
Quando os servidores de back-end do mesmo pool são assinados por diferentes autoridades certificadoras (CAs), é possível fornecer um arquivo agrupado de CAs contendo todos os certificados raiz e intermediários relevantes. Todos os servidores de back-end são considerados confiáveis se suas cadeias de certificados estiverem vinculadas a qualquer CA do pacote.

Próximas etapas