Como habilitar o TLS 1.1 e 1.2 com OpenSSL e Apache

33

À luz de um número crescente de problemas de segurança, como o recém-anunciado Exploit de Navegador Contra SSL / TLS (BEAST), fiquei curioso para saber como poderíamos ativar o TLS 1.1 e 1.2 com o OpenSSL e Apache para garantir que não fôssemos vulneráveis a tais vetores de ameaças.

John
fonte

Respostas:

25

O TLS1.2 agora está disponível para o apache. Para adicionar o TLSs1.2, você só precisa adicionar na configuração do host virtual https:

SSLProtocol -all +TLSv1.2

-all está removendo outro protocolo SSL (SSL 1,2,3 TLS1)

+TLSv1.2 está adicionando TLS 1.2

para obter mais compatibilidade com o navegador, você pode usar

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

a propósito, você também pode aumentar o pacote Cipher usando:

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-GC$

Você pode testar a segurança do site https com um scanner on-line, como: https://www.ssllabs.com/ssltest/index.html

Froggiz
fonte
2
Não sei por que esta postagem está marcada como "desatualizada". Usei a solução recomendada, e o site do meu cliente passou de uma classificação "C" no Qualsys SSL Labs para um "A".
Michael Sobczak
Olá, removi o aviso desatualizado para evitar erros de compreensão, era um link para a resposta correta antiga. Estou feliz que sua segurança foi aumentada;)
Froggiz
Em sites-available / 000-default.conf, adicionei ao host virtual 'SSLProtocol -all + TLSv1.2' e obtive: AH00526: Erro de sintaxe na linha 31 de /etc/apache2/sites-enabled/000-default.conf : Comando inválido 'SSLProtocol', talvez com erro de ortografia ou definido por um módulo não incluído na configuração do servidor A ação 'configtest' falhou.
Elia Weiss
Você ativou o mod_ssl? (command: a2enmod ssl)
Froggiz 13/10
"SSLProtocol: Protocolo ilegal 'TLSv1.2'" (OS X 10.10.5)
Michael em
10

De acordo com o changelog do OpenSSL , o suporte ao TLS 1.2 foi adicionado ao ramo de desenvolvimento do OpenSSL 1.0.1, mas esta versão ainda não foi lançada. Provavelmente, algumas mudanças também serão necessárias no código mod_ssl para realmente ativar o TLS 1.2 para Apache.

Outra biblioteca SSL / TLS comumente usada é o NSS ; é usado por um módulo Apache menos conhecido mod_nss ; infelizmente, as versões atuais do NSS também não oferecem suporte ao TLS 1.2.

Ainda outra biblioteca SSL / TLS é o GnuTLS , e finge suportar o TLS 1.2 já em sua versão atual. Existe um módulo Apache usando GnuTLS: mod_gnutls , que também afirma apoiar o TLS 1.2. No entanto, este módulo parece ser bastante novo e pode não ser muito estável; Eu nunca tentei usá-lo.

Sergey Vlasov
fonte
1
@ Sergey, obrigado pelos links e pelas informações. Ainda estou triste por não podermos utilizar esses padrões, considerando sua idade. Parece estranho para mim que precisamos ser defensores de nossos sistemas e redes, mas não podemos utilizar as ferramentas que ajudariam a melhorar nossas posturas de segurança. Além disso, parece que o pessoal do navegador da Web tem maneiras de ajudar a habilitar o suporte a esses padrões, além do pessoal do servidor como Apache e possivelmente IIS.
John John
2
Essa resposta ainda é precisa, um ano depois?
Ben Walther
2
O @BenWalther OpenSSL 1.0.1 foi lançado em março de 2012 com suporte ao TLS 1.2. A versão mais recente a partir de agora é 1.0.1c. Não tenho certeza de quanto do restante da postagem ainda é válido.
Burhan Ali
6

Você não pode, o OpenSSL ainda não oferece uma liberação para o TLS 1.1.

Um comentário pertinente sobre /. para este problema:

Você explicará para as massas não lavadas como implementaria o suporte ao TLS 1.1 e 1.2 em um mundo em que a biblioteca dominante OpenSSL ainda não suporta nenhum dos protocolos em seus lançamentos estáveis? Claro, você pode usar o GnuTLS e o mod_gnutls, e eu tentei, mas não havia sentido, pois nenhum navegador além do Opera o suportava e havia algumas falhas estranhas no módulo. O IE 8/9 deveria apoiá-los no Vista e 7, mas não conseguiu acessar o site servido por mod_gnutls quando 1.1 e 1.2 foram ativados no lado do cliente. Ontem tentei novamente por curiosidade, e agora até o Opera 11.51 engasga com o TLS 1.1 e 1.2. Tão aí. Nada realmente suporta os protocolos. É preciso aguardar o OpenSSL 1.0.1 para TLS 1.1 e ninguém sabe quando isso ocorrerá nos repositórios.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890

Steve-o
fonte
1
@ Steve-o, obrigado pela informação. É um pouco decepcionante o fato de o TLS 1.1 estar fora do ar desde abril de 2006 e o ​​TLS 1.2 estar fora do ar desde agosto de 2008 com atualizações em março de 2011 e ainda não temos a capacidade de utilizá-los.
John
4

Adam Langley, engenheiro do Google Chrome, salienta que o TLS 1.1 não teria resolvido esse problema devido a um problema de implementação com SSLv3 que todos deveriam resolver: os navegadores precisam fazer o downgrade para SSLv3 para dar suporte a servidores com bugs, e um invasor pode iniciar isso. downgrade.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html

cjc
fonte
3

O Gnu_tls funciona como um encanto e também implementa o SNI (Server Name Identification), que é muito útil na hospedagem virtual ....

Também não há problema em encontrar pacotes bin para mod_gnutls em distros linux, eu o uso há 2 anos e sem problemas, ele também é mais eficiente que o openssl imho.

Mas o problema também é que a maioria dos navegadores não suporta tls 1.1 ou 1.2; portanto, comece a difundir a idéia de atualizar navegadores regularmente para as pessoas.

rastrano
fonte
@ Rastrano - você tem alguma sugestão ou link sobre como implementar isso? Obrigado pela informação e é uma pena que os navegadores "modernos" ainda não a suportem.
John