Let's Encrypt

Automatická certifikační autorita pro X.509 certifikáty

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, anglicky Domain Validated) typu X.509 pro šifrování protokolu TLS.[1][2]

Let's Encrypt
Motto„Encrypt the entire web“
ZakladatelElectronic Frontier Foundation, Mozilla Foundation a Michiganská univerzita
Vznik2014
SídloSan Francisco, USA
Souřadnice
PůsobnostX.509 certifikační autorita
Mateřská organizaceInternet Security Research Group
Rozpočet3 600 000 $ (2019)
Počet zaměstnanců8 (2016)
Oficiální webletsencrypt.org
Map
Logo Wikimedia Commons multimediální obsah na Commons
Některá data mohou pocházet z datové položky.

Přehled editovat

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 %.[3] V únoru 2017 bylo vydáno podobné prohlášení projektu Let's Encrypt.[4][5]

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í.[6] 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.[7][8] Za tímto účelem se také aktuálně pracuje na zahrnutí softwarového balíčku do oficiálních repozitářů systému Debian.[9] 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.[10][11] Projektu je také všeobecně přiznáván potenciál k rozšíření šifrované komunikace.[12]

Bude vydáváno pouze tzv. doménové ověření (DV, anglicky Domain Validated). Ověření organizace (OV, anglicky Organization Validated) ani rozšířené ověření (EV, anglicky Extended Validation) nebude nabízeno.[13]

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,[14] veřejně zaznamenává všechny transakce a používá co nejvíce otevřených standardů a softwaru.[7]

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 editovat

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[15] a také Stephen Kent z Rayethon/BBN Technologies a Alex Polvi z CoreOS.[7]

Technologie editovat

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.[16] 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í.[17] 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.[18]

Protokol editovat

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.[19] Návrh specifikace je dostupný na serveru GitHub,[20] přičemž její první verze byla odeslána do Internet Engineering Task Force (IETF) jako návrh na nový standard.[21]

Implementace softwaru editovat

 
Domain selection dialogue

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.[22] 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í.[23] 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.[24][7] 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.[19] Automatická instalace certifikátu bude zpočátku fungovat pouze na webovém serveru Apache a nginx.

Historie a plány editovat

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.[25]

Dne 28. ledna 2015 byl protokol ACME oficiálně odeslán do IETF ke standardizaci.[26] Dne 9. dubna 2015 pak přislíbila spolupráci Linux Foundation.[15] Kořenový certifikát a certifikáty zprostředkující certifikační autority byly vygenerovány na začátku měsíce června.[17] 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.[27] 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.[28] 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.[29]

Problém s novým kořenovým certifikátem editovat

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.[30] 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).[18] 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.[31] 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 editovat

Reference editovat

V tomto článku byl použit překlad textu z článku Let's Encrypt na anglické Wikipedii.

  1. Kerner, Sean Michael. Let's Encrypt Effort Aims to Improve Internet Security [online]. Quinstreet Enterprise, 2014-11-18 [cit. 2015-02-17]. Dostupné v archivu pořízeném dne 2014-11-19. 
  2. Eckersley, Peter. Launching in 2015: A Certificate Authority to Encrypt the Entire Web [online]. Electronic Frontier Foundation, 2014-11-18 [cit. 2014-02-27]. Dostupné online. 
  3. JELÍNEK, Lukáš. Podíl HTTPS překročil u Firefoxu 50 %. LinuxEXPRES [online]. 2016-10-16 [cit. 2017-02-21]. Dostupné online. 
  4. JANŮ, Stanislav. Poprvé v historii je víc než polovina internetového trafficu šifrovaná. Živě.cz [online]. 2017-02-22 [cit. 2017-02-22]. Dostupné online. 
  5. Let's Encrypt Stats [online]. Let's Encrypt [cit. 2017-02-22]. Dostupné online. (anglicky) 
  6. Liam Tung (ZDNet), 2014-11-19: EFF, Mozilla to launch free one-click website encryption
  7. a b c d Fabian Scherschel (heise.de), 2014-11-19: Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  8. Rob Marvin (SD Times), 2014-11-19: EFF wants to make HTTPS the default protocol
  9. ITP: letsencrypt – Let's Encrypt client that can update Apache configurations
  10. Richard Barnes (Mozilla), 2015-04-30: Deprecating Non-Secure HTTP
  11. The Chromium Projects – Marking HTTP As Non-Secure
  12. Glyn Moody, 2014-11-25: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  13. Steven J. Vaughan-Nichols (ZDNet), 2015-04-09: the web once and for all: The Let's Encrypt Project
  14. Zeljka Zorz (Help Net Security), 2015-07-06: Let's Encrypt CA releases transparency report before its first certificate
  15. a b Sean Michael Kerner (eweek.com), 2015-04-09: Let's Encrypt Becomes Linux Foundation Collaborative Project
  16. Reiko Kaps (heise.de), 2015-06-17: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  17. a b Reiko Kaps (heise.de), 2015-06-05: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  18. a b KRČMÁŘ, Petr. Let's Encrypt se staví na vlastní nohy, změna kořene odřízne třetinu Androidů. root.cz [online]. Internet Info, 2020-11-09 [cit. 2020-12-22]. Dostupné online. 
  19. a b Chris Brook (Threatpost), 2014-11-18: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  20. Draft ACME specification [online]. Dostupné online. 
  21. R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten. Automatic Certificate Management Environment (ACME) draft-barnes-acme-01 [online]. 2015-01-28. Dostupné online. 
  22. https://github.com/letsencrypt/boulder/blob/master/LICENSE.txt
  23. https://github.com/letsencrypt/letsencrypt/blob/master/LICENSE.txt
  24. James Sanders (TechRepublic), 2014-11-25: Let's Encrypt initiative to provide free encryption certificates
  25. Joseph Tsidulko. Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode [online]. 2014-11-18 [cit. 2015-08-26]. Dostupné online. 
  26. History for draft-barnes-acme
  27. Josh Aas. Let's Encrypt Launch Schedule [online]. Let's Encrypt, 2015-06-16 [cit. 2015-06-19]. Dostupné online. 
  28. Updated Let's Encrypt Launch Schedule [online]. 2015-08-07. Dostupné online. 
  29. Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live [online]. Threatpost.com, Kaspersky Labs [cit. 2015-09-16]. Dostupné online. 
  30. KRČMÁŘ, Petr. Let's Encrypt je ve Firefoxu 50 důvěryhodný. root.cz [online]. Internet Info, 2016-11-16 [cit. 2020-12-22]. Dostupné online. 
  31. KRČMÁŘ, Petr. Let's Encrypt vyřešil problém s Androidem, starší verze poběží dál. root.cz [online]. Internet Info, 2020-12-22 [cit. 2020-12-22]. Dostupné online. 

Literatura editovat

  • Richard Barnes, Jacob Hoffman-Andrews, James Kasten. Automatic Certificate Management Environment (ACME). Svazek Active Internet-Drafts. [s.l.]: IETF, 21. July 2015 tisk. Dostupné online. (anglicky)  (poslední specifikace standardu ACME)

Externí odkazy editovat