Zum Inhalt springen

DNSSEC-Prüfung

Vertrauenskette von der Root bis zur Zone prüfen: DNSKEY, DS und RRSIG nachrechnen

Beispiele

Abgefragt werden DNSKEY, DS und RRSIG über einen DNSSEC-fähigen Resolver. Key-Tags, DS-Digests und Signaturen werden hier selbst nachgerechnet — nicht nur auf Vorhandensein geprüft.

Kurz erklärt

DNSSEC signiert DNS-Antworten. Ein Validierer prüft die Kette von der Root abwärts: Jede Zone hinterlegt beim Elternteil einen DS-Fingerabdruck ihres Schlüssels — passt der nicht, ist die Kette gebrochen und die Antwort gilt als „bogus": Ein validierender Resolver liefert sie nicht aus. Ein Fälschungsbeweis ist das NICHT. Weit häufiger steckt ein Schlüsselwechsel dahinter, bei dem der DS beim Elternteil nicht mitgezogen wurde, oder schlicht ein Konfigurationsfehler.

Flags 257 heißt „Zonenschlüssel mit SEP-Hinweis", Flags 256 „Zonenschlüssel ohne". Die Aufteilung in KSK (signiert nur das DNSKEY-RRset, per DS beim Elternteil verankert) und ZSK (signiert die übrigen Records) ist gängige BETRIEBSPRAXIS, keine Vorschrift des Protokolls: Ein Validierer darf sein Verhalten nicht am SEP-Bit festmachen, und eine Zone kann auch mit einem einzigen Schlüssel auskommen. Das Key-Tag ist eine Prüfsumme, über die DS und RRSIG auf den passenden Schlüssel zeigen.

RRSIG-Signaturen haben ein festes Ablaufdatum. Ein RRset darf mehrere Signaturen tragen — erst wenn KEINE brauchbare gültige mehr dabei ist, gilt es als „bogus", und dann liefern validierende Resolver genau dieses RRset nicht mehr aus. Betroffen ist also zunächst der abgelaufene Satz, nicht zwangsläufig die ganze Domain; hängt allerdings der DNSKEY-Satz oder eine übergeordnete Zone daran, fällt praktisch doch alles aus. Kurze Restlaufzeiten sind bei manchen Anbietern aber Absicht — dort wird laufend neu signiert.

Abfrage über einen DNSSEC-fähigen Resolver mit gesetztem DO-Bit; Signaturen werden lokal mit RSA, ECDSA bzw. EdDSA nachgerechnet.

Selbst nachprüfen

Dieselbe Prüfung kannst du im Terminal machen — unter Linux und macOS mit diesen Befehlen:

Die öffentlichen Signaturschlüssel der Zone.
dig +short DNSKEY example.com
Der DS-Record bei der übergeordneten Zone — verankert die Vertrauenskette.
dig +short DS example.com
Vollständige Validierung; „fully validated" heißt: Kette in Ordnung.braucht bind9-dnsutils
delv @1.1.1.1 example.com

Die Befehle sind bereits mit deiner Eingabe gefüllt. Weicht ein Ergebnis von dem hier ab: Deine Befehle fragen den Resolver deines Rechners, diese Seite fragt vom Server aus. Unterschiedliche Ergebnisse sind normal: Jeder Resolver hat einen eigenen Zwischenspeicher, und frische Änderungen brauchen bis zum Ablauf der TTL.