Co je DNSSEC a jak funguje
Co je DNSSEC
DNSSEC (Domain Name System Security Extensions) je sada rozšíření protokolu DNS, která přidává kryptografické ověření DNS odpovědí. Definuje ji trojice RFC: RFC 4033, RFC 4034 a RFC 4035.
Běžný DNS funguje na důvěře — resolver přijme odpověď od autoritativního serveru bez jakéhokoli ověření. Útočník, který se dokáže vložit mezi resolver a autoritativní server, může odpověď podvrhnout. DNSSEC tento problém řeší: každá DNS odpověď nese kryptografický podpis, který resolver ověří ještě před tím, než data předá aplikaci.
Proč samotný DNS nestačí
DNS vznikl v 80. letech jako jednoduchý systém pro překlad doménových jmen na IP adresy. Protokol nepočítal s ověřováním odpovědí — resolver nemá jak poznat, zda odpověď přišla od legitimního serveru nebo od útočníka.
Nejznámější zranitelností je DNS cache poisoning (otrava cache). Útočník pošle resolveru podvrženou odpověď dřív, než dorazí odpověď legitimní. Resolver si podvrženou odpověď uloží do cache a všichni jeho uživatelé pak dostávají falešná data — po dobu platnosti TTL záznamu.
V roce 2008 bezpečnostní výzkumník Dan Kaminsky demonstroval, že DNS cache poisoning je výrazně snazší, než se předpokládalo. Tato událost výrazně urychlila nasazování DNSSEC.
Jak DNSSEC funguje
DNSSEC přidává do DNS čtyři nové typy záznamů, které dohromady tvoří řetěz důvěry (chain of trust) od kořenové zóny až po konkrétní doménu.
Klíčové záznamy
| Typ záznamu | Účel |
|---|---|
| DNSKEY | Veřejný klíč zóny — používá se k ověření podpisů |
| RRSIG | Podpis konkrétní sady DNS záznamů (Resource Record Signature) |
| DS | Otisk klíče podřízené zóny — propojuje nadřazenou a podřízenou zónu (Delegation Signer) |
| NSEC / NSEC3 | Autentizované popření existence — prokazuje, že dotazovaný záznam neexistuje |
Řetěz důvěry
DNSSEC funguje hierarchicky, stejně jako DNS samotné:
- Kořenová zóna (root) má veřejný klíč, který zná každý validující resolver. Tento klíč je kotva důvěry (trust anchor).
- Kořenová zóna podepíše DS záznam pro TLD (např.
.cz). - TLD
.czmá vlastní DNSKEY a podepíše DS záznam pro vaši doménu (firma.cz). - Vaše doména
firma.czmá vlastní DNSKEY a podepisuje všechny své DNS záznamy (A, MX, TXT, ...) pomocí RRSIG.
Resolver ověří celý řetěz od kořene: pokud každý podpis odpovídá klíči nadřazené zóny, odpověď je důvěryhodná. Pokud kdekoli v řetězu podpis nesedí, resolver odpověď odmítne.
Příklad ověření
Když resolver hledá MX záznam pro firma.cz:
- Dotáže se kořenového serveru na
.cz— dostane DS záznam pro.czpodepsaný kořenovým klíčem. - Dotáže se serveru
.cznafirma.cz— dostane DS záznam profirma.czpodepsaný klíčem.cz. - Dotáže se autoritativního serveru
firma.czna MX — dostane MX záznam i jeho RRSIG. - Ověří RRSIG pomocí DNSKEY domény
firma.cz, ověří vazbu DNSKEY na DS v nadřazené zóně a tak dále až ke kořeni.
Celý proces probíhá automaticky na úrovni resolveru — uživatel ani aplikace o něm neví.
Proč je DNSSEC důležitý pro e-mailovou autentizaci
SPF, DKIM a DMARC záznamy jsou publikovány v DNS jako TXT záznamy. MX záznamy určují, kam se e-maily doručují. Bez DNSSEC může útočník tyto záznamy podvrhnout a obejít tak celou e-mailovou autentizaci:
- Podvržení MX záznamu: útočník přesměruje e-maily na svůj server a čte cizí poštu.
- Podvržení SPF záznamu: útočník změní povolené odesílající servery — legitimní e-maily selžou, podvržené projdou.
- Podvržení DKIM záznamu: útočník nahradí veřejný klíč vlastním — může podepisovat e-maily za cizí doménu.
- Podvržení DMARC záznamu: útočník změní politiku z
rejectnanone— podvržené e-maily projdou bez povšimnutí.
DNSSEC zajistí, že resolver dostane pravé DNS záznamy. SPF, DKIM a DMARC pak fungují nad ověřenými daty.
Jak zjistit, zda vaše doména má DNSSEC
Online nástroj
Nejrychlejší způsob je zkontrolovat doménu naším analyzérem — výsledek zahrnuje i stav DNSSEC.
Příkaz dig
Alternativně můžete záznamy zkontrolovat přes DNS lookup nebo v terminálu. Dotaz na DNSKEY záznam domény:
dig firma.cz DNSKEY +short
Pokud příkaz vrátí jeden nebo více klíčů, doména má DNSSEC aktivní. Prázdná odpověď znamená, že DNSSEC není nasazen.
Ověření DS záznamu v nadřazené zóně:
dig firma.cz DS +short
DS záznam musí existovat u registrátora TLD — bez něj řetěz důvěry nefunguje, i když má doména DNSKEY.
Jak DNSSEC aktivovat
Aktivace DNSSEC vyžaduje spolupráci dvou stran: správce DNS (hosting) a registrátora domény.
1. Podepište zónu
Správce DNS (autoritativní server) musí vygenerovat klíče a podepsat všechny záznamy v zóně. Většina moderních DNS poskytovatelů (Cloudflare, AWS Route 53, CZ.NIC) to dělá automaticky — stačí DNSSEC zapnout v administraci.
2. Předejte DS záznam registrátorovi
Po podepsání zóny získáte DS záznam. Ten musíte zadat u registrátora domény, který ho předá do nadřazené zóny (TLD). U .cz domén tento krok často registrátor provede automaticky při aktivaci DNSSEC.
3. Ověřte funkčnost
Po aktivaci počkejte na propagaci DNS (obvykle do několika hodin) a ověřte, že řetěz důvěry funguje. Zkontrolujte svou doménu naším analyzérem nebo použijte nástroj delv:
delv firma.cz A +rtrace
Omezení DNSSEC
DNSSEC není univerzální řešení a má svá omezení:
- Nešifruje DNS provoz: DNSSEC ověřuje pravost odpovědí, ale data cestují nešifrovaně. Pro šifrování DNS dotazů slouží DNS over HTTPS (DoH) nebo DNS over TLS (DoT) — doplňují DNSSEC, nenahrazují ho.
- Zvětšuje DNS odpovědi: podpisy (RRSIG) zvětšují DNS odpovědi, což může způsobit problémy s fragmentací UDP paketů.
- Vyžaduje správnou správu klíčů: Expirace podpisů nebo chybná rotace klíčů může znepřístupnit celou doménu.
- Závisí na validujícím resolveru: Pokud resolver uživatele DNSSEC nevaliduje, ochrana nefunguje. Většina velkých veřejných resolverů (Google 8.8.8.8, Cloudflare 1.1.1.1) DNSSEC validuje.
DNSSEC v České republice
Česká TLD .cz patří mezi průkopníky DNSSEC. CZ.NIC (správce domény .cz) spustil DNSSEC pro .cz v roce 2008 a aktivně podporuje jeho nasazení. Díky tomu má Česká republika jeden z nejvyšších podílů DNSSEC-podepsaných domén na světě.
Pokud vaše doména končí na .cz a používáte DNS servery CZ.NIC (FRED), aktivace DNSSEC je většinou záležitost jednoho kliknutí v administraci registrátora.
DNSSEC v kontextu zabezpečení e-mailu
DNSSEC spolupracuje s dalšími protokoly a vytváří vícevrstvou ochranu:
| Protokol | Co zajišťuje | Vztah k DNSSEC |
|---|---|---|
| SPF | Oprávněnost odesílajícího serveru | DNSSEC chrání SPF záznam před podvržením |
| DKIM | Integrita a původ zprávy | DNSSEC chrání veřejný klíč v DNS |
| DMARC | Politika a reporting | DNSSEC chrání DMARC záznam a politiku |
| MTA-STS | Vynucení TLS při přenosu | Doplňková ochrana přenosu — nezávisí na DNSSEC |
| DANE | Ověření TLS certifikátu přes DNS | Přímo vyžaduje DNSSEC — bez něj nefunguje |
DANE (DNS-Based Authentication of Named Entities) je jediný protokol, který DNSSEC přímo vyžaduje. Umožňuje publikovat otisk TLS certifikátu v DNS záznamu typu TLSA — příjemce pak ověří certifikát mailového serveru přímo přes DNS namísto spoléhání na certifikační autority.
Zkontrolujte zabezpečení vaší domény — analyzér ověří SPF, DKIM, DMARC i DNSSEC najednou.