Recentemente, foi publicada uma nova vulnerabilidade em Diffie-Hellman, informalmente chamada de 'logjam', para a qual esta página foi montada sugerindo como combater a vulnerabilidade:
Temos três recomendações para implantar corretamente o Diffie-Hellman for TLS:
- Desative Exportar conjuntos de criptografia. Embora os navegadores modernos não suportem mais pacotes de exportação, os ataques FREAK e Logjam permitem que um invasor intermediário induza os navegadores a usar criptografia de nível de exportação, após o qual a conexão TLS pode ser descriptografada. As cifras de exportação são um remanescente da política da década de 90 que impedia a exportação de fortes protocolos criptográficos dos Estados Unidos. Nenhum cliente moderno depende de suítes de exportação e há pouca desvantagem em desativá-los.
- Implante (efêmero) curva elíptica Diffie-Hellman (ECDHE). A troca de chaves Elliptic-Curve Diffie-Hellman (ECDH) evita todos os ataques criptoanalíticos conhecidos e os navegadores modernos agora preferem o ECDHE do que o campo finito original, Diffie-Hellman. Os algoritmos de log discretos que usamos para atacar os grupos Diffie-Hellman padrão não obtêm uma vantagem tão forte da pré-computação, e os servidores individuais não precisam gerar curvas elípticas exclusivas.
- Gere um grupo Diffie Hellman forte e exclusivo . Alguns grupos fixos são usados por milhões de servidores, o que os torna um alvo ideal para pré-computação e possível interceptação. Os administradores devem gerar grupos Diffie-Hellman exclusivos, com 2048 bits ou mais fortes, usando números primos "seguros" para cada site ou servidor.
Quais são as etapas de práticas recomendadas que devo seguir para proteger meu servidor de acordo com as recomendações acima?
apache-2.2
ssl
apache-2.4
httpd
vulnerability
Christophe De Troyer
fonte
fonte
Respostas:
No artigo que você vinculou , há três etapas recomendadas para se proteger contra essa vulnerabilidade. Em princípio, essas etapas se aplicam a qualquer software que você possa usar com SSL / TLS, mas aqui trataremos das etapas específicas para aplicá-las ao Apache (httpd), pois esse é o software em questão.
Lidamos com as alterações de configuração que faremos em 2. abaixo (
!EXPORT
próximo ao final daSSLCipherSuite
linha é como desabilitaremos os conjuntos de cifras de exportação)Para isso, você precisa editar algumas configurações em seus arquivos de configuração do Apache - ou seja
SSLProtocol
,SSLCipherSuite
,SSLHonorCipherOrder
ter uma configuração de "melhores práticas". Algo como o seguinte será suficiente:Nota: quanto a qual
SSLCipherSuite
configuração usar, isso está sempre mudando e é uma boa ideia consultar recursos como este para verificar a configuração recomendada mais recente.Para fazer isso, você pode executar
openssl dhparam -out dhparams.pem 2048
.Observe que isso sobrecarregará significativamente o servidor enquanto os parâmetros são gerados - você sempre pode contornar esse problema em potencial gerando os parâmetros em outra máquina e usando
scp
ou semelhante para transferi-los para o servidor em questão para uso.Para usar estes recém-gerados
dhparams
no Apache, na documentação do Apache :(ênfase minha)
que é seguido por um parâmetro DH padrão de 1024 bits. A partir disso, podemos inferir que os parâmetros DH gerados sob encomenda podem ser simplesmente anexados ao relevante
SSLCertificateFile
em questão.Para fazer isso, execute algo semelhante ao seguinte:
cat /path/to/custom/dhparam >> /path/to/sslcertfile
Como alternativa, de acordo com a subseção Apache do artigo que você vinculou originalmente, você também pode especificar o arquivo dhparams personalizado que você criou, se preferir não alterar o arquivo de certificado, assim:
SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"
nas configurações do Apache que sejam relevantes para sua implementação específica de SSL / TLS - geralmente em
conf.d/ssl.conf
ouconf.d/vhosts.conf
mas isso será diferente dependendo de como você configurou o Apache.Vale ressaltar que, conforme este link ,
No Debian Wheezy, atualize o apache2 para 2.2.22-13 + deb7u4 ou posterior e o openssl para 1.0.1e-2 + deb7u17. O SSLCipherSuite acima não funciona perfeitamente. Em vez disso, use o seguinte conforme este blog :
Você deve verificar se a sua versão do Apache é posterior a esses números de versão, dependendo da sua distribuição e, se não estiver, atualize-a, se possível.
Depois de executar as etapas acima para atualizar sua configuração e reiniciar o serviço Apache para aplicar as alterações, verifique se a configuração é desejada, executando os testes no SSLLabs e no artigo relacionado a essa vulnerabilidade específica.
fonte
Com base em um patch do Winni Neessen, publiquei uma correção para o Apache / 2.2.22 (Debian Wheezy, talvez também utilizável no Ubuntu): https://flo.sh/debian-wheezy-apache2-logjam-fix/ - thx . pelo seu feedback.
fonte
Em vez de seguir a rota complexa dos 'hacks' acima, considere mudar para o nginx como seu principal servidor de software (não apenas cache ou proxy). Obviamente, parece mais com os padrões atuais, em termos de segurança, do que os antigos mecanismos apache. Ao usar o repositório nginx, ele oferece a você um mecanismo de servidor da web estável mais atualizado que o apache.
Eu mudei completamente. Economizei muito tempo na solução de problemas com relação ao TLS e - para nossas configurações - ele também liberou muita RAM ao mesmo tempo. De fato, achei o emprego do nginx agradável e simples, comparado à miríade de complicações de configuração do httpd / apache com as quais me acostumei. Pode ser uma questão de gosto, eu me tornei bastante fluente em httpd / apache rewrite / config / maintenance antes de virar, e era mais fácil do que eu pensava que seria. Há informações recentes apropriadas sobre a configuração do nginx disponíveis on-line, e sua base de usuários é enorme, muito ativa e amigável ao suporte. https://news.netcraft.com/wp-content/uploads/2018/11/wpid-wss-top-1m-share.png
fonte