Reforçando a segurança das conexões HTTPS no Apache

itn

Encontrei diversos tutoriais ensinando como ativar o protocolo HTTPS no Apache utilizando chaves autoassinadas. No entanto, a maioria deles não leva em consideração os cuidados a serem tomados em relação a segurança.

[ Hits: 6.972 ]

Por: Irineu Teza Nunes em 08/03/2016


Introdução



Encontrei diversos tutoriais ensinando como ativar o protocolo HTTPS no Apache utilizando chaves autoassinadas. No entanto, a maioria deles não leva em consideração os cuidados a serem tomados em relação a segurança.

Ativar o protocolo HTTPS ajuda, mas não ter o mínimo de atenção com o Apache e não utilizar chaves criptográficas realmente seguras, pode causar a falsa sensação de segurança.

SSL, TLS e RC4

SSL - Secure Socket Layer - protocolo de criptografia amplamente utilizado para conexões seguras https. No entanto devido as diversas falhas de segurança encontradas, mesmo nas últimas versões, empresas como Google e Mozilla estão desativando o suporte em seus navegadores ao SSL 2 e 3 em favor do TLS (Transport Layer Security). Apesar de as novas versões de navegadores desabilitarem o suporte ao SSL, é dever de quem fornece os serviços fazer sua parte no lado do servidor.

TLS - Transport Layer Security é um protocolo semelhante ao SSL, mas está imune as falhas encontradas no SSL.

RC4 - É um dos algoritmos utilizados em sistemas de criptografia como o SSL e o WEP (redes sem fio). Não é considerado um algoritmo seguro.

Configurações a serem alteradas/adicionadas no Apache

O suporte ao SSL e ao RC4 vem ativados por padrão no Apache. Desative o suporte ao SSL 2 e SSL 3, e a algoritmos de criptografias ultrapassados acrescentando as linhas abaixo ao arquivo de configuração apache.conf (derivados Debian) ou httpd.conf (derivados RedHat).

SSLProtocol ALL -SSLv2 -SSLv3 #Desativa o suporte ao SSLv2 e SSLv3

SSLHonorCipherOrder on #Ao escolher o tipo de criptografia, normalmente a configuração do cliente é utilizada. Se essa opção está ativa (on), a configuração do servidor será utilizada.

SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

SHA-1 e SHA-2

Os algoritmos de hash SHA são utilizados utilizados por Autoridades Certificadoras para assinar digitalmente os certificados emitidos. O SHA-1 é o mais utilizado, no entanto, diversas pesquisas apontam que ataques bem sucedidos ao SHA-1 tornam-se cada vez mais prováveis a medida que a capacidade de processamento dos computadores aumenta. Sendo assim, pretende-se extinguir-se o uso de certificados gerados em SHA-1 até janeiro de 2017.

Para quem utiliza um certificado em seu servidor gerado em SHA-1, terá que necessariamente substituí-lo por um gerado em SHA-2 mesmo que este ainda esteja dentro da validade. O Google, por exemplo, anunciou recentemente que pretende adicionar alertas de segurança em seu navegador para sites que utilizem certificados SHA-1 em conexões seguras.

A família de algoritmos SHA-2 inclui seis funções de valores hash que são conhecidos como: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256

Gerando um certificado auto assinado SHA-2

Você pode gerar seu próprio certificado com SHA-2 auto assinado e adicioná-lo no apache. Gere o certificado com os comandos abaixo.

Gera o repositório de chaves:

# openssl genrsa -out server.key 2048

Gera o novo certificado autoassinado utilizando o repositório de chaves (após o comando entre com as informações de país, estado, cidade etc).

Obs.: diminua o parâmetro -days para diminuir o tempo de validade do certificado.

# openssl req -x509 -nodes -days 3650 -new -sha256 -keyout server.key -out certificado.crt

Exibe informações do certificado:

# openssl x509 -in certificate.crt -text -noout

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Criando túneis com o VTUN

Port Scan Attack Detector (PSAD) com iptables

Bloqueando o UltraSurf e o WebMessenger do Hotmail com Proxy Transparente

Leitura recomendada

Syslog-NG - Configurando um servidor de logs

SmoothWall - Linux para gateway

Apache2 + PHP5 com ModSecurity no Debian Squeeze

Como assinar digitalmente um documento criado no Br/OpenOffice

SSH completo (passo a passo)

  
Comentários
[1] Comentário enviado por removido em 09/03/2016 - 15:19h

Sugestão:

https://mozilla.github.io/server-side-tls/ssl-config-generator/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts