V sídle organizace ICANN na východním pobřeží USA se 12. května sešla skupina významných internetových odborníků z celého světa, aby zde znovu podepsali takzvané záznamy kořenové zóny (DNS root zone). Tento vysoce důležitý akt se tentokrát konal i za účasti českého zástupce Ondřeje Filipa, který byl při této příležitosti jmenován do funkce Cryptographic Officer. Výkonný ředitel tuzemského správce národní domény se tímto stal jedním ze čtrnácti důvěryhodných zástupců celosvětové internetové komunity (Trusted Community Representatives), kteří mají klíče k trezoru, v němž jsou uloženy přístupové údaje k takzvanému „hardware security module“, jehož iniciace je nezbytná k celému procesu podepisování kořenové zóny. Co podpis kořenové zóny znamená a jak taková ceremonie probíhá?
DNS správa internetu internetová komunita ICANN DNSSEC Zone Signing Keys
Protokol DNS je jednou ze zcela zásadních součástí rodiny TCP/IP. V podstatě každé transakci na internetu předchází nějaký dotaz právě pomocí DNS. Princip tohoto protokolu se zdá být relativně jednoduchý. Existují dva základní prvky: autoritativní DNS server a resolver. Autoritativní DNS server uchovává tzv. zónové soubory, což jsou zjednodušeně řečeno záznamy v nějaké konkrétní doméně. Zónový soubor obsahuje celou řadu záznamů, jako třeba IP adresy jednotlivých strojů v doméně, informace o směrování elektronické pošty, DNS servery podřízených domén apod. Úkolem resolveru je naopak ptát se na tyto záznamy. Resolvery mohou být zřetězeny. Operační systém má typicky stub resolver, který obvykle jen zprostředkovává dotazy jednotlivých služeb tím, že je přeposílá po internetu na tzv. cachující resolver.
Tento druhý resolver už obvykle obstarává většinu práce. Např. při dotazu, kde hledat webové stránky www.tate.cz, nejprve kontaktuje servery kořenové zóny, najde správce domény cz a u něj zjistí, kdo spravuje doménu tate.cz.
Teprve zde se ukáže, že pro příslušný obsah se musí propojit s webovým serverem s IPv6 adresou 2a01:430:13::231. Celou tuto anabázi si pochopitelně zapamatuje (uloží do cache, aby při stejném dotazu odpověděl bez dalšího ptaní. U obdobného problému, např. kde hledat www2.tate.cz, již pouze pošle dotaz autoritativnímu DNS serveru spravujícímu doménu tate.cz a už zbytečně neotravuje nadřízené zóny. V praxi ovšem může být tento systém mnohem komplikovanější, resolverů může být zřetězeno více, což znesnadňuje a znepřehledňuje celou problematiku.
Tak jako u většiny protokolů rodiny TCP/IP se ani u DNS od začátku příliš nemyslelo na privátnost či bezpečnost. Na rozdíl od protokolů HTTP, IMAP, TELNET, u nichž se poměrně rychle zavedly kryptografii podporující obdoby, klíčový protokol DNS byl v tomto poněkud zanedbáván. Velmi bolestně se to projevilo v roce 2008, kdy bezpečnostní analytik Dan Kaminsky objevil zranitelnost, jež umožňovala útok typu cache poisoning, tedy podvrhnutí DNS záznamů resolveru. Tím se dala přesměrovat libovolná stránka, e-mail apod. Takto by bylo možné napadnout proces vydávání SSL certifikátů, který, s čestnou výjimkou EV certifikátů, často spoléhá na správně fungující protokol DNS.
Naštěstí se poměrně rychle objevilo řešení, jež dokázalo pravděpodobnost útoku velmi významně snížit. Ale tato událost byla jedním z hlavních impulzů pro širší adopci technologie zvané DNSSEC. Tato technologie přidává DNS protokolu možnost kryptograficky podepisovat DNS záznamy, a tím zcela zamezit útokům typu cache poisoning. Funguje to tak, že pro každou DNS zónu je vygenerováno několik kryptografických klíčů rozdělených do dvou skupin. Klíče první skupiny se jmenují Key Signing Keys (KSK) a jsou obvykle použity pouze k podpisu druhé skupiny klíčů – Zone Signing Keys (ZSK). Tyto klíče, jak je již z názvu patrné, podepisují jednotlivé záznamy v zóně. Veřejné části KSK by měly být propagovány do nadřazené zóny, aby bylo možné kryptograficky ověřit celý strom a uzavřít řetěz důvěry (chain of trust).
K tomu, aby byla technologie plně funkční, je potřeba splnit několik důležitých předpokladů:
1. Musejí být podepsány záznamy o jednotlivých uzlech.
2. Musejí být podepsány všechny nadřazené stupně DNS, domény nejvyšší úrovně (TLD) a především kořenová zóna.
3. DNS resolvery u jednotlivých poskytovatelů musejí tuto technologii podporovat a být nakonfigurované, aby záznamy ověřovaly.
4. Musí existovat tzv. Trust Anchor (TA), tedy nějaký klíč, jenž je staticky uložen v DNS resolverech a podepisuje záznamy o ostatních klíčích. Je to vstupní bod pro vytvoření řetězce důvěry.
První TLD, ve které byl zaveden DNSSEC, byla doména Švédska. Stalo se to již v roce 2005. Vzhledem ke svému prvenství byla neexistence TA vyřešena tak, že (povětšinou švédští) provozovatelé sítí prostě staticky přidali veřejnou část podpisového klíče (KSK) do konfigurace svých resolverů, a tím byl celý řetězec důvěry uzavřen. Poměrně rychle ovšem přibyly další domény s podporou DNSSEC – v roce 2006 to byla doména Portorika, v roce 2007 domény Bulharska a Brazílie a v roce 2008 i doména České republiky. Část tuzemských operátorů se stejně jako ti švédští rozhodla podporovat DNSSEC, prostě jen zařadila „český klíč“ do konfigurace svého resolveru jako jediný TA a existenci ostatních ignorovala. Nicméně již v té době existovalo řešení, jmenovalo se DLV (DNSSEC Lookaside Validation), což byl v podstatě repositář známých TLD klíčů a resolvery se při své činnosti dotazovaly na existenci jednotlivých klíčů v tomto repositáři. Asi nejznámější DLV provozovala firma ISC (Internet Systems Cosortium), což je společnost vyvíjející jednu z nejoblíbenějších DNS implementací BIND. Dlužno podotknout, že toto řešení nebylo technicky ani z hlediska důvěry optimální. A proto neustále sílil tlak na zprovoznění toho nejpřirozenějšího TA, tedy podepsané kořenové zóny.
Práce na podpisu kořenové zóny postupovaly (alespoň na poměry organizace ICANN) velice rychle. Jako zásadní se jevila otázka toho, kdo bude držet klíč nejvyšší úrovně, tedy kdo a jak podepíše kořenovou zónu. Je třeba si uvědomit, že kořenová zóna je jednou z mála databází, ve které mají záznamy prakticky všechny státy a teritoria světa, tedy třeba USA, Severní Korea, Rusko, Palestina, Izrael apod. Otázka držení klíčů od kořenové zóny se jevila jako vysoce politická a jen více vířila diskuse o tom, kdo má spravovat Internet. Správci kořenové zóny, tedy IANA/ICANN, a jejich tehdy v podstatě dohledový orgán DoC/NTIA (United States Department of Commerce, National Telecommunications and Information Administration) tedy museli hledat řešení, které optimálně zohlední celou řadu požadavků, jež šly (jak to již u bezpečnosti velice často bývá) proti sobě. Šlo především o:
- transparentnost – bylo zřejmé, že celý proces musí být co nejotevřenější a kontrolovatelný všemi stakeholdery,
- důvěryhodnost – proces musí být zcela důvěryhodný pro celý svět, klíčové je, aby důvěřovali všichni provozovatelé DNS resolverů, tedy i zemích, které jinak nemají přílišnou důvěru v instituce Spojených států,
- bezpečnost a důvěrnost – je naprosto klíčové, aby tajná část klíče za žádných okolností neunikla a nikdo nemohl syntetizovat uměle podepsané DNS záznamy,
- robustnost – systém musí být schopný fungovat i v případě velkých politických či přírodních turbulencí (toto jsme si vyzkoušeli v době pandemie COVID- 19, kdy bylo prakticky nemožné cestovat), dále je nutné, aby existovalo záložní řešení pro případ, že to hlavní z nějakého důvodu selže,
- zapojení široké mezinárodní komunity – participace lidí z celého světa včetně zástupců zemí, které nemají pozitivní názor na současný model správy internetu, jen pochopitelně zvyšuje důvěryhodnost celého procesu.
Na stole bylo několik návrhů. Poměrně významná diskuse se strhla o rozdělení rolí u klíčů KSK a ZSK. Nakonec zvítězil model, který zapojuje ICANN jako správce KSK a společnost Verisig spravující ZSK. Bylo rozhodnuto, že správa KSK bude probíhat na dvou geograficky vzdálených místech, konkrétně na západním pobřeží USA v městečku El Segundo, což je prakticky součást kalifornské metropole Los Angeles, a na východním pobřeží USA v městečku Culpeper ve Virginii nedaleko od hlavního města Washingtonu, DC.
Aby byl vyrovnán tento mírný geografický deficit, kdy jsou obě podepisovací místa na území Spojených států, bylo též rozhodnuto, že s každou lokalitou bude spojených sedm zástupců mezinárodní komunity, kteří budou tzv. držitelé klíčů, ovšem správně terminologicky se nazývají Cryptographic Officers (CO). Pro zvýšení robustnosti řešení byl ještě ustaven tým tzv. držitelů záložních klíčů (správně Recovery Key Share Holders – RKSH). I tento tým se skládá ze sedmi lidí. Tento záložní tým by se dostal do hry, pokud by selhaly oba podepisovací týmy. Zatím k takové situaci nedošlo a všichni pochopitelné doufáme, že k ní ani nedojde. Lidé v těchto dvou typech týmů jsou označováni jako důvěryhodní zástupci komunity (Trusted Community Representatives – TCRs) a celkem jich je 21.
Národnosti těchto zástupců jsou poměrně pestré: Tanzanie, Rusko, Portugalsko, Brazílie, Česká republika, Spojené státy, Švédsko, Island, Srí Lanka, Uruguay, Mauricius, Nepál, Burkina Faso, Dánsko, Kanada, Trinidad a Tobago a Čína. Jak jste si jistě povšimli, vyjmenovaných států je pouze 18, což je způsobeno tím, že tři státy mají po dvou zástupcích. Jde o Spojené státy, Brazílii a pro mnohé možná překvapivě i Českou republiku. Konkrétně jde o dva Ondřeje – autora toho příspěvku Ondřeje Filipa v roli CO na východním pobřeží a Ondřeje Surého v roli RKSH. Tento stav se dá přičíst především značné aktivitě sdružení CZ.NIC, správce národní domény, právě na poli implementace a zavádění technologie DNSSEC. Jelikož je zástupce komunity vhodné či nutné (bohužel již došlo k úmrtí jednoho CO) občas obměnit, existuje i seznam záložních zástupců komunity (Backup TCRs), což jsou lidé, kteří v budoucnu nahradí někoho z těchto týmů. V minulosti již bylo takto nahrazeno 14 TCRs.
Vlastní podepisovací ceremonie jsou organizovány přibližně každý čtvrtrok a pravidelně se střídají obě pobřeží. Hlavním účelem ceremonie je vlastně podepsat ZSK na budoucí období, které má pokrýt následující čtvrtrok. Vždy je to časováno tak, aby při případném neúspěchu nějaké ceremonie byl ještě čas na nápravu. Pro uspořádání ceremonie je vždy nutné, aby byli přítomni alespoň tři CO z dané lokality. Při ceremonii je přítomna celá řada dalších lidí, kteří zajišťují její chod či audit, a vše je on-line přenášeno a zaznamenáváno několika kamerami, aby mohl průběh sledovat kdokoli, kdo má zájem. Kromě CO (a občas RKSH, např. v případě rotace) jsou ceremonii přítomni:
- Ceremony administrator (CA) – řídí celou ceremonii, dle scénáře (script).
- Internal Witness (IW) – kontroluje, zda CA dodržuje scénář a zaznamenává případné odchylky.
- Safe Security Controllers (SSCs) – lidé, kteří odemykají dva sejfy, první sejf obsahuje potřebný hardware včetně HSM a druhý schránky s kartami jednotlivých CO.
- Root KSK Operations Security (RKOS) – lidé kteří ceremonii plánují, jsou k dispozici pro doplnění v případě nejasností, starají se o doprovod CO.
- System Administrator (SA) – stará se o audio/video přenos a je schopen řešit případné technické problémy.
- Third-party auditor (AUD) – zástupce společnosti, jež celý proces audituje.
- Root zone maintainer (RZM) – zástupce společnosti, která spravuje kořenovou zónu (Verisign).
- Staff witness (SW),
- External witness (EW) – občas bývají přítomni i zástupci ICANN či PTI, případně další zástupci komunity, obzvláště první ceremonie mívaly více EW, aby byly odstraněny jakékoli pochybnosti (autor tohoto článku byl např. přizván jako EW na ceremonii číslo 2, která probíhala na západním pobřeží).
Ceremonie začíná vstupem do místnosti. Ty jsou umístěny ve velmi dobře zabezpečených telehousech a po kontrole identity u vstupu do budovy jsou CO a ostatní účastníci eskortováni do místnosti. Nejprve se vstupuje do předsálí, RKOS musí prokázat svou identitu pomocí otisku prstu a skenu rohovky. V předsálí je pak nutné obvykle chvíli vyčkat, protože zámek druhých dveří se otevře až určitý čas poté, co se zavře zámek vstupních dveří. V tomto mezičase se vyplňuje vstupní deník. Pak jsou již všichni vpuštěni do místnosti, zapínají se kamery a vše běží podle připraveného scénáře. V místnosti je ještě jedna zabezpečená klec, ve které jsou dva sejfy.
Přístup do této klece a sejfů se liší podle přiřazených rolí. Scénář ceremonie bývá vždy poněkud odlišný v závislosti na krocích, které je nutné učinit. Někdy se mění karty s kryptomateriálem, někdy HSM, jindy dochází k rotaci TCR apod. Je to poměrně podrobný popis jednotlivých kroků ceremonie, mívá desítky stránek. Nicméně všechny ceremonie obsahují některé základní kroky. Obvykle první SSC s pomocí CA otevřou sejf a umožní jednotlivým CO přístup do svých schránek. Klíč od konkrétní schránky má pouze jeden CO a z těchto schránek vyjme chipové karty, které zde byly uskladněny při předchozí ceremonii. Úplně každá uskladněná věc (tedy nejen chipové karty, ale i další vybavení) je uzavřena v tzv. Temper Evident Bag (TEB), což je sáček, který lze otevřít pouze roztržením, má své unikátní číslo a je podepsán příslušnou odpovědnou osobou (v případě chipových karet jde o CO). Tento kód je kontrolován proti zápisu z minulé ceremonie. Dále je otevřen druhý sejf a jsou vyskladněny podpůrné věci pro ceremonii. Jde hlavně o řídící laptop a HSM, bootovací CD se softwarem. Všechno je vyskládáno na kamerami pečlivě sledovaný stůl.
Po zapojení celého systému jsou postupně karty jednotlivých CO vkládány do HSM, čímž dojde k aktivaci podepisovacího klíče. Poté je vložen flash disk s žádostmi o podpis KSK na budoucí období a po nezbytných a rozsáhlých kontrolách jsou tyto žádosti podepsány. Po tomto hlavním bodě jsou opět všechny součásti postupně odpojeny a uloženy zpět do sejfů. Ačkoli to vypadá poměrně jednoduše, při dodržení všech správných kontrol a procedur trvají i ty nejjednodušší ceremonie nejméně dvě a půl hodiny čistého času, ke kterému je třeba připočíst vstupní a výstupní procedury. Pokud dochází k výměně HW (a hlavně k zábavné pasáži ničení starého) a třeba k rotaci CO nebo se generuje nový podepisovací klíč, může být délka vlastní ceremonie téměř šest hodin.
Lze tedy pochopitelně namítnout, že celá procedura je poměrně komplikovaná, a tím pádem i drahá. Náklady na dvě dedikované místnosti v zabezpečených telehousech a cestování mnoha lidí z celého světa jsou značné. Na druhou stranu je třeba si uvědomit, že jde o kredibilitu procesu podepisování nejdůležitější domény celého internetu a zde je jistě určitá míra robustnosti namístě.
Samozřejmě neustále probíhá diskuse o tom, jak by se měl systém podepisování kořenové zóny vyvíjet. Závislost na cestování lidí se ukázala ve světle globální pandemie jako určitá slabina. Stejně tak se neustále diskutuje o přidání dalšího podepisovacího místa mimo Spojené státy. Nicméně to hlavní se povedlo. Máme robustní a důvěryhodnou proceduru, jež je klíčová pro zabezpečení jednoho z nejdůležitějších stavebních prvků současného internetu – protokolu DNS, a které důvěřují uživatelé napříč planetou.