Indietro

ⓘ Let's Encrypt




Lets Encrypt
                                     

ⓘ Lets Encrypt

Lets Encrypt è una certification authority che automatizza gratuitamente la creazione, la validazione, il rilascio ed il rinnovo di certificati X.509 per il protocollo TLS.

Il client di Lets Encrypt è software libero. La lista dei certificati rilasciati è pubblica.

                                     

1. Scopo

Lo scopo principale del progetto è quello di riuscire a cifrare tutte le comunicazioni sul World Wide Web. Lets Encrypt si prefigge di raggiungere questo scopo azzerando il costo dei certificati ed andando ad automatizzare il processo di configurazione del web server, della verifica tramite email e del rinnovo del certificato. In questo modo la complessità di gestione e manutenzione di una cifratura TLS si riduce drasticamente su un web server su un sistema unix-like sono sufficienti pochi secondi per configurare il supporto ad HTTPS.

Il client di Lets Encrypt è incluso nei repository ufficiali di Debian, al fine di favorire maggiormente la diffusione del client. La maggior parte dei browser fa affidamento su Lets Encrypt per deprecare lutilizzo di connessioni HTTP non cifrate.

Lets Encrypt rilascia solamente certificati di tipo Domain Validated, non è previsto il rilascio di certificati di tipo Organization Validation o Extended Validation. Dal 13 marzo 2018 sono supportati ufficialmente anche i certificati wildcard usati per mettere in sicurezza, con lo stesso certificato di dominio, anche i sottodomini.

                                     

2. Storia

Il progetto Lets Encrypt nasce nel 2012 da parte di due impiegati di Mozilla, Josh Aas e Eric Rescorla insieme a Peter Eckersley della Electronic Frontier Foundation e J. Alex Halderman della Università del Michigan. LInternet Security Research Group, lente che attualmente sta seguendo lo sviluppo di Lets Encrypt è entrata nel progetto nel maggio 2013.

Il 18 novembre 2014, Lets Encrypt viene annunciato ufficialmente al pubblico.

Il 28 gennaio 2015, il protocollo ACME viene presentato allIETF per essere ufficialmente standardizzato. Il 9 aprile 2015 lo ISRG e la Linux Foundation annunciano ufficialmente la loro collaborazione. Allinizio del giugno 2015 vengono generati il certificato root ed il certificato intermedio di Lets Encrypt, mentre il 16 giugno vengono annunciate ufficialmente le scadenze che indicano la settimana del 27 luglio come obiettivo per il rilascio del primo certificato e la settimana del 14 settembre 2015 come papabile per il rilascio pubblico del servizio. Il 7 agosto 2015 queste scadenze vengono riviste per permettere di fornire maggiore stabilità e sicurezza al sistema, facendo slittare alla settimana del 7 settembre 2015 il rilascio del primo certificato e alla settimana del 16 novembre il rilascio pubblico del servizio.

Il 14 settembre 2015, Lets Encrypt rilascia il suo primo certificato, per il dominio helloworld.letsencrypt.org. Nello stesso giorno la ISRG invia la richiesta a Mozilla, Microsoft, Google ed Apple per i loro root program, al fine di rendere i certificati di Lets Encrypt riconosciuti dai principali browser.

Il 19 ottobre 2015, il certificato intermedio di Lets Encrypt diventa cross-signed grazie al supporto di IdenTrust. In questo modo tutti i certificati finora rilasciati da Lets Encrypt risultano riconosciuti dai principali browser.

Il 12 novembre 2015, Lets Encrypt annuncia che il rilascio per il grande pubblico sarebbe slittato e che avrebbe avviato il programma di beta pubblica il 3 di dicembre dello stesso anno.

Il 3 dicembre 2015, Lets Encrypt annuncia ufficialmente di essere entrato nella fase di beta pubblica

Dal 12 aprile 2016 Lets Encrypt esce dalla beta pubblica, dichiarando di aver validato 1.7 milioni di certificati per 3.8 milioni di siti web.

                                     

3. Tecnologie

