Saltar para o conteúdo

Let's Encrypt

Origem: Wikipédia, a enciclopédia livre.
Let's Encrypt
Lema "Encrypt the entire web"
Fundação 2014
Propósito X.509 certificate authority
Sede San Francisco, California, U.S.
Área de influência X.509 certificate authority
Organização de origem Internet Security Research Group
Sítio oficial letsencrypt.org

Let's Encrypt é uma autoridade de certificação lançada em 12 de abril de 2016,[1][2] que fornece gratuitamente certificados de criptografia TLS (Transport Layer Security ) X.509 através de um processo automatizado, criado para eliminar a complexidade dos processos atuais de criação, validação, instalação e renovação de certificados para sites seguros.[3][4]

O projeto busca tornar as conexões criptografadas ubíquas para todos os servidores da World Wide Web.[5] Ao eliminar barreiras como pagamento, e a renovação do certificado, espera-se diminuir significativamente a complexidade de configurar e manter criptografia TSL.[6]

Em um servidor web Linux, a execução de apenas dois comandos é suficiente para configurar a encriptação HTTPS, adquirir e instalar os certificados necessários.[7][8]

Com esse objetivo, um pacote de software foi incluído nos repositórios oficiais do Debian.[9][10] Dois dos maiores desenvolvedores de navegadores - Mozilla e Google - atualmente têm iniciativas para tornar obsoletas as navegações não encriptadas (HTTP).[11][12] Acredita-se que o projeto tenha o potencial de conseguir transformar as conexões encriptadas no padrão para toda a web.[13][14]

