DevSecOps

20 ago, 2015

5 erros comuns ao utilizar um certificado SSL

Publicidade

Escolher um certificado SSL para a sua loja virtual ou website tem se tornado um desafio. Se olharmos apenas para os certificados SSL nós temos à disposição diversos tipos, desde o SSL mais simples até o WildCard que autentica vários subdomínios, isso sem contar quando é utilizado outras ferramentas, plataformas ou tecnologias que não suportam certificados customizados, como por exemplo algumas versões básicas de planos WAF (Web Application Firewall).

Durante este artigo, você será guiado para que evite os erros mais comuns na instalação do certificado SSL, isso inclui desde a sua aquisição até a instalação correta no servidor. Confira abaixo:

1. Não utilizar um certificado SSL

Parece mentira, mas muitas lojas virtuais ainda não utilizam certificados SSL para proteger os dados de seus clientes que são enviados até a loja, e esse ainda é um dos erros mais comuns encontrados. Podemos incluir também os certificados auto assinados, ou seja, aqueles que não são emitidos por uma Autoridade Certificadora autorizada.

Além de não transmitir confiança e credibilidade para os clientes, o Google já começou a incluir na sua análise de posição de buscas se o site possui ou não um certificado SSL, ou seja, um site que trafega os dados com segurança é melhor posicionado no pesquisador.

2. Não saber qual certificado escolher

Com tantas opções de certificado, é normal confundir ou não saber quais tipos escolher ou qual atenderia melhor as necessidades da sua empresa, principalmente se você não lida com isso em seu dia a dia. Além dessa confusão com os certificados SSL, existe também uma grande confusão entre certificados SSL e certificados ICP-Brasil, que são bem diferentes.

Quando falamos em proteção para lojas virtuais, os mais comuns hoje são o SSL comum e o SSL EV, que deixa a barra do navegador verde, mas também temos o SSL MDC, que pode validar múltiplos domínios, o WildCard SSL que irá validar todos os subdomínios de um site através do coringa (*), entre outros.

A dica é baixar nosso e-book “O que é SSL“, onde explicamos todos os tipos de certificados SSL, inclusive os certificados para assinar códigos ::

3. Segurança da chave privada

Este é o primeiro nível de segurança para o seu certificado SSL, você irá definir qual o tamanho da chave criptográfica, crie chaves usando no mínimo RSA 2048 bits e sempre proteja sua chave privada com uma senha de segurança. Armazene essa chave em um ambiente seguro e não a forneça para terceiros, incluindo a empresa que irá emitir o seu certificado SSL, eles precisam apenas da CSR (Certificate Signing Requests).

4. Configuração do Servidor

Quando você configura um servidor de forma correta e segura, garante que o certificado será exibido corretamente para o seu cliente e que está utilizando protocolos e chaves que seguras.

Quando falamos dos protocolos que você deve habilitar no seu servidor web, a melhor opção é utilizar apenas o TLS 1.2, porém devido à compatibilidade com navegadores antigos você precisará deixar habilitado as versões 1.0 e 1.1. Veja quem é o seu público-alvo, isso lhe ajudará muito na tomada de decisão. Após escolher os protocolos que irá utilizar, fique atento às seguintes configurações:

  • Desabilitar o SSL 2.0 e SSL 3.0;
  • Desabilitar as chaves DES e RC4;
  • Desabilitar as chaves do tipo RSA-EXPORT e DH EXPORT;
  • Desabilitar o TLS Compression;

Uma ótima referência para as configurações do Apache e do Nginx é a Wiki da fundação Mozilla; lá você encontrará detalhes das compatibilidades e as melhores opções de chaves que você pode usar.

Para servidores Windows, recomendo o seguinte artigo: https://support.microsoft.com/en-us/kb/245030

5. Configure os Headers de segurança

Além de todas as configurações mostradas anteriormente, a utilização de alguns Headers de segurança, tanto no servidor como na aplicação, irão aumentar consideravelmente a segurança da aplicação como um todo. Um exemplo disso é o HTTP Strict Transport Security (HSTS), que traz diversas melhorias para o SSL, entre elas, forçar a utilização do HTTPS, impedindo que sites sejam acessados usando o protocolo HTTP ou que parte do código de um site que está usando HTTPS seja executada em servidores usando o HTTP, confira um artigo detalhado em https://imasters.com.br/infra/seguranca/hsts-meu-https-nao-esta-seguro/

Além do HSTS, é possível configurar os seguintes Headers:

  • Access-Control-Allow-Origin;
  • Content-Security-Policy;
  • X-Content-Type-Options;
  • X-Frame-Options;
  • X-XSS-Protection;
  • Public-Key-Pins;

Esses são os headers normalmente utilizados para aumentar a segurança de uma aplicação. Existe a possibilidade de algumas aplicações definirem um header/token customizado que contenha uma chave (token) que protege contra os ataques de Cross-Site Request Forgery (CSRF).

A segurança do certificado SSL vai muito além de apenas subir um site HTTPS, e se você observar todas as dicas apresentadas irá notar que é um conjunto de ações e tem como início a geração da chave privada, depois passa pelos trâmites da emissão do certificado, em seguida vêm a configuração do servidor e por fim até mesmo algumas adaptações na aplicação, incluindo algumas configurações de headers de segurança.

Seguindo os passos apresentados anteriormente é possível aumentar consideravelmente a segurança de sua aplicação, tanto na parte do SSL como na aplicação, mas não podem ser consideradas como uma solução definitiva para deixar uma aplicação web segura. Isso normalmente irá envolver outras técnicas e soluções que devem ser avaliadas conforme a necessidade do seu negócio.