Ao configurar um listener HTTPS para uma instância CLB, a política de segurança TLS define quais versões do protocolo TLS e conjuntos de cifras serão usados na negociação TLS com os clientes. O CLB oferece diversas políticas de segurança TLS predefinidas.
Como funciona
Uma política de segurança TLS para CLB especifica as versões do protocolo TLS e os conjuntos de cifras compatíveis para a negociação TLS. Durante o handshake TLS, o cliente envia uma lista das versões de protocolo e dos conjuntos de cifras suportados em uma mensagem Client Hello. Com base na política configurada, o CLB seleciona uma combinação de versão de protocolo e conjunto de cifras mutuamente suportada a partir da lista do cliente e responde com uma mensagem Server Hello. Essa combinação determina as etapas subsequentes, como a troca de chaves e a geração da chave de sessão.
Políticas de segurança TLS
Padrões de conformidade de segurança podem exigir que sua instância CLB utilize uma política de segurança TLS específica. A tabela abaixo descreve as versões do protocolo TLS e os conjuntos de cifras suportados por cada política para ajudar você a selecionar aquela que atende aos seus requisitos. O CLB não oferece suporte a políticas de segurança TLS personalizadas. Caso necessite dessa funcionalidade, utilize o Application Load Balancer (ALB) ou o Network Load Balancer (NLB).
Para aplicações voltadas à Internet sem requisitos especiais de compatibilidade, recomendamos o uso da política tls_cipher_policy_1_2 ou de uma política mais restritiva.
Configure uma política de segurança TLS
Console
Ao adicionar um listener HTTPS, clique em Modify ao lado de Advanced Settings na aba Certificate Management Service. Na seção expandida, selecione uma TLS Security Policy.
Para modifique uma política de segurança TLS, acesse a aba Listener na página de detalhes da instância e clique em no nome do listener HTTPS desejado para abrir a caixa de diálogo Listener Details. Na seção SSL Certificate, modifique a TLS Security Policy.
API
Ao chamar CreateLoadBalancerHTTPSListener para crie um listener HTTPS ou SetLoadBalancerHTTPSListenerAttribute para modificá-lo, especifique a política de segurança TLS no parâmetro TLSCipherPolicy.
Faturamento
As políticas de segurança TLS são gratuitas. No entanto, o uso de instâncias CLB gera taxas.
Perguntas frequentes
Políticas de segurança TLS personalizadas no CLB
Não. O CLB suporta apenas políticas de segurança TLS predefinidas.
Caso precise de uma política de segurança TLS personalizada, por exemplo, para atender a requisitos específicos de conformidade de segurança, utilize um dos seguintes produtos:
ALB: Permite configure políticas de segurança TLS personalizadas para listeners HTTPS.
NLB: Possibilita a configuração de políticas de segurança TLS personalizadas para listeners tcp/ssl.
Por que minha configuração ssl_protocols do Nginx no backend não tem efeito?
O CLB encerra as conexões TLS. A versão TLS visível para os clientes é determinada pela política de segurança TLS do CLB, e não pela diretiva ssl_protocols nos servidores de backend. Para alterar as versões TLS suportadas, modifique a política de segurança TLS do listener HTTPS alvo: na aba Listener, clique em no nome do listener HTTPS para abrir a caixa de diálogo Listener Details e altere a política de segurança TLS na seção SSL Certificate.
Por que meu navegador ainda exibe um aviso de segurança mesmo com um certificado válido vinculado ao CLB?
As possíveis causas e sugestões de solução são:
Conjunto de cifras fraco na política de segurança TLS: Se a política de segurança TLS do seu listener HTTPS estiver definida como
tls_cipher_policy_1_0ou outra política que inclua conjuntos de cifras fracos (comoDES-CBC3-SHA), os navegadores poderão exibir um aviso de segurança porque esses conjuntos não suportam Perfect Forward Secrecy (PFS). Recomendamos acesse a página de detalhes da instância, clique em na aba Listener, clique em no nome do listener HTTPS alvo para abrir a caixa de diálogo Listener Details e altere a TLS Security Policy paratls_cipher_policy_1_2_strictna seção SSL Certificate.Regras de encaminhamento ou extensões de domínio desatualizadas: Se suas regras de encaminhamento ou extensões de domínio contiverem entradas obsoletas não relacionadas ao domínio de acesso atual, poderão ocorrer erros de incompatibilidade de domínio do certificado. Remova quaisquer regras de encaminhamento desnecessárias do listener.
Incompatibilidade de domínio do certificado ou certificado expirado: Verifique se o certificado de servidor vinculado ao listener cobre o domínio de acesso e se não expirou.
Cache do navegador: Limpe o cache do seu navegador e tente novamente.
Recomendamos seguir a ordem de solução de problemas listada acima.
Como corrigir a vulnerabilidade CVE-2016-2183?
A CVE-2016-2183 é uma vulnerabilidade de divulgação de informações ssl/TLS conhecida como ataque Sweet32. A causa raiz é a inclusão do conjunto de cifras DES-CBC3-SHA (3DES) na política de segurança TLS. As políticas tls_cipher_policy_1_0, tls_cipher_policy_1_1 e tls_cipher_policy_1_2 incluem esse conjunto de cifras.
Para corrigir essa vulnerabilidade:
Faça login no console CLB e acesse a instância CLB alvo.
Na aba Listener, clique em no nome do listener HTTPS alvo para abrir a caixa de diálogo Listener Details.
Na seção SSL Certificate, altere a TLS Security Policy para
tls_cipher_policy_1_2_strictoutls_cipher_policy_1_2_strict_with_1_3.Confirme e envie a alteração. Após a entrada em vigor da mudança, o conjunto de cifras
DES-CBC3-SHAserá removido e a CVE-2016-2183 será corrigida.
Recomendamos realizar essa alteração fora dos horários de pico. Se ocorrer algum problema após a mudança, reverta imediatamente a configuração do listener.
Ambiente de produção
Versão do protocolo TLS: Se sua aplicação não tiver requisitos especiais de compatibilidade, utilize TLS 1.2 e TLS 1.3 para obter segurança ideal.
Reversão: Caso ocorra algum problema após ajustar a política de segurança TLS, reverta a alteração imediatamente modificando a configuração do listener. Execute essas mudanças fora dos horários de pico.
Algoritmo de troca de chaves: A menos que sua aplicação tenha requisitos específicos de compatibilidade, evite os seguintes conjuntos de cifras baseados em RSA em ambiente de produção:
AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHAeDES-CBC3-SHA. Por não suportarem Perfect Forward Secrecy (PFS), esses conjuntos são vulneráveis a ataques de canal lateral. Priorize conjuntos de cifras que utilizem ECDHE ou DHE para troca de chaves.-
Classificação SSL Labs: Se seu teste SSL Labs retornar uma classificação B e o TLS 1.3 não for suportado, selecione
tls_cipher_policy_1_2_strict_with_1_3para ative o TLS 1.3 e alcançar a classificação A. O CLB encerra as conexões TLS — a versão TLS negociada com os clientes é determinada pela política de segurança TLS do CLB, e não pela configuraçãossl_protocolsnos servidores de backend.A tabela a seguir mostra a classificação SSL Labs associada a cada política:
Política de segurança TLS
Suporte a TLS 1.3
Classificação SSL Labs
tls_cipher_policy_1_0
Não
B
tls_cipher_policy_1_1
Não
B
tls_cipher_policy_1_2
Não
B
tls_cipher_policy_1_2_strict
Não
B
tls_cipher_policy_1_2_strict_with_1_3
Sim
A
Recomendações de segurança
As políticas tls_cipher_policy_1_0, tls_cipher_policy_1_1 e tls_cipher_policy_1_2 incluem o conjunto de cifras DES-CBC3-SHA (nome IANA: 3DES_EDE_CBC_SHA). Esse conjunto utiliza uma cifra de bloco de 64 bits e é vulnerável ao ataque Sweet32 (CVE-2016-2183). Atualize sua política de segurança TLS para tls_cipher_policy_1_2_strict ou superior para eliminar esse risco.
|
Política |
Inclui DES-CBC3-SHA |
Recomendação |
|
tls_cipher_policy_1_0 |
Sim |
Atualização necessária — risco Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_1 |
Sim |
Atualização necessária — risco Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_2 |
Sim |
Atualização necessária — risco Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_2_strict |
Não |
Seguro |
|
tls_cipher_policy_1_2_strict_with_1_3 |
Não |
Seguro |
Atualização pelo console
Faça login no console CLB e acesse a instância alvo.
Na aba Listener, clique em no nome do listener HTTPS alvo para abrir a caixa de diálogo Listener Details.
Na seção SSL Certificate, altere a TLS Security Policy para
tls_cipher_policy_1_2_strict.Confirme e envie a alteração.
Atualização pela API
Chame SetLoadBalancerHTTPSListenerAttribute e defina TLSCipherPolicy como tls_cipher_policy_1_2_strict.
Considerações de compatibilidade
A atualização para tls_cipher_policy_1_2_strict remove o suporte a TLS 1.0, TLS 1.1 e conjuntos de cifras legados, incluindo DES-CBC3-SHA. Antes de atualizar:
Verifique se seus clientes suportam TLS 1.2.
Realize a alteração fora dos horários de pico para minimizar o impacto nos negócios.
Mapeamento de conjuntos de cifras TLS
Esta tabela fornece o mapeamento entre o formato OpenSSL, o formato padrão IANA e a representação hexadecimal dos conjuntos de cifras TLS.