DNS

DNSSEC verständlich erklärt: Schutz vor Cache Poisoning

Das traditionelle Domain Name System (DNS) wurde in den 1980er Jahren ohne Sicherheitsvorkehrungen entwickelt. DNS-Abfragen erfolgen im Klartext und ungesichert. Dies ermöglicht Angriffe wie Cache Poisoning (auch DNS-Spoofing genannt), bei denen Kriminelle gefälschte IP-Adressen in die Nameserver-Caches von Internet-Providern einschleusen, um Benutzer unbemerkt auf gefälschte Phishing-Websites umzuleiten. DNSSEC (Domain Name System Security Extensions) löst dieses Problem durch kryptografische Signaturen.

DNSSEC setzt direkt auf der DNS-Hierarchie auf: Jede Ebene bürgt kryptografisch für die nächste, von der Root-Zone bis zu Ihren eigenen NS-Records. Wichtig ist dabei das Zusammenspiel mit der DNS-Propagation – Schlüsselwechsel müssen die Caches weltweit erreichen, bevor alte Signaturen verschwinden.

Die Vertrauenskette (Chain of Trust) bei DNSSEC

DNSSEC sichert die Daten des DNS ab, indem es digitale Signaturen zu den bestehenden Records hinzufügt. Um sicherzustellen, dass die Schlüssel selbst nicht manipuliert wurden, nutzt DNSSEC eine hierarchische Vertrauenskette (Chain of Trust), die an der Wurzel (Root-Zone) des Internets beginnt:

  ┌─────────────────────────────────────────────────────┐
  │                      Root-Zone                      │
  │ Der weltweite Root-Key signiert den Key der TLD     │
  └──────────────────────────┬──────────────────────────┘
                             ▼
  ┌─────────────────────────────────────────────────────┐
  │                   TLD-Zone (.ch)                    │
  │ Die Registry signiert den DS-Record der Domain      │
  └──────────────────────────┬──────────────────────────┘
                             ▼
  ┌─────────────────────────────────────────────────────┐
  │                Eigene Domain (example.ch)           │
  │ Der DS-Record verifiziert den KSK-Schlüssel. Dieser  │
  │ verifiziert den ZSK, welcher die Records signiert.  │
  └─────────────────────────────────────────────────────┘
  1. Die Root-Zone: Die oberste Ebene des DNS besitzt einen weltweit bekannten öffentlichen Schlüssel. Sie beglaubigt den Schlüssel der Top-Level-Domain (z. B. .ch).
  2. Die TLD-Registry: Die Registry von .ch beglaubigt wiederum die Nameserver-Schlüssel der einzelnen Domaininhaber über einen speziellen DS-Record (Delegation Signer).
  3. Die Domain-Ebene: Der Nameserver der Domain signiert die eigentlichen DNS-Einträge (A, MX etc.). Ein DNS-Resolver kann so Schritt für Schritt bis zur Root-Zone hochprüfen, ob die Signatur gültig ist.

Die vier neuen DNSSEC-Record-Typen

Wenn Sie DNSSEC für Ihre Domain aktivieren, generiert Ihr Nameserver vier zusätzliche Eintragstypen:

  • RRSIG (Resource Record Signature): Enthält die eigentliche digitale Signatur für ein Set von DNS-Records (z. B. für den A-Record).
  • DNSKEY: Speichert den öffentlichen Schlüssel, der zur Überprüfung der RRSIG-Signaturen dient. Es gibt den Zone Signing Key (ZSK) für die Records und den Key Signing Key (KSK) zur Signierung des ZSKs.
  • DS (Delegation Signer): Dieser Eintrag wird an die übergeordnete Stelle (TLD-Registry) übermittelt. Er enthält einen kryptografischen Hashwert des KSKs und verknüpft so die Domain mit der übergeordneten Zone.
  • NSEC / NSEC3 (Next Secure): Diese Einträge dienen dem Nachweis der Nichtexistenz. Sie beweisen kryptografisch, dass eine abgefragte Subdomain (z. B. admin.example.com) wirklich nicht existiert. NSEC3 verhindert dabei das systematische Ausspähen aller Subdomains der Zone (Zone Walking).

Die folgende Übersicht ordnet die vier Record-Typen ihrer Funktion zu:

RecordInhaltLiegt beiZweck
DNSKEYÖffentlicher Schlüssel (ZSK & KSK)Eigener NameserverVerifikation der RRSIG
RRSIGDigitale Signatur eines Record-SetsEigener NameserverIntegritätsnachweis
DSHash des KSKÜbergeordnete Zone (Registry)Verknüpfung zur Vertrauenskette
NSEC/NSEC3Nachweis der NichtexistenzEigener NameserverSchutz vor gefälschten «nicht gefunden»

