
Quando insiro a versão do meu servidor (NGINX 1.16.0) e a versão OpenSSL (1.0.2k) noGerador de configuração SSL MozillaRecebo uma longa lista de cifras SSL.
Por exemplo,
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
No entanto, quando eu visitoCipherli.stfornece apenas duas cifras SSL para Nginx.
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
Ter menos cifras disponíveis reduz ou compromete a segurança? Se eu oferecer menos opções de criptografia aos clientes, isso melhorará o desempenho ou ajustará alguma outra característica importante?
Responder1
Uma das vantagens do TLS (e do SSL antes disso) é que o servidor e o cliente podem (e geralmente devem) negociar e concordar com uma cifra que eles suportam mutuamente quando uma conexão segura é iniciada.
A razão para isso é principalmente a compatibilidade: permite uma introdução gradual de novas cifras em vez de quebrar a conectividade entre clientes e servidores que ainda não suportam essa nova cifra.
Isso é o que aconteceria quando apenas uma cifra fosse utilizada, sem negociação. Então, quando uma parte decide abandonar uma cifra antiga e atualizar para uma nova e faz isso sem coordenar com as outras partes, a conectividade é interrompida. Em uma única organização, coordenar uma atualização simultânea de servidores e clientes já é uma tarefa árdua, embora possível, na Internet em geral, uma atualização tão grande é, obviamente, quase impossível.
Assim: a negociação de cifras é boa. (Para compatibilidade, pelo menos.)
Ter menos cifras disponíveis reduz ou compromete a segurança?
Não. Onúmero de cifrasnão determina a segurança.
São as próprias cifras que fornecem a segurança.
Embora algumas cifras sejam relativamente mais seguras que outras (algoritmos diferentes ou o mesmo algoritmo com comprimentos de chave mais longos e a capacidade de fornecersegurança diretapode tornar alguns mais seguros do que outros) e outros são fracos ou mesmo quebrados,não há benefício adicional de segurança em suportar apenas algumas e não todas as cifras que atendem aos seus requisitos de segurança.
(Com a pequena ressalva de que cada cifra que você suporta também precisa vir com uma implementação em software. Assim, mais cifras == mais código == maior probabilidade de bugs e erros de implementação...)
Se eu oferecer menos opções de criptografia aos clientes, isso melhorará o desempenho ou ajustará alguma outra característica importante?
Não, embora cifras diferentes tenham estatísticas de desempenho e casos de uso significativamente diferentes, com exceção da advertência acima sobre como menos cifras significam menos código e um risco menor em explorações de dia zero,onúmero de cifrasvocê oferece suporte ao lado do servidor não afeta o desempenhode qualquer forma relevante. Não há benefício adicional de desempenho no suporte apenas a algumas e não a todas as cifras que atendem aos seus requisitos de segurança.
Menos cifras suportadas significam menos compatibilidade.(Porque você normalmente restringe os servidores às cifras mais recentes e mais fortes que os clientes mais antigos podem não suportar e/ou que podem ser muito caras do ponto de vista computacional para eles.)
Registre as strings do User-Agent e faça um inventário sobre qual será o impacto quando você atualizar seu configurações de segurança de servidores web referenciando uma tabela comoCapacidades do agente de usuário do SSL Lab antecipadamente.