S přibývajícími bezpečnostními kauzami se stále častěji hovoří o potřebě více šifrovat na všech možných úrovních. Podle mnohých by měl být ideálně zašifrovaný přístup ke všem webům a pravdou je, že velké servery šifrování už běžně používají: Google, Facebook, Twitter, Wikipedie a další. Problémem provozovatelů malých webů ale zůstávají platby za vystavení důvěryhodného certifikátu.
Zvlášť pro provozovatele soukromých webů nebo třeba malých neziskových portálů je nepříjemné platit stokoruny ročně za certifikát, který z jejich pohledu není pro provoz vlastně nutný. Pokud by ale byl certifikát k dispozici zdarma a ještě by bylo triviální jej nasadit a vše zapnout, je pravděpodobné, že alespoň někteří by si SSL na svém webu zapnuli.
Let's Encrypt za certifikáty zdarma
O iniciativě Let's Encrypt jste už dost možná slyšeli. Stojí za ní Internet Security Research Group (ISRG) a hlavními sponzory jsou EFF, Mozilla Foundation, Akamai a Cisco Systems. Další partneři projektu také nejsou neznámí: certifikační autorita IdenTrust, University of Michigan, Stanford Law School nebo třeba Linux Foundation.
Cílem je vytvořit automatizovanou certifikační autoritu, která bude po strojovém ověření vydávat důvěryhodné SSL certifikáty pro použití na webu. Organizace tvrdí, že hlavními principy služby jsou:
- Zdarma: jakýkoliv vlastník domény může získat důvěryhodný certifikát zadarmo
- Automaticky: software na web serveru dokáže komunikovat se službou Let’s Encrypt a bezbolestně získat certifikát, vše nastavit pro jeho použití a postarat se o obnovování certifikátu
- Bezpečně: vše by mělo fungovat také jako platforma pro správné nasazení šifrování, autorita bude pomáhat provozovatelům webů s jejich zabezpečením
- Průhlednost: všechny vystavené nebo revokované certifikáty budou zaznamenány a zveřejněny kvůli ověření
- Otevřený: protokol pro automatické ověření a obnovení bude zveřejněn jako otevřený standard
- Spoluprací: Let’s Encrypt se chce stát součástí internetové komunity a nebýt pod nadvládou jedné organizace
Stroj ověřuje stroj
Technicky bude vše zajišťovat automatická utilita s názvem letsencrypt
, kterou si uživatel nainstaluje na server. Ta používá protokol ACME pro komunikaci se serverem služby. Tomu musí prokázat, že správce serveru je zároveň správcem domény nebo alespoň ovládá web server, na který doména odkazuje.
Po instalaci je vygenerován pár klíčů, kterým se klient představuje serveru a zabezpečuje komunikaci. Poté je autorita požádána o vystavení certifikátu k doméně a v odpovědi je vrácena informace, která bude dokazovat oprávněnost žádosti. Tuto informaci je možné buďto vystavit jako záznam v DNS nebo ji dát k dispozici ke stažení na web ve správné cestě v dané doméně.
To vše proto, aby nebylo možné nechat si vystavit certifikát pro libovolnou doménu. Takto je zajištěna interakce na straně domény/webu a je znemožněna jednoduchá manipulace. Správce musí vědomě provést akci, která vede k potvrzení žádosti a jednoznačnému svázání s danou doménou.
Server se poté pokusí vystavenou informaci získat a pokud se mu to podaří, prohlásí žádost za oprávněnou. Poté teprve dojde k vystavení certifikátu, případně k jeho automatickému nasazení. Podporovány jsou servery Apache a Nginx, pokud používáte jiný web server nebo nechcete provádět věci příliš automaticky, můžete skončit s uloženým certifikátem a privátním klíčem na disku. Zbytek je na vás.
Utilita poté umí automaticky hlídat platnost certifikátu a včas požádat o vystavení nového. Opět je to ale možné potlačit a volat utilitu ručně, pokud jste příznivci přímé kontroly.
Tip: Na konferenci LinuxDays 2015 bude o celém procesu podrobně přednášet Ondřej Caletka
Důvěryhodnost zajistí cross-signing
Problémem nově zakládané certifikační autority je zařazení jejich kořenových certifikátů mezi důvěryhodné v klientských aplikacích. Let's Encrypt pracuje intenzivně na zařazení do software od Mozilla Foundation a Google Chrome. Bohužel tomu tak zatím není a ještě bude chvíli trvat, než se nová autorita dostane do všech běžných úložišť.
Proto existuje záložní řešení zvané cross-signing. Mezilehlý certifikát Let’s Encrypt Intermediate X1 (X2 je záložní a nebude se běžně užívat) bude kromě standardního kořenového certifikátu (ISRG Root X1) navíc podepsán ještě autoritou IdenTrust, která je dnes běžně na seznamu důvěryhodných autorit. Budou tedy existovat dvě alternativní cesty a software si vybere tu důvěryhodnou.
V tuto chvíli ještě IdenTrust mezilehlé certifikáty nepodepsala, mělo by se tak stát přibližně za měsíc. Poté budou certifikáty vydané Let's Encrypt platné pro všechny běžné aplikace a nic nebude bránit jejich praktickému nasazení.
Napište si do kalendáře 16. listopadu
Podle aktualizovaného časového harmonogramu to vše vypukne 16. listopadu, což je den, kdy začne veřejné vydávání certifikátů. První certifikát už byl vystaven a můžete se na něj podívat na helloworld.letsencrypt.org. Tamní certifikát zatím není cross-signován, pro jeho ověření budete potřebovat ISRG root.
Nyní začíná fáze praktického testování, kdy budou nejprve podepsány certifikáty pro některé vybrané domény a poté budou postupně přidávány další. Je možné se zapojit do beta testování a přidat na seznam své vlastní domény. Pokud budete mít štěstí, budete mít certifikát vystavený dřív a budete si moci vše vyzkoušet.
My v redakci jsme v beta programu zapojení a jakmile budeme moci vystavit reálný certifikát pro některou ze svých domén, určitě vám přineseme podrobný článek s postupy a testy.