Počet podepsaných domén utěšeně stoupá. Z významných domén všeobecného významu je už podepsána skoro celá doména arpa, zatím s výjimkou nejvýznamnější poddomény in-addr.arpa. Pro ni už ovšem existuje plán – k podpisu by mělo dojít během letošního roku, současně s převodem na jiné servery.
Největší pozornost se samozřejmě upírá ke kořenové doméně, která má sloužit jako výchozí bod pro veškeré ověřování. Rychlost jejího podepisování připomíná pohyb kontinentů, ale konečně spěje ke šťastnému vyvrcholení. Nechme stranou politické handrkování na téma „Kdo bude držet Klíč k Internetu?“ a podívejme se na stránku technickou.
Celý proces byl spuštěn letos v lednu, kdy začaly být digitální podpisy postupně vkládány na jednotlivé kořenové servery. Vše za pečlivého pozorování, měření a odběrů ranní moči zúčastněných serverů i jejich správců. Tato fáze skončila shodou okolností právě minulý týden, konkrétně 5. května, kdy byl „podepsán“ poslední z kořenových serverů.
Ovšem představení ještě neskončilo, protože stávající podpisy jsou úmyslně falešné. Zatím se sleduje, co udělá s chováním DNS samotná přítomnost podpisového materiálu. Statistiky ukazují, že se zvýšila teplota TCP dotazů, ovšem zůstává na úrovni desetin procenta celkového DNS provozu, jehož drtivá většina probíhá pro UDP. Pokud se v nejbližší době neodehraje opravdu ošklivý průšvih, dočkáme se 1. července vystavení skutečných klíčů a opravdového podpisu kořenové domény.
Ruku v ruce s postupným šířením DNSSEC kráčí i vývoj softwarových prostředků. Klíčový je samozřejmě server BIND, vládce DNS infrastruktury. Starý pes se tentokrát naučil několika novým kouskům.
BIND 9.7
Joao Damas jeho poslední verzi 9.7 označil za DNSSEC pro lidi, a měl pravdu. Syntaxe příkazů pro generování klíčů a podepisování zónových souborů se výrazně zjednodušila. Původní možnosti sice zůstaly, ale byly doplněny rozumným implicitním chováním. Pokud nepotřebujete něco speciálního, můžete strašlivé parametry vynechat.
Asi nejmarkantnější je rozdíl při vlastním podpisu. Není třeba do zónového souboru vkládat záznamy s veřejnými klíči, ani zadávat kryptografické algoritmy na příkazovém řádku. Stačí prosté
dnssec-signzone -S
zóna
Volba -S znamená „smart“ a při jejím použití si program najde odpovídající klíče, vloží jejich veřejné verze, zvolí kryptografické postupy do souboru a vše opatří DNSSEC záznamy. Není bohužel až tak smart, aby použil NSEC3, když byl klíč pro něj vytvořen, musíte mu napovědět volbou -3. Snad ve verzi 9.8 ještě o chlup zmoudří.
Rozhodně ale potěší jeho inteligentní zacházení s klíči. Jejich interní formát byl rozšířen o časové údaje ohledně platnosti. Každému klíči lze určit až pět časů: kdy bude publikován v DNS (parametr -P), kdy se jím začne podepisovat (-A), kdy bude označen jako revokovaný (-R), kdy se jím přestane podepisovat (-I) a kdy bude odstraněn z DNS (-D). Parametry lze použít při vytváření klíče příkazem dnssec-keygen nebo později nastavit specializovaným příkazem dnssec-settime. Jejich vliv ilustruje následující obrázek:

časové parametry klíče
Podepisování v chytrém režimu si samo najde všechny klíče pro danou doménu, vloží do zónového souboru ty, které tam patří (aktuální čas je mezi jejich publikací a odstraněním), a všemi aktivními (mezi aktivací a odvoláním) podepíše záznamy. V principu si tedy můžete vygenerovat klíče třeba na deset let dopředu a nechat na dnssec-signzone jejich postupné střídání.
Pokud používáte BIND, popsané změny vám nasazení DNSSEC významně ulehčí. Ale co když ne? Řada sítí, zejména těch větších, navíc provozuje různé sofistikované systémy pro registraci připojených zařízení. Konfigurace pro DNS (a DHCP a případné další služby) jsou v nich generovány strojově a případné přizpůsobení pro DNSSEC může připomínat stavbu plachetnice v láhvi od rumu. Ovšem i pro takové případy už je k mání řešení. Jmenuje se…
OpenDNSSEC
Tento volně dostupný program zajišťuje strojovou autogramiádu. V konfiguračním souboru mu definujete politiky pro podepisování – jaké algoritmy hodláte používat, jaká má být životnost klíčů a podobně. Jakmile jsou připraveny, stačí mu jen podstrkovat nepodepsané domény a OpenDNSSEC se o vše postará: generuje a spravuje si potřebné klíče (včetně toho, že době životnosti lze nastavit určitý náhodný rozptyl, aby nedocházelo k hromadnému vypršení řady klíčů současně), podepisuje jimi domény a dává k dispozici podepsané zónové soubory.
Program není úplně samostatný. Musí mít k ruce HSM (Hardware Security Module) pro uchovávání klíčů a provádění kryptografických operací. Pro běžné nároky rozhodně vystačí jeho otevřená softwarová emulace SoftHSM, která je vyvíjena společně, ovšem distribuována odděleně. Lze ji získat na webu OpenDNSSEC.
OpenDNSSEC není DNS serverem. Doménová data k podepsání musí dostat v podobě zónového souboru (pro příští verze se chystá i podpora databází). Pokud pracuje na stejném stroji jako zdroj nepodepsaných dat (např. registrační systém), může si jej převzít přímo z odpovídajícího adresáře. V opačném případě je schopen získat zónová data pomocí DNS – jeho součástí je zonefetch, který se o to postará.
Pokud chcete „výrobu“ svého DNS měnit co nejméně, lze OpenDNSSEC nasadit poměrně bezbolestně následujícím způsobem:

schéma nasazení OpenDNSSEC
Server, kde vznikají doménová data, skryjete a neuvedete v NS záznamech dané domény. Nastavíte na něm, aby při změně některé z domén poslal upozornění OpenDNSSECu. Ten si stáhne aktuální verzi zónového souboru, a vytvoří její podepsanou verzi. Vyzve DNS server běžící na jeho stroji (sám tyto funkce neumí, potřebuje proto lokální DNS server, aby data nabízel dál) k načtení nové verze podepsané zóny. Ten na ni následně upozorní veřejné autoritativní servery a podepsaná data jsou vystavena do světa.
Popsaný způsob je samozřejmě poměrně krkolomný, ale dokáže doplnit podpisy i k velmi nestandardně vytvářeným zónám. Přestože je OpenDNSSEC velmi mladý, už se prosadil i do vrcholových domén se a uk. Dá se na něj tedy spolehnout.
Pokud nechcete propásnout cimrmanovsky zapamatovatelný letopočet pro podpis svých domén, neváhejte. Na ještě lepší rok 2020 bych rozhodně nečekal.