DNSSEC: prečo podpisovať DNS a ako ho zapnúť pre doménu

Reťaz dôvery DNSSEC od koreňa cez .sk po example.sk s kľúčmi DS, KSK, ZSK a podpismi RRSIG
Grafika: WWWN (vlastné dielo)



DNS je telefónny zoznam internetu. Má však starú slabinu: resolver prijme odpoveď bez toho, aby overil, že pochádza od správneho servera. Útočník, ktorý dokáže podstrčiť falošnú odpoveď, môže návštevníkov presmerovať na svoj server. DNSSEC to rieši digitálnymi podpismi.

Podpisy namiesto šifrovania

DNSSEC pridáva k bežným DNS záznamom kryptografické podpisy. Podľa Cloudflare tak možno overiť, že záznam pochádza z autoritatívneho menného servera a cestou ho nikto nezmenil. Na to slúžia nové typy záznamov:

  • RRSIG – podpis skupiny záznamov rovnakého typu (RRset),
  • DNSKEY – verejný kľúč na overenie podpisov,
  • DS – hash kľúča zóny uložený v nadradenej zóne,
  • NSEC/NSEC3 – podpísaný dôkaz, že záznam neexistuje.

Zóna má zvyčajne dva páry kľúčov: ZSK (zone-signing key) podpisuje záznamy zóny a KSK (key-signing key) podpisuje kľúče. Delenie má praktický dôvod: ZSK sa dá vymeniť ľahko, kým výmena KSK vyžaduje zmenu DS záznamu u nadradenej zóny. Niektoré zóny používajú jediný kombinovaný kľúč (CSK), ktorý plní obe úlohy.

Reťaz dôvery

Resolver overí podpis vašej zóny verejným kľúčom. Tomu kľúču verí preto, že jeho hash (DS) je publikovaný a podpísaný v nadradenej zóne, napríklad .sk. Tá je overená koreňovou zónou. Koreň už nadradenú zónu nemá – dôvera v neho sa opiera o verejne auditovaný obrad podpisovania kľúčov (Root Signing Ceremony).

Ak sa reťaz kdekoľvek preruší, validujúci resolver odpoveď odmietne.

Prax: ako DNSSEC zapnúť

  1. U poskytovateľa DNS (hosting, Cloudflare, registrátor) zapnite podpisovanie zóny. Vygeneruje kľúče a DS záznam.
  2. DS záznam vložte u registrátora, ktorý ho odovzdá registru. Pri .sk ponúka SK-NIC DNSSEC ako službu a na svojom webe má technické návody.
  3. Overte funkčnosť niektorým verejným testom DNSSEC alebo príkazom dig +dnssec example.sk.

Keď DNSSEC zhodí doménu: presun k inému poskytovateľovi

Firma má DNSSEC zapnuté u hostingu A a presúva DNS k poskytovateľovi B. Ak len zmení menné servery, register stále publikuje starý DS záznam s hashom kľúča hostingu A. Odpovede z B sú podpísané iným kľúčom, reťaz nesedí a validujúce resolvery doménu prestanú prekladať – web aj e-mail „zmiznú“ pre veľkú časť internetu.

Správny postup: buď DNSSEC pred presunom vypnúť (odstrániť DS u registrátora a počkať, kým vyprší jeho TTL), alebo nový DS pridať ešte pred prepnutím. Cloudflare upozorňuje, že pri zmene DS treba najprv pridať nový záznam a počkať na vypršanie TTL pôvodného, až potom ho odstrániť.

Kde DNSSEC nastavujete

  • V nastaveniach DNS u hostingu alebo Cloudflare (prepínač „DNSSEC“).
  • V administrácii registrátora, kde sa vkladá DS záznam.
  • Pri presune domény alebo DNS – tu vzniká najviac výpadkov.

Na čom sa DNSSEC najčastejšie pokazí

  • Zmena menných serverov bez úpravy DS záznamu.
  • Domnienka, že DNSSEC šifruje dopyty. Nešifruje, len podpisuje; súkromie riešia iné protokoly.
  • Ručná výmena kľúča KSK bez dodržania poradia a TTL.

Otázky na zopakovanie

  1. Ktorý záznam v nadradenej zóne spája vašu zónu s reťazou dôvery? (Riešenie: DS.)
  2. Ktorý kľúč podpisuje bežné záznamy zóny? (Riešenie: ZSK.)
  3. Prečo môže doména po zmene menných serverov prestať fungovať? (Riešenie: v registri zostal starý DS záznam, ktorý nezodpovedá novým kľúčom.)

Prečo DNS potrebuje overenie: príklad z praxe

V septembri 2014 opísali výskumníci z tímu CERT/CC na Carnegie Mellon University (CMU) prípad, keď zistili, že e-maily, ktoré mali ísť cez servery Yahoo!, Hotmail a Gmail, putovali cez podvodné poštové servery. Útočníci zneužili desaťročia starú slabinu DNS: systém pred prijatím odpovede neoveruje, od koho prišla. Poštové servery smerujú správy podľa DNS, takže falošná odpoveď stačí na odklonenie pošty.

Ako DNSSEC dokazuje, že niečo neexistuje

Keď sa opýtate na neexistujúci názov, bežné DNS vráti prázdnu odpoveď – a tú nemožno podpísať. DNSSEC preto zaviedol záznamy NSEC a NSEC3. Záznam NSEC spája každý existujúci názov s nasledujúcim existujúcim názvom v kanonickom poradí. Ak zóna obsahuje api, blog a www a vy sa pýtate na store, dostanete podpísaný NSEC záznam pre blog, ktorý hovorí, že ďalším názvom je www. Medzi blog a www teda nič neexistuje, takže ani store. Nevýhodou je, že takto možno postupne vyčítať celý obsah zóny (zone walking); NSEC3 a ďalšie techniky tento problém zmierňujú.

Prečo DNSSEC nie je všade

Najväčšou prekážkou je ručné kopírovanie DS záznamu medzi poskytovateľom DNS a registrátorom. Cloudflare upozorňuje, že to otvára priestor pre ľudskú chybu a komplikuje nasadenie menej skúseným používateľom. Preto vznikajú návrhy, ako výmenu DS záznamov medzi poskytovateľmi DNS, registrátormi a registrami automatizovať.

DNSSEC a HTTPS

DNSSEC a HTTPS sa dopĺňajú: jedno overuje, že ste dostali správnu adresu, druhé chráni spojenie s ňou. Viac o HTTPS v článku HTTPS a zámok v prehliadači .

Zdroje

About The Author

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *