DNS bezpečnost: jak DNSSEC zajišťuje ochranu proti spoofingu

Význam bezpečnosti DNS pro stabilitu internetu

Domain Name System (DNS) představuje základní pilíř internetu, převádějící doménová jména na IP adresy a jiné síťové zdroje. Původní architektura DNS však neobsahuje mechanismy pro ověřování integrity a autenticity dat, což z něj činí zranitelný systém vůči útokům, jako jsou spoofing či cache poisoning. Zavedení DNS Security Extensions (DNSSEC) přináší řešení v podobě kryptografického podepisování DNS dat a vytvoření důvěryhodného řetězce, který zabezpečuje ověřování pravosti odpovědí. Kompletní ochrana DNS vyžaduje kombinaci DNSSEC s dalšími bezpečnostními opatřeními, jako je randomizace, DNS cookies, omezení fragmentace paketů, Response Rate Limiting (RRL), a šifrované přenosové protokoly DoT/DoH, současně s důslednou provozní politikou.

Hrozby při využívání DNS

DNS spoofing a cache poisoning

  • DNS spoofing: podvržení DNS odpovědí, aby resolver přijal falešná data, například upravené A nebo AAAA záznamy, směrující uživatele na škodlivé servery.
  • Cache poisoning: vkládání nepravdivých záznamů do cache rekurzivního resolveru, což vede k dlouhodobému přesměrování dotazů uživatelů na nesprávné cíle.

Další typy útoků na DNS

  • Off-path útoky: využívají předvídatelnost ID transakce, portů komunikace a fragmentace paketů, aby bez přístupu k provozu mohly injektovat škodlivé odpovědi.
  • On-path útoky (MITM): zasahují do toku dat během přenosu, umožňují modifikaci odpovědí např. v nezabezpečených nebo veřejných sítích.
  • Amplifikační a DoS útoky: zneužívají otevřené recursorové servery a rozsáhlé DNS odpovědi (např. s DNSSEC nebo ANY dotazy) k zahlcení cílových systémů.
  • NXNS a relaying: zneužívání delegace na mnoho jmenných serverů k vyčerpání zdrojů resolveru.
  • DNS rebinding: technika obcházení bezpečnostních pravidel prohlížečů pomocí dynamické změny DNS odpovědí.

Základní principy fungování DNS a důvěryhodnost dat

DNS je hierarchický a distribuovaný systém, kde autoritativní servery spravují konkrétní zóny domén, zatímco rekurzivní resolvery vyhledávají odpovědi a ukládají je do cache. Bez kryptografického ověřování je důvěra v DNS založena na nechráněných přenosech a implicitní důvěře v síť, což v současném globálním prostředí nepředstavuje dostatečnou ochranu. DNSSEC tuto mezeru vyplňuje přidáním digitálních podpisů ke každému Resource Record setu (RRset) a zavedením řetězce důvěry vedoucího od kořenové domény přes TLD až do jednotlivých zón.

DNSSEC – principy, datové záznamy a budování důvěry

  • Podpisy RRSIG: každý RRset, například skupina A nebo AAAA záznamů, obsahuje digitální podpis RRSIG generovaný soukromým klíčem zóny, který umožňuje ověření integrity a autenticity dat.
  • DNSKEY: veřejné klíče, rozdělené na Key Signing Key (KSK) a Zone Signing Key (ZSK), publikované v DNS pro ověření podpisů.
  • DS záznam: propojuje veřejný klíč KSK zóny s nadřazenou zónou (např. TLD), čímž vytváří řetězec důvěry parent → child.
  • NSEC a NSEC3: poskytují kryptografické důkazy neexistence jména či typu. NSEC3 s parametry salt a opt-out omezuje možnost enumerace zóny.
  • CDS a CDNSKEY: automatizují publikaci a rotaci DS záznamů u registrů, usnadňují správu řetězce důvěry.

Výběr algoritmů a velikostí klíčů v DNSSEC

  • RSA (RSASHA256, alg. 8): tradičně široce používaný algoritmus, avšak s většími podpisy; doporučuje se délka klíče 2048 bitů pro ZSK a 2048–3072 bitů pro KSK pro dostatečnou bezpečnost.
  • Moderní křivky (ECDSA P-256 a Ed25519): poskytují kratší podpisy, rychlejší validaci a snižují fragmentaci DNS odpovědí; jejich použití je ideální pro efektivní a bezpečné nasazení.
  • Pro optimalizaci šířky pásma a snížení rizik fragmentace doporučujeme preferovat ECDSA a Ed25519.

Mechanismus podepisování zón a správa klíčů

  • Role KSK a ZSK: ZSK slouží k podepisování běžných RRsetů v zóně, zatímco KSK podepisuje sadu DNSKEY, čímž potvrzuje jejich platnost v rámci zóny.
  • Rotace klíčů: pravidelná výměna klíčů je nezbytná pro zachování bezpečnosti – doporučená periodicita je 6–12 měsíců u ZSK a 1–2 roky u KSK; přechod mezi starými a novými klíči je řízen pomocí kroků prepublikace, podpisu, aktualizace DS a odstranění starých klíčů.
  • Bezpečnostní úschova klíčů: privátní klíče by měly být bezpečně uloženy v hardwarových bezpečnostních modulech (HSM) s omezeným přístupem a auditními protokoly.
  • Automatizace: realizujte automatizovanou rotaci DS pomocí CDS/CDNSKEY záznamů a zajišťujte bezvýpadkové aktualizace u registrátorů.

