INTEGRITY Dokumentace

Řešení potíží

Přečtěte si více o tom, jak řešit problémy s DNSSEC.

Otestujte DNSSEC pomocí Dig

Dig je nástroj příkazové řádky pro dotazování nameserveru na DNS záznamy.

Například dig se může zeptat DNS resolveru na IP adresu www.cloudflare.com:

dig www.cloudflare.com +short
198.41.215.162
198.41.214.162

Možnost +short zobrazí pouze výsledek.

Použijte +dnssec a ověřte, že jsou záznamy DNS podepsané:

dig www.cloudflare.com +dnssec +short
198.41.214.162
198.41.215.162
A 13 3 300 20180927180434 20180925160434 35273 cloudflare.com. DYYZ/bhHSAIlpvu/HEUsxlzkC9NsswbCQ7dcfcuiNBrbhYV7k3AI8t46 QMnOlfhwT6jqsfN7ePV6Fwpym3B0pg==

V tomto příkladu je posledním řádkem výstupu RRSIG záznam. RRSIG je podpis DNSSEC připojený k záznamu. S RRSIG, DNS resolver určí, zda je DNS odpověď důvěryhodná.

Dig může také získat veřejný klíč použitý k ověření záznamu DNS, DNSKEY:

dig DNSKEY cloudflare.com +short
257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+ KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==
256 3 13 koPbw9wmYZ7ggcjnQ6ayHyhHaDNMYELKTqT+qRGrZpWSccr/lBcrm10Z 1PuQHB3Azhii+sb0PYFkH1ruxLhe5g==

Všechny DNS záznamy domény jsou podepsané stejným veřejným klíčem. Dotaz na apex doménu (cloudflare.com) veřejný klíč, nikoli subdoménu (www.cloudflare.com) veřejný klíč.

Odpověď DNS obsahuje dva záznamy:

  • DNSKEY záznam 256 je veřejný klíč nazývaný klíč pro podepisování zóny (ZSK). Klíče ZSK se používají k ověření podpisů DNS záznamů pro A, MX, CNAME, SRV, atd.
  • DNSKEY záznam 257 se nazývá klíč pro podepisování klíčů (KSK). Klíče KSK se používají k ověření podpisů DNSKEY, CDS, a CDNSKEY záznamy.

Pokud nepoužíváte +short možnost s dig, DNS odpověď je ověřená pomocí DNSSEC, pokud ad příznak se zobrazí v hlavičce odpovědi:

dig www.cloudflare.com
[...]
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65326
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; QUESTION SECTION:
;www.cloudflare.com.        IN  A
[...]
;; ANSWER SECTION:
www.cloudflare.com. 15  IN  A   198.41.215.162
www.cloudflare.com. 15  IN  A   198.41.214.162

Řešení problémů s ověřením DNSSEC pomocí DNSViz

Pro vizualizaci a odhalení případných problémů s DNSSEC:

  1. Přejděte na https://dnsviz.net/.
  2. Do zobrazeného textového pole zadejte název domény.
  3. Pokud DNSViz tento web dosud nikdy neanalyzoval, vyberte Analyzujte.
  4. Pokud DNSViz tento web již dříve analyzoval, vyberte Aktualizovat nyní.

Příklad s chybějícím nebo nesprávným záznamem RRSIG na autoritativním nameserveru

Níže je příklad, jak dnsviz.net zobrazí nesprávnou delegaci, pokud autoritativní nameserver neposkytuje žádné platné záznamy DNSKEY odpovídající DS záznamu zveřejněnému nameserverem TLD:

Nesprávná delegace, pokud nejsou k dispozici platné záznamy DNSKEY

Zobrazte řetězec důvěry DNSSEC pomocí Dig

Úplné ověření podpisů domény (například cloudflare.com) zahrnuje ověření klíče key signing key na doméně nejvyšší úrovně (například .com).

Následně se provádí podobné ověření kontrolou klíče pro podepisování klíčů (KSK) u .com na úrovni kořenového serveru. Kořenové klíče DNSSEC se distribuují DNS klientům, aby se dokončil řetězec důvěry.

