Desativar compactação em conexões SSL / TLS no Apache 2.2.16 usando mod_header

3

Por causa do CRIME, como eu entendo, a compactação em conexões SSL precisa ser desativada. Em versões mais novas do apache isso pode ser feito com uma diretiva recém-introduzida SSLCompression off , em versões mais antigas isso não é possível (no Debian antes da versão 2.2.16-6 + squeeze10).

Acho que encontrei uma maneira de conseguir isso em versões mais antigas, mas não sei por que em alguns testes on-line, como o Qualsys Teste SSL indica que a compactação ainda está ativada. Meu teste mostra algo diferente. Alguém poderia por favor rever o código de configuração e me diga, o que eu não entendi direito?

Use as seguintes diretivas de mod_headers dentro de um bloco de host virtual SSL para desativar a compactação:

RequestHeader unset Accept-Encoding
Header unset Vary

Isso remove a linha de cabeçalho da solicitação do cliente, indicando que a resposta pode ser enviada compactada para o cliente.

Testando isso com o curl e a opção --raw, vejo que conexões não ssl são compactadas e as conexões ssl são cleartext. Use ...

curl --raw -k -H 'Accept-Encoding: gzip,deflate' http://host.example.tld

... para verificar.

Algumas ferramentas de teste online ainda me dizem que a minha solução não funciona, enquanto outras dizem o contrário. Agora eu pergunto se a minha solução para desligar a compressão para conexão SSL está funcionando ou não?

    
por Adrian Zaugg 31.12.2012 / 14:58

1 resposta

2

Primeiro, o CRIME só se aplica se o seu site usar todos esses três itens:

  1. SSL ou TLS
  2. Compressão
  3. Sessões autenticadas por cookies

É útil apenas para sequestrar sessões ativas e é mais útil se o seu servidor não exigir correspondência de IP de sessão. Enquanto muitos sites usam essa combinação, não é tão comum quanto muitos pensam. Além disso, algumas estatísticas sugerem que < 7% dos navegadores na Internet realmente suportam as compressões que tornam o CRIME possível.

O que não funciona:
O campo Vary apenas informa os proxies upstream se eles puderem armazenar em cache uma página dinâmica. Embora seja importante considerar sua estratégia de armazenamento em cache, não tanto para essa vulnerabilidade em particular.

Desmarcar o campo Accept-Encoding afetará apenas mod_deflate ou mod_gzip; isso não afeta a compactação por SSL / TLS. Então seu método não funcionará.

O que funciona:
Existem duas opções para proteger seu servidor. Você pode desativar o suporte à compactação em sua biblioteca SSL / TLS, recompilando-o sem compactação; ou você pode corrigir seu servidor para suportar a diretiva SSLCompression . O Apache 2.4.x suporta essa diretiva nativamente. O Apache 2.2.22 pode ser corrigido com relativa facilidade .

Várias Distribuições do Sistema Operacional estão retornando os patches agora, verifique com seu provedor Distro para detalhes (a maioria do Linux Distro usa versões antigas do Apache para as quais eles escreveram back-ports personalizados de patches de segurança. muito esteja à mercê do seu Distro se você estiver usando os pacotes sancionados).

Como você está certo :
É muito fácil usar o Verificador de problemas "SSL" disponível no SSL Labs . Ele detectará se seu servidor é vulnerável a CRIME. Você pode semi-ignorar os avisos do BEAST, pois todos os navegadores modernos corrigiram o problema do lado do cliente. Isso dependeria do seu conjunto particular de circunstâncias.

    
por 31.12.2012 / 15:29