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:
- Um cliente inicia uma conexão do tipo “ HTTPS ” com o balanceador de carga.
- O balanceador de carga apresenta seu certificado de servidor ao cliente.
- O balanceador de carga solicita um certificado de cliente ao cliente.
- O cliente apresenta seu certificado ao balanceador de carga.
- O balanceador de carga verifica se o certificado do cliente corresponde ao certificado da CA configurado.
- Se uma CRL estiver configurada, o balanceador de carga verifica se o certificado foi revogado.
- 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:
- O balanceador de carga inicia uma conexão com um servidor back-end.
- O servidor back-end apresenta seu certificado ao balanceador de carga.
- 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.
- Se o servidor back-end solicitar a autenticação do cliente, o balanceador de carga apresenta seu certificado de cliente.
- O servidor back-end verifica o certificado do cliente.
- 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.