Artigos

SSL, heróis, nuvens, pandas e dragões

Desenvolvido pela saudosa Netscape, o protocolo SSL/TLS nos fornece segurança na web. Mesmo tendo a NSA fuçando tudo o que fazemos, vale muito a pena investir no uso dele. O danado já nos deu uma tremenda dor de cabeça um tempo atrás, mas parece que agora estamos navegando em águas tranquilas. Em paralelo ao enterro do SPDY e o nascimento, das cinzas, do HTTP/2, a W3C, o Google e a Mozilla já estão nos alertando, há um bom tempo, sobre a virada de chave do HTTP para o HTTPS. Já está mais que na hora de atualizarmos nossas aplicações web.

Devemos nos apropriar do assunto e encarar os salgados custos de aquisição de certificados SSL. Agora, você que possui um negócio na web e tem uma folha mensal de pagamentos que não pode falhar, se puder economizar despesas com recursos tecnológicos utilizando open source e serviços na nuvem que lhe garantam segurança e alta disponibilidade, sem precisar de um administrador de sistemas full time mantendo seus servidores. O que você acha?

Entre alguns modelos de serviço, gosto de trabalhar com o Heroku e CloudFlare, pois fornecem ao cliente várias ferramentas com custos acessíveis. Mas o que vou relatar no artigo é sobre custo próximo do zero, já que tenho que pagar a anuidade do domínio.

O Heroku possui suporte à SSL, em parceria com a Digicert. Basta testar no navegador a sua aplicação: minhaaplicacao.herokuapp.com. Mas não se empolgue. Mesmo adicionando os domínios customizados na dashboard do Heroku com o endereço minhaaplicacao.com.br. Configurar sua aplicação para forçar o acesso via SSL, como, por exemplo, em uma aplicação Ruby on Rails, com a edição do arquivo config/environments/production.rb, descomentando a linha config.force_ssl = true. Ao acessar o endereço minhaaplicacao.com.br, você receberá uma mensagem de conexão não confiável, pois o certificado só é válido para os domínios *.herokuapp.com e herokuapp.com. Nada impede você de pagar $20 por mês para o Heroku e criar seu próprio certificado. Mas o propósito do artigo é cortar custos.

Mensagem de conexão não confiável
Mensagem de conexão não confiável

Para resolver isso, o CloudFlare, além de vários serviços, possui suporte à SSL, em parceria com a Comodo. A partir de agora, vamos ver como configurar nossa aplicação nele.

Após realizar o cadastro e fazer o login, adicione o domínio do site.

lista dos domínios cadastrados no CloudFlare
Lista dos domínios cadastrados no CloudFlare

Observe a área CloudFlare Nameservers, pois você deve adicionar esses endereços na conta de onde você comprou o domínio.

Servidores DNS do CloudFlare cadastrados no registro.br
Servidores DNS do CloudFlare cadastrados no registro.br

Voltando ao CloudFlare, você pode confirmar na opção Crypto que já está selecionada a opção Full como padrão, mesmo com sua conta free. Existem outras opções de criptografia que você deve ler com calma para compreendê-las.

Opção de criptografia selecionada para o site
Opção de criptografia selecionada para o site

Adicione uma regra de página para forçar a navegação via HTTPS em seu aplicativo web.

Regra de página para forçar a navegação via HTTPS
Regra de página para forçar a navegação via HTTPS

E pronto! Agora podemos começar a trabalhar no código da aplicação. Pensou que tinha terminado? 🙂

Serviços como SSL Checker são uma mão na roda, mas não é tudo. Invista um tempo navegando por todas as páginas de sua aplicação web em busca de elementos que não estão usando HTTPS, como: APIs e CDNs. É extremamente necessário revisar o código e checar se os recursos estão sendo obtidos de maneira segura e não via HTTP.

Alertas do Firefox
Alertas do Firefox
Mudanças realizadas na aplicaçao web para se adequar ao mínimo de segurança via HTTPS
Mudanças realizadas na aplicação web para se adequar ao mínimo de segurança via HTTPS

A revisão de código realizada na aplicação foi a seguinte:

  1. buscar informaõees via https
  2. prover imagens via https
  3. forçar a aplicação a utilizar https

Falando de custo zero, existem serviços para obter certificados SSL de graça:

Não é só colocar o site/intranet/produto no ar. Tem muita empresa que não está atenta para a segurança de suas informações. Então, vou concluindo com uma referência do site istlsfastyet.com

TLS has exactly one performance problem: it is not used widely enough.
Everything else can be optimized.

 

envolvedor de sistemas e poeta de boteco

2 Comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *