Desabilitando todas as versões antigas do ssl no Apache 2 para forçar a autenticação através do TLS 1.2?

1

Eu li aqui que todas as versões (mais antigas?) do SSL precisam ser desativadas para forçar o TLS 1.2 autenticação. Como se faz isso no Apache 2?

    
por leeand00 20.11.2015 / 22:41

3 respostas

3

I read here that all (older?) versions of SSL need to be disabled in order to force TLS 1.2 authentication.

Isso não é o que diz! Ele diz que todas as versões do SSL precisam ser desativadas para forçar o uso do TLS - para não forçar o uso do TLSv1.2.

O SSL / TLS vem em várias versões, em ordem crescente de idade e segurança:

  1. SSLv2
  2. SSLv3
  3. TLSv1
  4. TLSv1.1
  5. TLSv1.2

O SSLv1 nunca foi disponibilizado para o público e o TLSv1.3 está sendo trabalhado atualmente.

Em teoria, o navegador deve usar o mais strong disponível, que ele e o servidor suportam, mas há ataques de downgrade que causam versões mais baixas a serem usadas, que podem ser quebradas, então é melhor desativar aquelas que você não quer usar. eles simplesmente não podem ser usados.

É geralmente aceito que SSLv2 e SSLv3 agora estão inseguros devido a uma combinação de falhas encontradas neles e aumenta o poder computacional, o que significa que eles podem ser quebrados. Então você definitivamente deve desativá-los usando o seguinte:

SSLProtocol all -SSLv2 -SSLv3

Observação O SSLv2 normalmente está desativado por padrão agora, mas nenhum dano está sendo explícito.

O TLSv1 é interessante. O padrão PCI Compliance (usado quando você aceita pagamentos por cartões em seu site) também exigiu o desligamento de TLSv1, mas ainda é necessário para alguns navegadores ainda em uso, o que pode prejudicar alguns de seus usuários (por exemplo, usuários do IE8 no XP - sim Embora o XP seja oficialmente aposentado e sem suporte, ele ainda está em uso). Pessoalmente, acho que estamos quase prontos para desligar isso, mas ainda não.

TLSv1.1 é outro interessante. O TLSv1.2 surgiu pouco tempo depois e quase todos os navegadores que suportam o 1.1 também suportam 1.2, portanto o uso do 1.1 é pequeno. Portanto, se você deseja consolidar sua configuração de SSL / TLS, pode ser melhor ignorá-la e ir diretamente para TLSv1.2 apenas, em vez de ambas, o que evitará que você a desative mais tarde, quando alguma vulnerabilidade for encontrada mais tarde. Por outro lado, ainda é seguro e talvez esse pequeno subconjunto de navegadores seja um dos seus visitantes.

Então, se você quiser apenas TLSv1.2 (com a opção TLSv1.3 no futuro), então você pode usar esta configuração:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Ou, alternativamente, apenas isso (embora limitando você a apenas TLSv1.2, não importa o que aconteça depois):

SSLProtocol TLSv1.2

Você também pode medir seu uso atual usando um formato de registro personalizado, para que você possa ver quantos de seus visitantes ainda usam o TLSv1, por exemplo: link

No entanto, essa não é a história toda por ter uma configuração strong de https.

Para começar, depende muito da versão do OpenSSL que você instalou e / ou da versão com a qual ele foi compilado. Isso pode significar que o TLSv1.2 não está disponível para você - existem muitas instalações do OpenSSL 0.9.8 ainda disponíveis!

O próximo passo é o CipherSuite que você usa dentro dessa versão do SSL / TLS. Alguns são mais seguros do que outros e alguns têm mais impacto no desempenho do que outros. Você também deve especificar que o servidor deve especificar a ordem para que sua suíte mais strong seja usada. Isto é (no momento em que escrevo) uma strong sugestão com um apoio legado ainda bom:

SSLHonorCipherOrder on
SSLCipherSuite "EECDH+AES128:EECDH+AES256:+SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RSA+3DES:!DSS"

Depois, há outras opções como compactação, HSTS, CT, HPKP e OCSP Stapling, mas elas realmente são assuntos especializados e estão além do escopo desta questão (blogue sobre eles aqui se estiver interessado em ler mais: link )

A melhor opção para testar sua configuração de https é a ferramenta on-line link . Basta inserir o endereço do seu site e, alguns minutos depois, você receberá um relatório sobre a qualidade da sua configuração. IMHO não há nenhuma boa razão para não obter uma nota A aqui, a menos que você esteja em hardware / software antigo (nesse caso, por que você não está atualizando?). Se estiver cuidando de um website, sugiro enfaticamente re-executar esse teste uma vez por trimestre para verificar quaisquer novos desenvolvimentos e alterações de configuração que você possa precisar fazer para ficar em cima de sua configuração.

    
por 22.11.2015 / 20:26
2

Não está correto, usar apenas o TLSv1.2 removerá algumas compatibilidades do navegador e não corrigirá todas as violações de SSL.

Se o SSL não for mais usado, é porque alguma violação de títulos foi encontrada. Mas isso não resolve todos os problemas.

Para ser eficaz, você precisa atualizar sua versão do OpenSSL e usar uma configuração do Apache para remover outras vulnerabilidades

Aqui, a configuração para proteger seu SSL aumenta as compatibilidades do navegador sem estar vulnerável a ataques:

SSLEngine on
SSLOptions +StrictRequire
SSLProxyEngine on

# Prevent Beast attack
SSLHonorCipherOrder on

# SSL Compression (CRIME attack)
SSLCompression off

# HSTS
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; pr$

# PROTOCOL
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4

Depois disso, você pode testar seu nível de segurança SSL neste site link

    
por 21.11.2015 / 09:42
0
  1. Atualize para a versão mais recente do Apache 2.
  2. Atualize para a versão mais recente do OpenSSL 1.0.1 +.
  3. Edite o Apache ssl.conf ou o httpd.conf

Adicionar

# only use TLSv1.2 and above, to have SHA-256 and GCM
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Reinicie o Apache.

    
por 21.11.2015 / 00:03

Tags