DNSSEC vs. DoH/DoT: zwei unterschiedliche Schutzziele

Ein häufiges Missverständnis ist, DNSSEC würde DNS-Anfragen verschlüsseln. Tatsächlich adressieren DNSSEC und die Transportverschlüsselung (DoH/DoT) völlig verschiedene Probleme:

AspektDNSSECDNS over HTTPS / TLS
SchutzzielAuthentizität & IntegritätVertraulichkeit (Verschlüsselung)
VerhindertManipulierte Antworten (Spoofing)Mitlesen der Anfragen
Sichtbar für DritteAnfrage bleibt im KlartextAnfrage ist verschlüsselt
WirkungsortZwischen Resolver und ZoneZwischen Client und Resolver

Beide Verfahren ergänzen sich: DNSSEC stellt sicher, dass die Antwort echt ist, DoH/DoT sorgt dafür, dass niemand die Anfrage mitliest. Für ein vollständig abgesichertes Setup kombiniert man beides.


Aktivierung in der Praxis

Um DNSSEC für Ihre Website zu aktivieren, müssen Sie:

  1. DNSSEC im Admin-Panel Ihres DNS-Providers aktivieren. Dieser generiert die Schlüssel (DNSKEY) und Signaturen (RRSIG).
  2. Den erzeugten DS-Record im Kundenportal Ihres Domain-Registrars (wo Sie die Domain gekauft haben) hinterlegen, damit dieser den DS-Record an die Registry (z. B. Switch für .ch oder Denic für .de) übermittelt.

Typischer Fehler: SERVFAIL nach Nameserver-Wechsel

Der mit Abstand häufigste DNSSEC-Fehler entsteht beim Wechsel des DNS-Providers, ohne DNSSEC vorher sauber zu deaktivieren:

  1. Beim alten Provider war DNSSEC aktiv, der DS-Record beim Registrar verweist auf dessen KSK.
  2. Nach dem Wechsel signiert der neue Provider mit einem anderen Schlüssel.
  3. Der veraltete DS-Record passt nicht mehr zum neuen DNSKEY – die Vertrauenskette bricht.
  4. Validierende Resolver liefern SERVFAIL; die Domain ist für viele Nutzer komplett offline.

Korrekte Reihenfolge: Vor einem Providerwechsel zuerst den DS-Record beim Registrar entfernen, die Propagation abwarten, dann wechseln und DNSSEC neu aktivieren.

[!WARNING] Ein Fehler bei der DNSSEC-Aktivierung (z. B. ungültige Signaturen nach einem Nameserver-Wechsel) führt dazu, dass validierende DNS-Resolver die gesamte Domain blockieren (Status SERVFAIL). Die Website ist dann weltweit für einen Grossteil der Nutzer nicht erreichbar. Prüfen Sie die kryptografische Kette Ihrer Domain mit dem DNS Check auf balou.tools.

Häufig gestellte Fragen (FAQ)

Wie verhindert DNSSEC das sogenannte Cache Poisoning?

DNSSEC fügt jedem DNS-Eintrag eine digitale Signatur hinzu. Ein prüfender DNS-Resolver verifiziert diese Signatur kryptografisch. Manipuliert ein Angreifer die Antwort, stimmt die Signatur nicht mehr überein und der Resolver verwirft die Antwort sofort, anstatt sie im Cache zu speichern.

Verschlüsselt DNSSEC meine DNS-Abfragen im Internet?

Nein. DNSSEC sorgt ausschliesslich für Authentizität und Datenintegrität (dass die Antwort vom echten Inhaber stammt und unverändert ist). Die Abfrage selbst bleibt im Klartext lesbar. Für Verschlüsselung müssen Protokolle wie DNS over HTTPS (DoH) oder DNS over TLS (DoT) verwendet werden.

Wie prüfe ich, ob DNSSEC für meine Domain aktiv ist?

Mit dem Kommandozeilen-Werkzeug dig lässt sich die Validierung prüfen: dig +dnssec example.ch zeigt die RRSIG-Einträge an. Steht im Header das Flag ad (Authenticated Data), hat ein validierender Resolver die Signaturkette erfolgreich geprüft. Online-Tools wie der DNS Check visualisieren die gesamte Vertrauenskette zusätzlich.

Was ist ein KSK-Rollover und warum ist er gefährlich?

Ein KSK-Rollover ist der Austausch des Key Signing Key. Da der DS-Record beim Registrar auf den KSK verweist, muss der neue Schlüssel erst nach oben publiziert und propagiert sein, bevor der alte deaktiviert wird. Wird die Reihenfolge oder die TTL missachtet, entsteht eine ungültige Kette und validierende Resolver liefern SERVFAIL.