Validující DNS resolvery a jejich nastavení

  • Trust anchor (kořenový klíč): validující resolver musí pravidelně aktualizovat root KSK, který tvoří základ řetězce důvěry, a udržovat jej aktuální.
  • Stavy validace odpovědí: odpovědi jsou klasifikovány jako Secure (platné), Insecure (nezabezpečené), Bogus (neplatné) nebo Indeterminate (neurčité); Bogus odpovědi by měly být vždy odmítnuty.
  • Optimalizace s NSEC: validátory mohou aktivně syntetizovat negativní odpovědi z NSEC/NSEC3 záznamů, čímž snižují zatížení autoritativních serverů a zlepšují odezvu.

Ochranná opatření mimo DNSSEC proti spoofingu

  • Randomizace ID a portu: zvýšení entropie v dotazech (16bit ID + náhodný 16bit port) snižuje pravděpodobnost úspěšných útoků typu off-path injection.
  • 0x20 case randomization: zachování náhodné kombinace velikosti písmen v dotazu přidává dodatečnou vrstvu entropie, je-li vhodná a bezpečná.
  • DNS Cookies: transakční cookies dle RFC 7873 a 9018 umožňují odlišit legitimní klientské dotazy od útoků a pomáhají v mitigaci spoofingu.
  • QNAME minimization: strategické omezování informací v DNS dotazech zvyšuje soukromí a zároveň snižuje možnost zneužití systému.
  • NXDOMAIN cut a serve-stale: zlepšují zacházení s negativní cache a udržují dostupnost DNS služeb během výpadků nebo nestabilit.

EDNS(0), velikost DNS odpovědí a fragmentace paketů

Vzhledem k rozšíření DNSSEC rostou velikosti DNS odpovědí obsahujících RRSIG a DNSKEY, což zvyšuje riziko IP fragmentace a zranitelnosti vůči injekčním útokům. Doporučená opatření zahrnují:

  • Omezení velikosti EDNS bufferu například na 1232 bajtů a preferenci TCP spojení v případě velkých odpovědí.
  • Preferovat algoritmy generující kratší podpisy, jako jsou ECDSA a Ed25519, aby se minimalizovalo riziko fragmentace.
  • Zapnout minimalizaci odpovědí a vyhýbat se dotazům typu ANY, které mohou vést ke zbytečně velkým přenosům.

Správná konfigurace a publikace autoritativních zón

  • Signování zóny: aplikujte kontinuální inline signing, pečlivě spravujte expiraci RRSIG s vhodnými hodnotami TTL a jitterem pro spolehlivost.
  • Publikace DS záznamů: po nasazení nebo rotaci KSK zajistěte včasné a správné nahrání DS u registru, aby byl řetězec důvěry neporušený.
  • NSEC versus NSEC3: pro veřejné a velké zóny se obvykle doporučuje NSEC3 s parametry salt pro ochranu před enumerací, zatímco menší nebo neveřejné zóny mohou využívat jednodušší NSEC.
  • Anycast: distribuujte autoritativní DNS servery pomocí anycastu ke zvýšení odolnosti vůči DoS útokům a ke snížení latence pro uživatele.
  • Bezpečnost aktualizací: využívejte TSIG pro zabezpečení přenosů AXFR/IXFR a dynamických aktualizací, aplikujte přístupové seznamy (ACL) a techniky split-horizon, pokud jsou vyžadovány.

Bezpečné nasazení rekurzivních resolverů

  • Omezení otevřené rekursivity: rekurze by měla být omezena na interní IP adresy a neměla by být veřejně dostupná, aby se zabránilo zneužití pro amplifikační a cache poisoning útoky.
  • Zapojte bezpečnostní prvky jako DNSSEC validaci, QNAME minimization, DNS Cookies a Response Rate Limiting (RRL), nastavte přiměřené limity současných dotazů pro stabilitu provozu.
  • Optimalizujte TTL hodnoty a negativní cache podle RFC 2308, vyvarujte se příliš dlouhých TTL, které by mohly ztížit rychlé reakce na změny a rotaci klíčů.
  • Implementujte monitoring metrik jako je míra výskytu Bogus odpovědí, četnost velkých DNS odpovědí, chybovost a latence komunikace s TLD a root servery.

Efektivní nasazení DNSSEC vyžaduje nejen technickou správnost konfigurace, ale i kontinuální monitoring a údržbu systému. Pouze tak lze zajistit dlouhodobou integritu a důvěryhodnost DNS infrastruktury, minimalizovat bezpečnostní rizika a ochránit uživatele před spoofingem či jinými útoky.

Při zavádění DNSSEC by organizace měly také dbát na školení pracovníků a pravidelnou revizi bezpečnostních postupů, aby reagovaly na nové hrozby a technologie v oblasti kybernetické bezpečnosti.