Nel giugno 2015, Lets Encrypt ha generato un certificato root RSA che si trovava su un hardware security module HSM poi messo offline. Il certificato root è stato utilizzato per firmare due certificati intermedi, i quali sono a loro volta cross-signed da parte di IdenTrust. Uno dei certificati intermedi viene utilizzato per la firma dei certificati rilasciati, mentre laltro viene mantenuto offline a scopo di backup nel caso ci fossero problemi con il primo certificato.

Il cross-signing da parte di IdenTrust consente alla maggior parte dei browser di considerare i certificati come attendibili, anche nel caso in cui il certificato root di Lets Encrypt non venga riconosciuto dal browser.

Gli sviluppatori di Lets Encrypt prevedono di generare anche un certificato root ECDSA entro la prima parte del 2016.

                                     

3.1. Tecnologie Protocollo

Il protocollo utilizzato da Lets Encrypt per lautenticazione e il rilascio dei certificati si chiama Automated Certificate Management Environment ACME, è un protocollo del tipo challenge-response. Il server Lets Encrypt presenta al client il web server un insieme di challenge che il proprietario del dominio deve risolvere per provare di essere il responsabile del dominio.

Nella versione beta di Lets Encrypt è supportata solamente la challenge di tipo HTTP: si richiede al gestore del web server di restituire un token a fronte di una richiesta GET eseguita sul web server.

Il protocollo ACME prevede anche altri tipi di challenge, in particolare Lets Encrypt prevede di supportare le challenge di tipo DNS: si richiede di inserire un record di tipo TXT contenente un token presso il server DNS del dominio per cui si richiede il certificato.

Tutte le richieste effettuate tramite il protocollo ACME avvengono attraverso JSON firmati anche detti JSON web signature, JWS scambiati su connessioni HTTPS. La versione draft delle specifiche del protocollo può essere trovata su GitHub. Un versione del protocollo ACME è stata inoltre inviata allIETF per la sua standardizzazione.



                                     

3.2. Tecnologie Implementazioni software

La certification authority consiste in un software chiamato Boulder e scritto in Go, che implementa il protocollo lato server. Boulder viene rilasciato come software libero sotto licenza Mozilla Public License MPL, di fatto offre delle API RESTful che possono essere invocate tramite canale cifrato con TLS.

Il software che esegue sul lato client sul web server si chiama certbot, è scritto in Python ed è rilasciato con licenza Apache. Il software client si occupa della gestione dei certificati, del processo di validazione del dominio, dellinstallazione dei certificati, della configurazione HTTPS sul web server e del rinnovo dei certificati. Il client permette di configurare in automatico i web server Apache ed nginx.

                                     

4. Soggetti coinvolti

Lets Encrypt è un servizio offerto dal Internet Security Research Group ISRG, unorganizzazione senza scopo di lucro con il focus principale sulla sicurezza su internet. Gli sponsor principali del progetto sono la Electronic Frontier Foundation EFF, la Mozilla Foundation, Akamai, Cisco, Chrome ed OVH. Fra gli altri partner vi sono anche la certification authority IdenTrust, la Università del Michigan, la Stanford School of Law, la Linux Foundation e Facebook.

Technical Advisory Board

  • Russ Housley Indipendente
  • Rich Salz Akamai
  • Joe Hildebrand Cisco
  • Jacob Hoffman-Andrews Electronic Frontier Foundation
  • Karen ODonoghue Internet Society
  • J.C. Jones Mozilla Foundation
  • Stephen Kent Indipendente
  • Ryan Hurst Indipendente
                                     
  • Aug 2014. Launch schedule, su Let s Encrypt URL consultato il 21 settembre 2015. Kerner, Sean Michael, Let s Encrypt Effort Aims to Improve Internet
  • Commons contiene immagini o altri file su Transport Layer Security Let s Encrypt org, su letsencrypt.org. RFC 2246: The TLS Protocol, Version 1.0 RFC
  • certificati SHA - 1. Let s Encrypt una certification authority che rilascia certificati a titolo gratuito. Let s Encrypt su letsencrypt.org. Actalis S p.A., una

Anche gli utenti hanno cercato:

certbot lets encrypt, lets encrypt aruba, rinnovare certificato let's encrypt,

...
...
...