REFORÇANDO A SEGURANÇA DAS CONEXÕES HTTPS NO APACHE
Autor: Irineu Teza Nunes | Publicado: 2016-03-01T15:59:00-03:00

1 - 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 criptograficas realmente seguras, pode causar a falsa sensação de segurança.



2 - 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&nbsp; TLS (Transport Layer Security).&nbsp;

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&nbsp; -&nbsp; Transport Layer Security é um protocolo semelhante ao SSL mas está imune as falhas encontradas no SSL.



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





3 - 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 acrecentando as linhas abaixo no arquivo de configuração apache.conf (derivados debian) ou httpd.conf (derivados RedHat).



SSLProtocol ALL -SSLv2 -SSLv3 #Desativa o suporte ao SSLv2 e SSLv3&nbsp;

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"



4 - 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 estinguir-se o uso de certificados gerados em SHA-1 até janeiro de 2017.

Para quem utiliza um certificado em seu servidor&nbsp;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,&nbsp; 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&nbsp; 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





5 - 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çõesde país, estado, cidade, etc). Obs: Diminua o parametro -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