Když je DNSSEC povolený, DS záznam je vyžadován v DNS u registrátora. DS záznam obsahuje hash veřejného podepisovacího klíče a také metadata o tomto klíči.

Použijte dig a vyhledejte DS záznam:

dig +short DS cloudflare.com
2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9

Při použití +trace možnost, dig potvrzuje, zda nameserver vrátí odpověď pro cloudflare.com nebo nameserver pro .com. V tomto příkladu DS záznam pro cloudflare.com je vrácen prostřednictvím e.gtld-servers.net:

dig DS cloudflare.com +trace
[...]
cloudflare.com.     86400   IN  DS  2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9
[...]
com.            172800  IN  NS  e.gtld-servers.net.
[...]
;; Received 1213 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 37 ms

Jednodušší alternativou k ručnímu provedení výše uvedených kroků je použití nástroje třetí strany DNSViz.


Řešení problémů s ověřením DNSSEC pomocí Dig

Problémy nastávají, pokud se změní autoritativní poskytovatelé DNS, aniž by se u registrátora aktualizovaly nebo odstranily staré záznamy DNSSEC:

dig A brokendnssec.net @1.0.0.1
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10663

Ověřte, zda SERVFAIL odpověď souvisí s DNSSEC, spuštěním dig hodnotou +cd možnost. +cd možnost poskytuje výsledky DNS bez jakékoli validace DNSSEC.

dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short
104.20.49.61
104.20.48.61

V tomto příkladu je DNSSEC nesprávně nakonfigurován, pokud je při použití +cd možnost, ale dotazy pomocí DNSSEC vrátí SERVFAIL odpověď. Tento problém často nastává, když se změní autoritativní jmenné servery, ale DS záznamy se neaktualizují. Problém může nastat i tehdy, když se útočník pokusí zfalšovat odpověď na dotaz.


Odstranění zbývajících záznamů DNSKEY po deaktivaci DNSSEC

Po vypnutí DNSSEC se záznamy DNSKEY nadále objevují v dotazech DNS a přenosech zóny. V disabled stavu Cloudflare i nadále podepisuje zónu a poskytuje záznamy RRSIG, NSEC a DNSKEY. Toto chování je očekávané a nejde o chybnou konfiguraci ani chybu. Viz Stavy DNSSEC a RFC 8078 s podrobnostmi.

Někteří dodavatelé bezpečnostních řešení nebo auditní nástroje ale mohou tyto záznamy DNSKEY označit za problematické a nahlásit "DNSKEY record found but no DS record found" s výsledkem zabezpečení "Provably Insecure". Záznamy DNSKEY můžete odstranit pomocí API.

Jak odstranit zbývající záznamy DNSKEY

Použijte API pro odstranění DNSSEC a přejděte se zónou na deleted stavu. Tím se zastaví veškeré podepisování zóny a odstraní se všechny typy záznamů DNSSEC (RRSIG, NSEC, DNSKEY, CDS a CDNSKEY):

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Odstranění záznamů DNSSEC
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Další informace o stavech DNSSEC najdete v Stavy DNSSEC.

Ověřte odstranění DNSKEY

Po odstranění záznamů DNSKEY ověřte, že se již neobjevují v DNS odpovědích. Prázdná odpověď potvrzuje jejich odstranění.

dig DNSKEY example.com +short

Pokud se záznamy DNSKEY stále zobrazují, počkejte na doba platnosti (TTL) aby vypršela platnost. Záznamy DNSKEY mají obvykle delší hodnoty TTL (často 3600 sekund nebo více), takže šíření změn může trvat hodinu nebo déle.


Další kroky

Pokud zjistíte problém s implementací DNSSEC, obraťte se na registrátora domény a ověřte, že záznam DS odpovídá tomu, co uvedl autoritativní poskytovatel DNS. Pokud je autoritativním poskytovatelem DNS Cloudflare, postupujte podle pokynů pro konfigurace DNSSEC s Cloudflare.