6 de agosto de 2016

Let’s Encrypt, certificado grátis para todos.

Por sidnei

 

lets_encryptO Let’s Encript é um projeto encabeçado pela Linux Foundation com o intuito de popularizar e difundir a utilização de criptografia na web ao facilitar e a aquisição e instalação de certificados SSL assinado por uma autoridade certificadora.

Qualquer um que já precisou tornar um website mais seguro através da instalação de um certificado SSL sabe que não se trata de uma tarefa trivial. Além, disso, como não é algo que fazemos diariamente, fica difícil lembrar os passos necessários na hora que precisamos, certo?

Com o Let’s encrypt não há a necessidade de emails de confirmação, certificados expirados quebrando seu site ou configurações complexas. O próprio programa cuida de tudo isso para você. Além de tudo, os certificados emitidos pelo Let’s Encrypt são gratuitos e, portanto, não há pagamento envolvido. Parece bom? Então vamos ver como ele funciona.

Como o Let’s Encrypt garante que não se trata de uma fraude?

O Let’s Encrypt implementa um novo protocolo chamado ACME com a finalidade de tornar mais simples a obtenção e configuração de certificados SSL.

Há 2 processo envolvidos em sua utilização: o primeiro é provar a CA (Certificate Authority) do Let’s Encrypt que um determinado servidor controla aquele domínio. Uma vez confirmado isso, é possível requisitar, renovar e revogar um certificado para o domínio confirmado de forma automática.

O agente do Let’s Encrypt  instalado no servidor é na verdade um cliente em Python. Na primeira vez que o cliente interagir com o servidor remoto da CA ela irá gerar um par de chaves criptográficas para este agente.

Em seguida, o servidor remoto ira solicitar um ou mais testes para confirmar se o servidor web realmente tem o controle do domínio para o qual ele solicita o certificado. Os testes podem ser, por exemplo:

  • Criar um registro DNS na URL sob o domínio, ou
  • Disponibilizar um recurso HTTP em uma página específica no domínio em questão.

Juntamente com os desafios, a CA do Let’s Encrypt pede que o agente assine os desafios com a chave pública enviada para ele, de forma que a CA possa checá-los com a chave privada corre. Certamente, trata-se de um processo bastante engenhoso e, até certo ponto, simples.

A imagem abaixo exemplifica esse processo: para provar que tem o controle do domínio example.com o Let’s Encrypt solicita que o agente instalado no servidor disponibilize uma página com ed98 assinado digitalmente com a chave pública 9cf0b331 gerada anteriormente, na URL /8303

howitworks_challenge

Sem dúvida trata-se de um projeto inovador e revolucionário que promete romper muitas barreiras para enfim deixar o acesso à certificados SSL que hoje são pagos inteiramente grátis.