Hlavní navigace

Vyměnit 200 miliónů certifikátů za den? Let's Encrypt připravuje nejhorší scénář

12. 2. 2021
Doba čtení: 4 minuty

Sdílet

 Autor: Let's Encrypt
Certifikační autorita Let’s Encrypt je nově připravena během jediného dne revokovat a znovu vydat všechny certifikáty, které spravuje. Systém byl značně posílen a nyní se ladí poslední drobnosti.

V běžném dni umí Let’s Encrypt vystavit téměř dva milióny certifikátů. Jenže služba přemýšlí logicky i nad tím, že by se mohlo klidně stát, že bude potřebovat znovu vystavit všechny vydané certifikáty v nejkratším možném čase, a tak řešila, kde v její infrastruktuře sedí žáby na prameni. Došlo tak k úpravě stávající infrastruktury, aby byla schopna vydávat stonásobek obvyklého množství, tedy přibližně 200 miliónů certifikátů za jediný den.

Práce na takovém řešení už delší dobu běží a nyní Let's Encrypt představila detaily svého řešení, které už je z velké části nasazeno. Jedním dechem dodává, že by se to neobešlo bez významných hardwarových darů od společností Cisco, Thales a Fortinet.

Let's Encrypt nyní spravuje více než 150 miliónů aktivních certifikátů, což je významné množství. V únoru 2020 přitom jediná chyba vedla k nutnosti revokovat a vyměnit zhruba tři milióny aktivních certifikátů, přičemž nakonec jich byla vyměněna polovina. To bylo pouze 2,6 % všech spravovaných, ale i tak si v Let's Encrypt uvědomili, že musejí být připraveni i na horší situace.

Modelově například nutnost vyměnit ihned všech více než 150 miliónů certifikátů, které pokrývají asi 240 miliónů domén (nejhorší možný scénář). Samotné zjištění incidentu je jedna věc, pak je také potřeba přijít na to, v čem je problém, napravit jej a teprve po určité době lze začít s vydáváním opravených certifikátů.

Hardware základem všeho

V Let’s Encrypt tedy proběhlo zjišťování, kde sedí žáby na prameni. Výkon vydávání nových či obnovených certifikátů samozřejmě stojí a padá s výkonem hardwaru a softwaru, který certifikační autorita pro svou činnost potřebuje a používá.

Po kontrole systémů byly v Let’s Encrypt nalezeny čtyři primární zdroje výkonových omezení. První je výkon databázového systému, dalším rychlost interní sítě, výkon kryptografického podepisovacího modulu (HSM) a v neposlední řade propustnost jako taková.

Databázový subsystém

Databáze je vlastně srdcem služby, kterou Let’s Encrypt nabízí. V jejich případě je write heavy, ale současně se z ní též hodně čte. V daný čas tak typicky jeden databázový server slouží pro zápis a případné čtení je přesměrováváno na jeho repliky. Technologie jediného zápisu a ne-clusterované strategie pomáhá s konzistencí dat a snižuje komplexitu celého řešení, nicméně v důsledku této designové volby omezuje celkový výkon databáze skutečnost, že zápisy (a určitá část čtecích požadavků) běží fyzicky na jediném stroji.

Předchozí generace databázových serverů Let’s Encrypt používala stroje se dvěma Xeony E5–2650 v4 (5 let starý 14nm Broadwell s celkově 2×12 CPU / 2×24 HT), 1 TB operační paměti a 24 kusy 3,8TB SSD připojených jako SATA v poli typu RAID 10. Fungovalo to dobře pro běžné denní zatížení, ale o náhradě všech certifikátů Let’s Encrypt během jediného dne si takový storj mohl jen nechat zdát.

Proběhl tedy upgrade. Nový databázový server staví na více strojích od firmy Dell. Uvnitř najdeme dvojici 32jádrových AMD EPYC 7542 (tedy celkem 128× HT) a 2 TB RAM. Hlavní výhodou EPYCů je pak 128 PCIe 4.0 linek v každém CPU, díky čemuž bylo možné povýšit diskové pole na celkem 24 ks 6,4TB NVMe SSD. Nemožnost postavit nad NVMe SSD nějaké RAID pole vedla k volbě souborového systému ZFS. Nárůst I/O u diskového subsystému je masivní.

Interní síťová konektivita

Interní síťové propojení stavělo na 1Gbit měděných spojích. Používal se bonding pro 2Gbit rychlost a velmi omezené množství 10Gbit portů dostupných na switchích. To do roku 2020 fungovalo uspokojivě, jenže pak už množství dat, které bylo potřeba systémem interně přelévat (replikace, zálohy atd.), narostlo za rozumnou mez.

Původně v Let’s Encrypt zvažovali přechod na 10Gbit spoje, ale zjistili, že 25Gbit optika nevyjde o tolik dráž. Navíc Cisco bylo tak laskavé, že pro tuto potřebu dodalo zdarma potřebné switche a po výměně řady NICů nyní Let’s Encrypt interně běží na 25Gbit optice.

Výkon Hardware Security Modules

Každé datové centrum Let’s Encrypt používalo dvojici modulů Luna HSM (Hardware Security Module), které podepisovaly všechny certifikáty a jejich odpovědi pro OCSP. Pokud chtěli v Let’s Encrypt být schopni revokovat a znovu vydat 200 miliónů certifikátů za den, potřeboval následující výkon těchto systémů:

  • 200 milliónů podepsaných odpovědí OCSP pro revokaci
  • 200 milliónů podpisů certifikátů pro náhradní certifikáty
  • 200 milliónů podepsaných odpovědí OCSP pro nové certifikáty

Celkově tedy potřebovali výkon na úrovni 600 miliónů podpisů za 24 hodin (nebo pokud možno rychleji), s nějakou rezervou navíc.

Současně se pracovalo s pojistkou, že v případě incidentu může mít Let’s Encrypt k dispozici pouze jediné datové centrum. Předchozí HSM řešení dávalo výkon asi 1100 podpisů za sekundu, celkově tedy asi 190 miliónů podpisů za 24 hodin, při plném výkonu systému. To bylo málo.

Aby bylo možné výkon dostat na potřebnou úroveň, musela přijít na scénu společnost Thales, která Let’s Encrypt darovala nové HSM systémy s přibližně 10násobným výkonem, schopným při maximálním vytížení provést 864 milionů podpisů za 24 hodin v jediném datovém centru.

Co se týče rychlosti propojení mezi datovými centry, zde Let’s Encrypt vypomohla firma Fortinet, která poskytla potřebný hardware pro navýšení výkonu, za současného řešení bezpečnosti a správy této konektivity.

root_podpora

API Extension

Aby bylo možné v daném tempu certifikáty nahrazovat, je potřeba systém pro efektivní a hlavně automatizovanou cestu jak informovat ACME klienty, že by měli provést dřívější obnovu certifikátů. Normálně ACME klienti renovují své certifikáty, když z doby jejich platnosti zbývá třetina a nemají jiný důvod pro dřívější kontaktování certifikační autority.

Let’s Encrypt loni připravil rozšíření ACME (Automated Certificate Management Environment), které popisuje cestu, jak mohou klienti průběžně zjišťovat u ACME serverů události předčasné obměny certifikátů. Návrh tohoto rozšíření se bude dolaďovat a následovat pak bude fáze implementace a spolupráce s klienty i velkými integrátory na nasazení této techniky.

Byl pro vás článek přínosný?

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.