Co je a jak funguje DNSSEC

[gtranslate]

Co je technologie DNSSEC, jak funguje, jaké bezpečnostní problémy řeší a co naopak neřeší, jaké jsou její výhody a nevýhody. A je DNSSEC opravdu tak dokonalý jak jej někteří prezentují?

Bezpečnost protokolu DNS

Protokol DNS, stejně jako všechny ostatní protokoly rodiny TCP/IP, byl v rané době Internetu navržen tak, aby byl velmi jednoduchý a rychlý. Nebylo do těchto protokolů zahrnuto téměř žádné zabezpečení, protože tou dobou nebylo potřeba. Internet používal jen malý okruh lidí, kteří se navzájem znali a důvěřovali si. Podstatná byla jednoduchost, rychlost a efektivita na tehdy výrazně pomalejších linkách a méně výkonných počítačích. To si s sebou tyto protokoly nesou dodnes, kdy je však celosvětová síť plná lidí, kteří se snaží škodit, ať je to z osobních, finančních, politických či jiných důvodů.

V praxi to znamená, že např. existují způsoby, jak může útočník při dotazu na překlad doménového názvu podstrčit falešnou IP adresu a tím svou oběť nasměrovat na podvodný server. A tak přestože je URL adresa v prohlížeči zadána korektně, uživatel se ocitne na cizích stránkách. To je základ pro úspěšný phishing. To je však jen jeden z mnoha příkladů, jak lze nezabezpečeného DNS využít.

Různým variantám podvržení údajů v DNS se říká DNS spoofing a DNS cache poisoning.

Podstata problému spočívá v tom, že když se od DNS serveru na základě vašeho požadavku na doménový název dozvíte jakousi IP adresu, nemáte žádnou možnost si ověřit, zda je opravdu správná a zda někdo něco cestou k vám nepozměnil.

Co je DNSSEC

DNSSEC je technologie využívající elektronického podpisu k ověřování původu dat v DNS záznamech. To znamená, že uživatel je schopen si pravost dat získaných z DNS systému ověřit a tím případně odhalit podvrh.

DNSSEC neprovádí šifrování přenášených dat – data se přenáší stále stejným nezabezpečeným způsobem, ale využívá se asymetrické kryptografie pro vytváření elektronických podpisů DNS záznamů. Tyto podpisy a související data jsou ukládána opět ve formě DNS záznamů. DNSSEC zavádí pro tyto potřeby několik nových druhů záznamů. Některé obsahují elektronický podpis stávajících záznamů, jiné nesou informace pro ověření neexistence záznamů, které v zóně domény nejsou.

DNSSEC je rozšíření stávajícího DNS systému, nikoliv jeho náhrada. Vše tedy funguje stejně jako dříve, jen vzniklo navíc několik nových druhů záznamů. Záleží na klientovi, zda novým druhům záznamům rozumí, zda je využije a zda provede ověření či nikoliv. Klient, který DNSSEC nezná, akceptuje požadované záznamy, nové typy záznamů ignoruje a neprovádí žádnou kontrolu. Modernější klient však použije nové záznamy k ověření těch ostatních a data získaná ze serveru akceptuje pouze v případě, že všechny elektronické podpisy sedí. Z toho vyplývá, že nestačí, aby DNSSEC ovládaly DNS servery, ale musí se aktivně účastnit i klienti. Tedy aby byl celý DNS systém naprosto odolný proti útokům, kterým DNSSEC umí zabránit, musí DNSSEC rozumět a používat všechny DNS servery i klienti. Cachovací DNS servery samozřejmě také musí uchovávat a předávat dál i příslušné DNSSEC záznamy.

Ještě je potřeba upřesnit, co se zde myslí pojmem „klient“. Kontrola získávaných záznamů z DNS může probíhat na několika úrovních. Kontrolu záznamů a jejich podpisů může provádět přímo koncový počítač. Může to však dělat také cachovací DNS server organizace, kterému počítače uvnitř firemní sítě důvěřují, přebírají od něj DNS záznamy a již neprovádí jejich kontrolu, díky tomu nejsou zatíženy ověřováním podpisů. Podobně to může dělat cachovací DNS server poskytovatele připojení, který na počítače svých zákazníků nepropustí nedůvěryhodná data.

Co DNSSEC řeší

  • ověření původu získaných DNS záznamů (kontrolou elektronického podpisu)
  • získání důkazu o neexistenci nějakého doménového jména nebo nějakého jejího záznamu

