A política de segurança do My Application Load Balancer lista as cifras RSA e ECDSA. Mas quando me conecto ao Load Balancer, sempre vejo as cifras RSA selecionadas. Como consigo que o Load Balancer use cifras ECDSA para criptografia TLS?
Breve descrição
Um listener HTTPS do Application Load Balancer pode ser configurado com vários certificados, mas requer uma única política de segurança. Cada política de segurança contém cifras para os algoritmos criptográficos RSA e ECDSA. Durante o handshake TLS, o Application Load Balancer usa a lógica do processo de seleção para determinar qual certificado do Application Load Balancer será usado para a conexão HTTPS. Se o certificado escolhido for criado usando chaves RSA ou ECDSA (curva elíptica), o Application Load Balancer utilizará cifras RSA ou ECDSA para criptografia.
Observação: os certificados públicos gerados pelo AWS Certificate Manager (ACM) usam chaves RSA. Portanto, é esperado que a criptografia com um Application Load Balancer usando qualquer certificado do ACM utilize cifras RSA. Você deve importar certificados assinados ECDSA para o ACM e associá-los ao listener HTTPS para utilizar cifras ECDSA para criptografia.
Resolução
Para usar cifras ECDSA com o Application Load Balancer, realize as seguintes etapas:
Importe os novos certificados ECDSA para o AWS Certificate Manager e vincule-os ao HTTPS Listener
Depois de trabalhar com a CA (autoridade de certificação) para obter certificados ECDSA para o domínio no formato PEM, execute as seguintes etapas:
1. Importe o novo certificado ECDSA para o AWS Certificate Manager.
2. Associe o certificado ECDSA recém-importado ao Application Load Balancer.
(Opcional) Teste o listener TLS do balanceador de carga para verificar as cifras compatíveis
Para testar quais protocolos e cifras serão usados, use uma ferramenta da linha de comando de código aberto, como o sslscan.
Observação: o uso do sslscan permite obter informações completas de todas as cifras sem usar um utilitário adicional de terceiros. Por exemplo, se você usar cURL, deverá especificar conjuntos de cifras individuais que exigem solicitações cURL separadas especificando protocolos TLS e conjuntos de cifras.
Você pode instalar e executar o comando sslscan em qualquer instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) ou em seu sistema local. Certifique-se de que o Load Balancer que você deseja testar aceite conexões TLS do endereço IP de origem.
Para usar o sslscan em uma instância do Amazon Linux EC2, realize as seguintes etapas:
1. Habilite o repositório Extra Packages for Enterprise Linux (EPEL).
2. Instale o sslscan na instância Linux do Amazon EC2 usando o seguinte comando:
sudo yum install sslscan
3. Use a seguinte sintaxe de comando para verificar as cifras compatíveis no Application Load Balancer, substituindo “example.com” pelo nome do domínio:
[ec2-user@ ~]$ sslscan --show-ciphers example.com | grep Accepted
Veja um exemplo de saída que mostra os resultados da execução de uma verificação de vulnerabilidade no Application Load Balancer usando um certificado P-256 ECDSA e uma política de segurança padrão:
Accepted TLSv1 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLSv1 128 bits ECDHE-ECDSA-AES128-SHA
Accepted TLS11 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLS11 128 bits ECDHE-ECDSA-AES128-SHA
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-GCM-SHA384
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-SHA384
Accepted TLS12 256 bits ECDHE-ECDSA-AES256-SHA
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-GCM-SHA256
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-SHA256
Accepted TLS12 128 bits ECDHE-ECDSA-AES128-SHA
Para comparação, veja o exemplo de saída de uma verificação de vulnerabilidade no Load Balancer usando um certificado RSA 2048 e uma política de segurança padrão:
Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA
Accepted TLSv1 256 bits AES256-SHA
Accepted TLSv1 128 bits ECDHE-RSA-AES128-SHA
Accepted TLSv1 128 bits AES128-SHA
Accepted TLS11 256 bits ECDHE-RSA-AES256-SHA
Accepted TLS11 256 bits AES256-SHA
Accepted TLS11 128 bits ECDHE-RSA-AES128-SHA
Accepted TLS11 128 bits AES128-SHA
Accepted TLS12 256 bits ECDHE-RSA-AES256-GCM-SHA384
Accepted TLS12 256 bits ECDHE-RSA-AES256-SHA384
Accepted TLS12 256 bits ECDHE-RSA-AES256-SHA
Accepted TLS12 256 bits AES256-GCM-SHA384
Accepted TLS12 256 bits AES256-SHA256
Accepted TLS12 256 bits AES256-SHA
Accepted TLS12 128 bits ECDHE-RSA-AES128-GCM-SHA256
Accepted TLS12 128 bits ECDHE-RSA-AES128-SHA256
Accepted TLS12 128 bits ECDHE-RSA-AES128-SHA
Accepted TLS12 128 bits AES128-GCM-SHA256
Accepted TLS12 128 bits AES128-SHA256
Accepted TLS12 128 bits AES128-SHA
Se você configurou corretamente os certificados ECDSA no Application Load Balancer, a saída mostrará os conjuntos de cifras <ECDHE-ECDSA-*> negociados. Se a saída mostrar outros conjuntos de cifras, revise e atualize a política de segurança do Application Load Balancer.