Let's Encrypt
Let's Encrypt je certifikační autorita. Za pomoci automatizovaného procesu, navrženého tak, aby odstranil složitý proces manuální tvorby, ověřování, podepisování, instalace a obnovování certifikátu. Zdarma poskytuje doménově ověřené certifikáty (DV, ) typu X.509 pro šifrování protokolu TLS.

Přehled 
Cílem projektu je, aby bylo šifrované spojení ve World Wide Webu považováno za normální. V říjnu 2016 oznámila Mozilla Corporation, že podle jejich údajů z prohlížeče Mozilla Firefox přesáhl podíl navštívených stránek přes HTTPS protokol 50 %.
V únoru 2017 bylo vydáno podobné prohlášení projektu Let's Encrypt.

Odbouráním plateb, konfigurací webového serveru, ověřovacích e-mailů a řešení expirovaných certifikátů má projekt znatelně snížit složitost nastavování a správy TLS šifrování. Na Linuxovém webovém serveru by mělo ke zprovoznění HTTPS šifrování stačit vykonání pouze dvou příkazů. Celý proces získání a instalace certifikátu by tak měl zabrat něco mezi 20 až 30 sekundami. Za tímto účelem se také aktuálně pracuje na zahrnutí softwarového balíčku do oficiálních repozitářů systému Debian. Současná iniciativa hlavních poskytovatelů webových prohlížečů na zavržení nešifrované HTTP komunikace spoléhá na dostupnost služby Let's Encrypt. Projektu je také všeobecně přiznáván potenciál k rozšíření šifrované komunikace.

Bude vydáváno pouze tzv. doménové ověření (DV, ). Ověření organizace (OV, ) ani rozšířené ověření (EV, ) nebude nabízeno.

Tím, že bude Let's Encrypt co nejvíce otevřený, chce docílit jak ochrany své důvěryhodnosti, tak se také bránit proti pokusům o útok či manipulaci. Za tímto účelem publikuje pravidelně zprávy o transparentnosti, veřejně zaznamenává všechny transakce a používá co nejvíce otevřených standardů a softwaru.

Název programu, který tvoří samotnou certifikační autoritu je „Boulder“, což je skrytým odkazem na produkt fiktivní společnosti Acme Corporation z kreslených grotesek od studia Looney Tunes.

Zúčastněné strany 
Let's Encrypt je služba poskytovaná veřejnou příspěvkovou organizací Internet Security Research Group (ISRG). Hlavními sponzory jsou Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems, OVH, Chrome. Mezi další partnery patří jiná certifikační autorita IdenTrust, University of Michigan, Stanford Law School, Linux Foundation a také Stephen Kent z Rayethon/BBN Technologies a Alex Polvi z CoreOS.

Technologie 
Let's Encrypt vlastní kořenový digitální certifikát podepsaný algoritmem RSA, který je uložen na hardwarovém zařízení a není přímo používán. Později je v plánu jeho náhrada za certifikát zašifrovaný pomocí ECDSA. Kořenový certifikát bude užíván k podepisování dvou certifikátů zprostředkujících certifikační autority, které jsou cross-signed certifikační autoritou IdenTrust. Jeden z nich bude používán pro podepisování vydaných certifikátů, druhý bude sloužit jako záloha v případě problémů s prvním. Díky tomu, že je certifikát IdenTrust předinstalován ve všech hlavních prohlížečích, budou moci být vydané certifikáty ověřovány a přijímány bez nutnosti instalace jakéhokoliv rozšíření. V dlouhodobém horizontu je v plánu dostat kořenový certifikát Let's Encrypt přímo do systémů i aplikací, což bylo zahájeno v roce 2016.

Protokol 
Protokol Challenge-response, používaný ke zautomatizování procesu přihlašování pomocí této certifikační autority se nazývá Automated Certificate Management Environment (ACME). Umožňuje různé požadavky na webový server na doméně, která je chráněná certifikátem. Kontrola této domény je zaručena na základě výsledné odpovědi (pokud je výsledná odpověď serveru stejná, jako odpověď očekávaná). Aby se této kontroly dalo docílit, klient protokolu ACME nastaví na serverovém systému speciální TLS server, který je následně volán speciálním požadavkem využívajícím Server Name Indication (Domain Validation using Server Name Indication, DVSNI). Tento proces může proběhnout pouze pro první certifikát, který bude vydán pro kteroukoliv doménu (tento přístup se označuje jako „trust on first use“, TOFU). Následně je využíván alternativní způsob ověření přes existující certifikát. Jakmile dojde ke ztrátě existujícího certifikátu, musí být nový certifikát získán nejdříve od nějaké třetí strany, jinak nebude možné obdržet další certifikát od Let's Encrypt.

Ověřovací procesy probíhají vícekrát přes oddělené síťové cesty. Kontrola DNS záznamů je navržena tak, aby byla provedena z několika geograficky odlišných míst. Díky tomu by měly být služba lépe chráněna proti útokům typu DNS spoofing.

Interakce v protokolu Automated Certificate Management Environment jsou založeny na výměně dokumentů ve formátu JSON realizované pomocí HTTPS komunikace. Návrh specifikace je dostupný na serveru GitHub, přičemž její první verze byla odeslána do Internet Engineering Task Force (IETF) jako návrh na nový standard.