Co naopak DNSSEC neřeší

  • útoky na DNS systém klienta, tedy podvržení údajů na klientském počítači (aplikace nad operačním systémem s DNSSEC již nepracují)
  • zabezpečení přenosových cest protokolu DNS – vše nadále putuje otevřeně a veřejně, DNS dotazy se mohou odposlouchávat (a lze takto zjišťovat, co kterého klienta zajímá a kde „surfuje“)
  • omezení přístupu k záznamům domény, autentizaci klientů
  • útoky na DNS servery za účelem jejich odstavení, vhodný DDoS útok příslušný autoritativní DNS server odřízne od světa a k záznamům domény se v tu dobu nikdo nedostane
  • podvodné přesměrování či podobný útok na úrovni IP adres – z DNS systému se sice bezpečně dozvíte správnou IP adresu, na kterou se potřebujete spojit, ale DNSSEC nezabrání tomu, aby vás při následné komunikaci s cílem “man-in-the-middle“ nenasměroval jinam

Ale jsou tu také nějaká ale…

Pozor na kampaně některých institucí, které celý svět přesvědčují o tom, že DNSSEC je dokonalá technologie, bez které se nedá žít a bez jejího zavedení se přestane Země točit kolem Slunce (občas z toho skutečně máme takový pocit). Žádná dokonalá technologie neexistuje a i DNSSEC s sebou nese mnoho komplikací a problémů.

  1. Zavedení DNSSEC znamená přidání mnoha dalších objemných DNS záznamů. Velikost zónového souboru domény vzroste několikanásobně (cca 4x). To znamená větší nároky na úložný prostor a větší datové přenosy.
     
  2. Vyšší nároky na výpočetní výkon – DNS servery i klienti musí navíc pracovat s elektronickými podpisy (vytvářet je, ověřovat jejich platnost). To si vyžádá nemalý nárůst zatížení CPU. A někteří provozovatelé DNS serverů se netají tím, že budou muset kvůli tomu pořídit novější hardware.
     
  3. Větší náchylnost k poruchám – zavedení DNSSEC na DNS serveru vyžaduje větší odborné znalosti administrátorů a programátorů, kteří musí tuto technologii implementovat a spravovat. Jednoduchou lidskou chybou (zapomenutí na nutnost výměny klíčů, chyba v programu) může snadno dojít k zneplatnění elektronických podpisů, takže přestože DNS záznamy jsou v pořádku a nikdo je nepodvrhnul, budou považovány za neplatné, a tedy doména nebude fungovat. 
     
  4. Složitější diagnostika problémů – čím složitější technologie, tím komplikovanější hledání příčin problémů

Takže se klidně může stát, že zavedením DNSSEC bude docházet k více problémům a nedostupnostem domén než kolik problémů způsobí případní útočníci při nepoužití této technologie.

Alternativy k DNSSEC

Dále je potřeba si dát pozor na tvrzení, že DNSSEC je jediná technologie, která dokáže ochránit proti podvržení údajů v DNS. Není to pravda. Např. SSL (Secure Socket Layer) zde existuje již velmi dávno a dokáže to samé včetně ochrany proti přesměrování komunikace na cizí server (protože jen ten pravý server je schopen prokázat se příslušným soukromým klíčem). A jako bonus celou komunikaci mezi koncovým klientem a serverem zašifruje, takže ani nelze nic odposlechnout. Například HTTPS – zabezpečená komunikace přes HTTP protokol.

Na druhou stranu je pravda, že SSL nedokáže zajistit důkaz o neexistenci nějaké domény či DNS záznamu. To zvládne jen DNSSEC.

My a DNSSEC

Technologii DNSSEC nyní nabízíme v testovacím provozu u .CZ domén. Časem ji nabídneme i u dalších. Nebudeme ji však zákazníkům vnucovat. Kdo má zájem si ji aktivovat, má možnost. Nechystáme se ji automaticky zapínat u všech domén všech našich zákazníků, alespoň prozatím. Je potřeba tuto technologii nechat trochu uzrát a vychytat případné nedostatky.

Je nutné říci, že pro koncové uživatele a naše zákazníky se s DNSSEC nic nemění. O vše se postaráme my, zákazníci nemusí dělat nic navíc ani nemusí této technologii podrobně rozumět. Pro ně je vše transparentní.

Do naší znalostní báze časem doplníme podrobnější technické informace o DNSSEC.