Ao optar por ser o mais transparente possível, a iniciativa espera tanto proteger sua própria credibilidade como também proteger contra ataques e tentativas de manipulação. Para esse propósito, publicam frequentemente relatórios de transparência,[15] fazem o log público de todas as transações ACME (usando, por exemplo, Certificado de transparência, e usam padrões abertos e software livre o máximo possível.[7]

Atualmente, não existe planos para suportar certificados wildcard, apesar de não ter sido excluída essa possibilidade. A razão para a falta de suporte é que, por ser tão fácil conseguir um certificado não-wildcard via Let’s Encrypt, esse certificado torna-se desnecessário,[16] existem usuários, porém, que opinaram que ainda existem casos nos quais os certificados wildcard são mais fáceis de usar ou mesmo tecnicamente necessários.[17]

Let’s Encrypt é um serviço fornecido pela Internet Security Research Group (ISRG), uma organização de benefício público. Alguns dos principais apoiadores são a Electronic Frontier Foundation (EFF), a fundação Mozilla, OVH, Akamai e Cisco. Outros parceiros incluem a autoridade de certificação IdenTrust, Universidade de Michigan (U-M), a Faculdade de Direito de Stanford, a Fundação Linux[18] e Stephen Kent, da Raytheon/BBN Technologies e Alex Polvi, da CoreOS.[7]

Conselho Técnico

[editar | editar código-fonte]

Em junho de 2015, o Let’s Encrypt gerou um certificado raiz RSA cuja chave privada estava armazenada em um módulo de segurança de hardware, que é mantido offline.[19] O certificado raiz é usado para assinar dois certificados intermediários,[19] que têm assinatura cruzada pela autoridade de certificação IdenTrust.[20][21] Um dos certificados intermediários é utilizado para assinar os certificados emitidos, e o outro é mantido offline como backup no caso de problemas com o primeiro.[19] Como o certificado IdenTrust é pré-instalado nos maiores navegadores, os certificados da Let’s Encrypt podem ser validados normalmente e são aceitos assim que instalados,[22] mesmo que nenhum dos fornecedores dos navegadores incluam o certificado raiz ISRG como âncora de confiança.

Os desenvolvedores Let’s Encrypt planejavam gerar também um certificado raiz ECDSA em 2015,[19] o que foi postergado até o início de 2016.[23][24]

O protocolo desafio-resposta utilizado para automatizar a inscrição com esse novo certificado de autoridade é chamado ACME (Automated Certificate Management Environment) e envolve diversas requisições para o servidor web do domínio coberto pelo certificado. Baseado em se as respostas esperadas conseguem igualar as expectativas, o controle sobre o domínio é garantido (validação do domínio). Para fazer isso, o cliente de software ACME configura um servidor TLS especial no sistema do servidor, que recebe queries do servidor da autoridade de certificação ACME com requisições especiais usando Server Name Indication (Validação de Domínio usando Server Name Indication, DVSNI).

Os processos de validação são rodados diversas vezes em caminhos de redes separados. A checagem das entradas de DNS é provisionado para ser feito de múltiplas localidades geográficas para dificultar os ataques de DNS spoofing.

As interações ACME são baseadas na troca de documentos JSON em conexões HTTPS.[25] Um rascunho da especificação está disponível no GitHub[26] e a versão foi submetida à Internet Engineering Task Force (IETF) como proposta para um padrão da internet.[27]

Implementação de Software

[editar | editar código-fonte]
Diálogo de selecção de Domínio

A autoridade de certificação consiste em um pedaço de software chamado de Boulder, escrito em Go, que implementa a parte server side do protocolo ACME. Está publicado como software livre com o código fonte, sob os termos da versão 2 da Mozilla Public License (MPL).[28] É disponibilizada uma API RESTful, que pode ser acessada através um canal encriptado por TLS.

Um gerenciador de certificados com licença Apache,[29] desenvolvido em Python e chamado Certbot (antigo letsencrypt) é instalado no client side (o servidor web de um inscrito). Isso é usado para solicitar o certificado, conduzir o processo de validação do domínio, instalar o certificado e configurar a encriptação HTTPS no servidor HTTP, e, depois, renovar regularmente o certificado.[7][30] Depois da instalação e de concordar com a licença do usuário, é necessário apenas um comando para conseguir instalar um certificado válido. Opções adicionais, como grampeamento do OSCP ou HTTP Strict Transport Security (HSTS) também podem ser ativados.[25] A configuração automática inicialmente só funciona com Apache e nginx.

A Let’s Encrypt emite certificados válidos por 90 dias. A razão para isso é que estes certificados “limitam o dano no caso de emissão errada e erros chave” e encorajam a automação.[31] O cliente oficial certbot e a maioria dos clientes de terceiros permitem a renovação automática do certificado.

Várias implementações de clientes terceiros em diversas linguagens foram criadas pela comunidade.[32]

História e Cronograma

[editar | editar código-fonte]

O projeto Let’s Encrypt começou em 2012 por dois empregados da Mozilla, Josh Aas e Eric Rescorla, junto com Peter Eckersle da Eletronic Frontier Foundation e J. Alex Halderman da Universidade de Michigan. A Internet Security Research Group, empresa por trás do Let’s Encrypt, foi incorporada em Maio de 2013.[33]

O Let’s Encrypt foi anunciado publicamente em 18 de Novembro de 2014.[34]

Em 28 de Janeiro de 2015 o protocolo ACME foi oficialmente submetido ao IETF para padronização.[35] Em 9 de Abril de 2015, a ISRG a Fundação Linux declararam suas colaborações.[18] Os certificados raiz e intermediários foram gerados no começo de Junho. Em 16 de junho de 2015, o cronograma final para o lançamento do serviço foi anunciado, com a expectativa de emissão do primeiro certificado em algum momento na semana de de 27 de julho de 2015, seguido por um período de emissão limitada para testar segurança e escalabilidade. A disponibilidade geral do serviço originalmente era planejada para começar na semana de 14 de Setembro de 2015.[36] Em 7 de agosto de 2015, o cronograma de lançamento foi alterado para fornecer mais tempo para garantir segurança e estabilidade; o primeiro certificado a ser emitido foi na semana de 7 de Setembro de 2015, seguido pela disponibilidade geral na semana de 16 de Novembro de 2015.[37] Planejava-se que a assinatura cruzada da IdenTrust estivesse disponível quando a Let’s Encrypt abrisse para o público.[21]

Em 14 de Setembro de 2015, a Let’s Encrypt emitiu seu primeiro certificado, para o domínio helloworld.letsencrypt.org. No mesmo dia, a ISRG submeteu as aplicações do seu programa raiz para Mozilla, Microsoft, Google e Apple.[38]

Em 19 de Outubro de 2015, os certificados intermediários passaram a ter assinatura cruzada da IdenTrust, fazendo com que todos os certificados emitidos pela Let’s Encrypt tivessem a confiança de todos os grandes navegadores.[20]

Em 12 de Novembro de 2015, a Let’s Encrypt anunciou que a disponibilidade geral seria adiada e que o primeiro beta público iria começar em 3 de dezembro de 2015.[39]

Em 3 de dezembro de 2015, a Let’s Encrypt anunciou o começo do beta público.[40]

Em 8 de março de 2016, a Let’s Encrypt emitiu seu milionésimo certificado após sete meses de existência.[41]

Em 12 de abril de 2016, o Let’s Encrypt saiu do Beta.[42]

Em 21 de abril de 2016, 44 dias depois de emitir seu milionésimo certificado, a Let’s Encrypt chegou a 2 milhões de certificados emitidos.[43] Em 3 de Junho de 2016, a Let’s Encrypt emitiu mais de 4 milhões de certificados.[44] Em 22 de junho de 2016, a Let’s Encrypt tinha emitido mais de 5 milhões de certificados, dos quais 3.8 milhões não podem ser expirados ou revogados. Os certificados ativos cobrem mais de 7 milhões de domínios únicos, em parte devido ao suporte de grandes empresas de hospedagem.[45]

Em 9 de Setembro de 2016, eles emitiram mais de 10 milhões de certificados;[46] e em 27 de novembro de 2016 já eram mais de 20 milhões[47] e, em Dezembro de 2016, 24 milhões.[48]

No início de 2019 são emitidos em média 1 milhão de certificados ao dia.[44]

Leitura adicional

[editar | editar código-fonte]

Referências

  1. «Leaving Beta, New Sponsors - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org (em inglês). Consultado em 6 de março de 2017 
  2. Cimpanu, Catalin. «Let's Encrypt Launched Today, Currently Protects 3.8 Million Domains». softpedia (em inglês) 
  3. «Let's Encrypt Effort Aims to Improve Internet Security» 
  4. «Launching in 2015: A Certificate Authority to Encrypt the Entire Web». Electronic Frontier Foundation. 18 de novembro de 2014 
  5. «How It Works». Let's Encrypt. Consultado em 6 de Março de 2017 
  6. Tung, Liam. «EFF, Mozilla to launch free one-click website encryption | ZDNet». ZDNet (em inglês) 
  7. a b c d Security, heise. «Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf». Security (em alemão). Consultado em 6 de março de 2017 
  8. «EFF wants to make HTTPS the default protocol». 17 de junho de 2016. Consultado em 6 de março de 2017 
  9. «#774387 - ITP: letsencrypt -- Let's Encrypt client that can update Apache configurations - Debian Bug report logs». bugs.debian.org. Consultado em 6 de março de 2017 
  10. «Debian Package Tracker - python-letsencrypt». tracker.debian.org. Consultado em 6 de março de 2017 
  11. «Deprecating Non-Secure HTTP». Mozilla Security Blog (em inglês). Consultado em 6 de março de 2017 
  12. «Marking HTTP As Non-Secure - The Chromium Projects». www.chromium.org. Consultado em 6 de março de 2017 
  13. Moody, Glyn. «surveillance». ComputerworldUK (em inglês) 
  14. Vaughan-Nichols, Steven J. «Securing the web once and for all - Let's Encrypt Project» (em inglês) 
  15. «Let's Encrypt CA releases transparency report before its first certificate». Help Net Security. 6 de julho de 2015. Consultado em 6 de março de 2017 
  16. Aas, Josh (16 de Agosto de 2015). «Documentation: Frequently Asked Questions (FAQ)». Let's Encrypt Community Support. Consultado em 6 de Março de 2017 
  17. «Issuance Policy: Please support wildcard certificates». Let's Encrypt Community Support. 2 de Agosto de 2015. Consultado em 6 de Março de 2017 
  18. a b «Let's Encrypt Becomes Linux Foundation Collaborative Project» 
  19. a b c d Aas, Josh (4 de Junho de 2015). «Let's Encrypt Root and Intermediate Certificates». Let's Encrypt. Consultado em 6 de Março de 2017 
  20. a b «Let's Encrypt is Trusted - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org (em inglês). Consultado em 6 de março de 2017 
  21. a b online, heise. «SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen». heise online (em alemão). Consultado em 6 de março de 2017 
  22. online, heise. «Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle». heise online (em alemão). Consultado em 6 de março de 2017 
  23. «Certificates». Let's Encrypt. 3 de Dezembro de 2015. Consultado em 6 de Março de 2017 
  24. Aas, Josh (13 Agosto de 2015). «Elliptic Curve Cryptography (ECC) Support». Let's Encrypt. Consultado em 6 de Março de 2017 
  25. a b «EFF, Others Plan to Make Encrypting the Web Easier in 2015». Threatpost | The first stop for security news (em inglês). 18 de novembro de 2014 
  26. «letsencrypt/acme-spec». GitHub (em inglês). Consultado em 6 de março de 2017 
  27. James, Kasten,; Richard, Barnes,; Jacob, Hoffman-Andrews,. «Automatic Certificate Management Environment (ACME)». tools.ietf.org (em inglês). Consultado em 6 de março de 2017 
  28. «letsencrypt/boulder». GitHub (em inglês). Consultado em 6 de março de 2017 
  29. «certbot/certbot». GitHub (em inglês). Consultado em 6 de março de 2017 
  30. «Let's Encrypt initiative to provide free encryption certificates - TechRepublic». TechRepublic (em inglês) 
  31. Aas, Josh (9 de Novembro de 2015). «Why ninety-day lifetimes for certificates?». Let's Encrypt. Consultado em 6 de Março de 2017 
  32. «certbot/certbot». GitHub (em inglês). Consultado em 6 de março de 2017 
  33. Aas, Josh (18 de novembro de 2014). «Let's Encrypt». Josh Aas. Consultado em 6 de março de 2017 
  34. Tsidulko, Joseph (18 de novembro de 2014). «Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode». CRN (em inglês) 
  35. «History for draft-barnes-acme-04». datatracker.ietf.org (em inglês). Consultado em 6 de março de 2017 
  36. «Let's Encrypt Launch Schedule - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org (em inglês). Consultado em 6 de março de 2017 
  37. «Updated Let's Encrypt Launch Schedule - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org (em inglês). Consultado em 6 de março de 2017 
  38. «First Let's Encrypt Free Certificate Goes Live». Threatpost | The first stop for security news (em inglês). 15 de setembro de 2015 
  39. «Public Beta: December 3, 2015 - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org (em inglês). Consultado em 6 de março de 2017 
  40. «Entering Public Beta - Let's Encrypt - Free SSL/TLS Certificates» 
  41. «Our Millionth Certificate - Let's Encrypt - Free SSL/TLS Certificates». letsencrypt.org 
  42. «Let's Encrypt Leaves Beta». LinuxFoundation.org. Consultado em 6 de março de 2017. Arquivado do original em 15 de abril de 2016 
  43. «Let's Encrypt Reaches 2,000,000 Certificates» 
  44. a b «Let's Encrypt Stats». letsencrypt.org 
  45. «Progress Towards 100% HTTPS, June 2016». letsencrypt.org 
  46. Let's Encrypt [@letsencrypt] (9 de Setembro de 2017). «We've now issued more than 10 million certificates.» (Tweet) – via Twitter 
  47. Let's Encrypt [@letsencrypt] (27 de Novembro de 2016). «We've issued 20M certificates!» (Tweet). Consultado em 6 de Março de 2017 – via Twitter 
  48. Let's Encrypt [@letsencrypt] (12 de Dezembro de 2016). «Just over 1 year ago, we issued our first cert. Today, 24M and climbing!» (Tweet). Consultado em 6 de Março de 2017 – via Twitter 

Ligações externas

[editar | editar código-fonte]