Implementace softwaru 

Certifikační autoritu tvoří program nazývaný Boulder, napsaný v jazyce Go, který na straně serveru implementuje protokol ACME. Jeho zdrojový kód je zveřejněn pod licencí Mozilla Public License (MPL) ve verzi 2.0. Tento program poskytuje REST API, ke kterému se dá přistoupit s pomocí TLS.

Klientský program pro správu certifikátů, který je nainstalovaný na webovém serveru, se jmenuje letsencrypt. Je napsaný v jazyce Python a uvolněný pod Apache licencí. Slouží k řízení ověřovacího procesu domén, k instalaci certifikátů, konfigurování HTTPS šifrování na HTTP serveru a bude používán také k automatickému prodlužování certifikátu. Po instalaci a souhlasu s uživatelskou licencí stačí k instalaci validního certifikátu jediný příkaz. Povoleny mohou být i další možnosti jako OCSP stapling nebo HTTP Strict Transport Security. Automatická instalace certifikátu bude zpočátku fungovat pouze na webovém serveru Apache a nginx.

Historie a plány 
Začátky služby leží v projektu od Electronic Frontier Company, vznikajícím ve spolupráci s University of Michigan, a nezávislým projektem od společnosti Mozilla, které byly spojeny. V roce 2014 byla založena mateřská organizace Internet Security Research Group (ISRG). Spuštění Let's Encrypt bylo původně naplánováno na 18. listopadu 2014.

Dne 28. ledna 2015 byl protokol ACME oficiálně odeslán do IETF ke standardizaci. Dne 9. dubna 2015 pak přislíbila spolupráci Linux Foundation. Kořenový certifikát a certifikáty zprostředkující certifikační autority byly vygenerovány na začátku měsíce června. Dne 16. června byl oznámen poslední plán na spuštění, který počítal s tím, že první certifikát bude vydán někdy okolo 27. července 2015, a bude následován limitovaným vydáváním certifikátů k otestování bezpečnosti a škálovatelnosti celé služby. Spuštění veřejné dostupnosti služby je pak naplánováno někdy okolo 14. září 2015, ale to pouze za předpokladu, že vše půjde tak, jak je naplánováno. Dne 7. srpna bylo pozměněno datum spuštění za účelem získání více času pro zajištění bezpečnosti a stability. První certifikát měl být vygenerován 7. září 2015 následovaný veřejnou dostupností služby okolo 16. listopadu 2015. Cross signature od IdenTrust má být dostupný ihned poté, co se Let's Encrypt otevře veřejnosti.

Dne 14. září 2015 vydala služba Let's Encrypt svůj první certifikát, který byl vystavený pro doménu helloworld.letsencrypt.org. Ve stejný den odeslala ISRG jejich aplikace do společností Mozilla, Microsoft, Google a Apple.

 12. září 2015 – Limited Beta
 3. prosince 2015 – Public Beta
 8. března 2016 – 1 000 000. certifikát

Problém s novým kořenovým certifikátem 
V roce 2016 vystavila certifikační autorita Let's Encrypt svůj první vlastní kořenový certifikát ISRG Root X1 a zahájila proces jeho začlenění do nejrůznějších platforem.
Do té doby používala mezilehlý certifikát křížově podepsaný kořenovým certifikátem DST Root CA X3 od firmy IdenTrust, jehož platnost končí v září 2021. Od 11. ledna 2021 začne Let's Encrypt vydávat certifikáty odvozené od výše zmíněného vlastního kořene ISRG Root X1. Alternativní certifikáty podepsané původním klíčem budou vydávány do září 2021. To původně znamenalo, že systémy s Androidem starší než 7.1.1. (byl vydán 5. prosince 2016) by nebyly schopné nové certifikáty vydávané Let's Encrypt už ověřovat, což vedlo k nevoli jejich uživatelů (jedná se o třetinu aktivních zařízení s Androidem).
Dne 21. prosince 2020 však společnost IdenTrust oznámila, že po dohodě s Let's Encrypt křížově podepíše kořenový certifikát ISRG Root X1 svým původním kořenovým certifikátem DST Root CA X3, čímž vyřeší problém starších zařízení s Androidem, které by jinak nemohly certifikáty vydané autoritou Let's Encrypt v roce 2021 už ověřovat.
Výsledkem tohoto kroku je, že žádné Android zařízení nebude postiženo přechodem Let's Encrypt k novému kořeni ISRG Root X1.

Odkazy

Reference

Literatura 
  (poslední specifikace standardu ACME)

Externí odkazy 
 
 Oficiální stránka
 Repozitáře kódu hostované na serveru GitHub
 Přednáška Setha Schoena na Libre Planet 2015 (anglicky)
 Technický úvod v příspěvku na blogu od David Wonga (anglicky)
 Přednáška o Let's Encrypt na CCCamp 2015 (anglicky)
 Vyměnit 200 miliónů certifikátů za den? Let's Encrypt připravuje nejhorší scénář

Internet
Počítačová bezpečnost
Certifikační autority