Hlavní navigace

DNSSEC a jeho historie

22. 12. 2008
Doba čtení: 4 minuty

Sdílet

V roce 1990 byl internet stále poklidné místo, kde jeho uživatelé žili v poklidu a ve vzájemné harmonii. Nebo ne? V tom samém roce přichází Steven M. Bellovin na zásadní chybu při používání DNS. Vzájemná důvěra mezi počítači byla v té době většinou řešena pouze na základě správného doménového jména v DNS.

V zásadě se nejedná o chybu samotného DNS, ale chybu přílišné důvěry v systém DNS. Publikace této práce byla odložena z bezpečnostních důvodů o celé čtyři roky, ale jak sám autor poznamenává, nebylo to příliš moudré rozhodnutí, protože informace z této práce stejně prosákly na veřejnost a byly zaznamenány útoky, které využívaly tento nadbytek důvěry v doménový systém.

Po zveřejnění tohoto nedostatku se na půdě IETF, což je organizace, která stojí za většinou standardů používaných na internetu, začíná uvažovat nad zabezpečením systému DNS. Mezitím Eugene Kashpureff objevuje další zranitelnost v současných implementacích DNS serverů (tedy v té době především serveru Bind), která umožňuje v DNS podvrhnout libovolný záznam pomocí sekce „Další“. V roce 1997 pak používá tuto chybu k celosvětovému nebo spíše celointernetovému přesměrování stránek registrátora InterNIC na stránky své firmy AlterNIC. Jako ochrana proti tomuto typu útoku byl vymyšlen systém správních oblastí (bailiwick), který definuje, jaká data budou v sekci „Další“ akceptována. Jako následující krok ještě v témže roce vzniká první dokument popisující kryptografické zabezpečení systému DNS – RFC 2065. Tento dokument je pak během dvou dalších let rozpracován a v roce 1999 je v RFC 2535 publikována první verze systému DNSSEC. DNSSEC definuje do systému DNS nové záznamy, které kryptograficky zajišťují integritu dat poskytovanou DNS servery.

První implementace DNSSECu dle RFC 2535 je připravena v DNS serveru Bind, bohužel další dva roky nasazení DNSSECu stagnuje a v roce 2001 je vypracována studie, která konstatuje, že tato první verze systému DNSSEC je nevhodná k nasazení, protože libovolná výměna podepisovacího klíče vyžaduje jednak komplexní komunikaci s nadřazeným DNS serverem a jednak se tato změna musí promítnout na všech podřízených DNS serverech. Tyto požadavky první verzi DNSSEC odsunuly na vedlejší kolej a začíná se pracovat na verzi nové pracovně nazývané DNSSECbis. DNSSECbis definuje úplně nové záznamy, které nejsou kompatibilní s původní verzí DNSSECu a rozšiřuje DNS o nový druh záznamu – DS, který má výrazně zjednodušit komunikaci s nadřazeným serverem. V průběhu let 2002 až 2003 je tato nová verze DNSSECu implementována v DNS serveru Bind a ukazuje se, že je na rozdíl od své předchůdkyně životaschopná. V roce 2004 je podpora DNSSECbis implementována ve dvou nezávislých DNS serverech (Bind a NSD 2.x) a čeká se jen na standardizaci. Ta proběhne až v roce 2005, kdy jsou v březnu vydány dokumenty RFC 4033, RFC 4044 a RFC 4035. V říjnu 2005, tedy jen o pár měsíců později, implementuje DNSSEC první TLD doména – švédská .se. Letos v září 2008 došlo k podpisu české TLD .cz. Více informací DNSSEC v české doméně .cz naleznete na stránkách www.dnssec.cz.

Ani DNSSECbis se ovšem neobešel bez problémů. V návrhu protokolu se počítá s tím, že je zapotřebí mít i kryptograficky ověřené odpovědi o neexistenci určitého záznamu. Protože DNSSEC podepisuje DNS záznamy a odpověď o neexistenci doménového jména, je standardně realizována nastavením návratového kódu RCODE na hodnotu NXDOMAIN (viz. předchozí článek o struktuře DNS zprávy). Z tohoto důvodu vznikl DNS záznam NSEC, který pro určité doménové jméno říká, jaký záznam jej abecedně následuje. V případě dotazu na neexistující záznam DNS server vrátí jména, která jsou „okolo“ a tato odpověď již může být kryptograficky podepsána. Tento princip ovšem otvírá jeden nepříjemný důsledek – tímto způsobem se dá projít celý doménový prostor, jedná se tzv. zone walk. Návrh řešení existuje v dokumentu RFC 5155 schváleném letos na jaře, který definuje nový druh záznamu NSEC3, kde je informace o dalším záznamu ukryta pomocí hashovacího algoritmu. Další zajímavá vlastnost NSEC3 je tzv. Opt-Out, který specifikuje mechanismus, kdy po přidání nezabezpečené delegace, není nutné přepočítávat (a znovu podepsat) celý řetěz NSEC3 záznamů, což zjednodušuje náročnost správy především u velkých domén. NSEC3 je v současné době podporovaný DNS servery NSD 3 v roli autoritativního serveru a Unbound pro rekurzivní použití. DNS server Bind bude podporu NSEC3 obsahovat od verze 9.6, která je momentálně v přípravě a poslední vydaná verze je 9.6rc2. Tato verze Bind bude také obsahovat jednodušší správu podepsaných domén. Od verze 9.7 by pak správa podepsaných domén měla být ještě výrazně jednodušší.

CS24_early

Dnes se píše rok 2008 a pomocí systému DNSSEC je chráněno pouze pět národních domén: .se, .bg, .pr, .br a od letošního září také doména česká .cz. Nicméně jistý posun lze pozorovat i u domén generických – nařízení administrativy Spojených států, které bylo vydáno letos, ukládá správci domény .gov, aby do konce ledna 2009 podepsal doménu, kterou používají vládní úřady a organizace ve Spojených státech. Tento podzim také Národní telekomunikační úřad Spojených států (NTIA) vydal žádost o komentáře k podepsání kořenové zóny. Dokumenty a komentářů si můžete přečíst na webových stránkách www.ntia.doc.gov/DNS/dns­sec.html. Z generických domén je podepsána také doména .museum, ale tento proces proběhl poněkud v tichosti, takže bohužel nelze říci, jestli to byl úmysl nebo omyl. Celkově by se dalo by se říci, že situaci okolo DNSSEC hodně pomohl útok na DNS, který poprvé odhalil bezpečnostní výzkumník Dan Kaminsky. A věci se konečně začaly hýbat.


Autor je technickým ředitelem sdružení CZ.NIC.

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

Autor článku

Autor je vedoucím výzkumu Laboratoří CZ.NIC, z.s.p.o. a studentem FSS MU. Zajímá se o DNS, DNSSEC, Linux.