DNS ist eine der kritischsten Infrastrukturkomponenten im Internet – und gleichzeitig eine der verwundbarsten. DNSSEC (Domain Name System Security Extensions) wurde entwickelt, um fundamentale Sicherheitslücken im DNS zu schließen. Doch trotz seiner Bedeutung wird DNSSEC oft falsch verstanden oder fehlerhaft implementiert.

Was ist DNSSEC und warum ist es wichtig?

Klassisches DNS hat ein fundamentales Problem: Es gibt keine Möglichkeit zu überprüfen, ob eine DNS-Antwort wirklich vom authoritative Nameserver stammt oder von einem Angreifer manipuliert wurde. Dies ermöglicht Angriffe wie:

  • DNS-Spoofing: Angreifer leiten Nutzer auf gefälschte Websites um
  • Cache-Poisoning: Manipulation von DNS-Caches mit falschen Einträgen
  • Man-in-the-Middle-Angriffe: Abfangen und Umleiten von Traffic

DNSSEC löst dieses Problem durch kryptographische Signaturen. Jede DNS-Antwort wird digital signiert, sodass der Empfänger die Authentizität und Integrität der Daten überprüfen kann.

Wie funktioniert DNSSEC?

DNSSEC erweitert DNS um vier neue Record-Typen:

  1. RRSIG (Resource Record Signature): Enthält die kryptographische Signatur für einen DNS-Record
  2. DNSKEY: Enthält den öffentlichen Schlüssel zur Signaturprüfung
  3. DS (Delegation Signer): Verknüpft die Vertrauenskette zur übergeordneten Zone
  4. NSEC/NSEC3: Beweist die Nicht-Existenz von Records (wichtig für negative Antworten)

Die Vertrauenskette beginnt bei der Root-Zone und läuft über alle Ebenen bis zur Ziel-Domain. Jede Ebene signiert die Schlüssel der nächsten Ebene.

DNSSEC Vertrauenskette

Beispiel: www.example.com

Root (.) → signiert .com
.com → signiert example.com
example.com → signiert www.example.com

Häufige Fehler bei der DNSSEC-Implementierung

1. Fehlende Key-Rotation

DNSSEC-Schlüssel müssen regelmäßig rotiert werden. Viele Administratoren vergessen dies oder haben keine Automatisierung dafür.

Best Practice:

  • ZSK (Zone Signing Key): Rotation alle 1-3 Monate
  • KSK (Key Signing Key): Rotation alle 1-2 Jahre
  • Automatisierung mit Tools wie dnssec-keymgr oder Cloud-Provider-Features

2. Defekte Vertrauenskette

Die DS-Records bei der Registry (z.B. bei .de oder .com) müssen mit den DNSKEY-Records der Zone übereinstimmen. Nach einer Key-Rotation muss der DS-Record aktualisiert werden.

Symptom: Domain ist nicht mehr erreichbar, wenn der Resolver DNSSEC validiert.

3. Falsche TTL-Werte

Während einer Key-Rotation müssen TTL-Werte berücksichtigt werden, um zu verhindern, dass alte Signaturen im Cache bleiben.

Best Practice: TTL der DNSKEY-Records sollte mindestens 1 Tag betragen, um sichere Rollover zu ermöglichen.

4. NSEC vs. NSEC3

NSEC erlaubt “Zone Walking” – Angreifer können alle Records einer Zone aufzählen. NSEC3 behebt dies durch Hashing.

Empfehlung für Produktivumgebungen: NSEC3 mit Opt-Out für nicht-signierte Delegationen.

DNSSEC in der Praxis implementieren

Schritt 1: Schlüssel generieren

# KSK (Key Signing Key) generieren
dnssec-keygen -a ECDSAP256SHA256 -f KSK example.com

# ZSK (Zone Signing Key) generieren
dnssec-keygen -a ECDSAP256SHA256 example.com

Warum ECDSA?: ECDSA P-256 bietet gute Sicherheit bei kleinen Signaturgrößen, was DNS-Antworten effizient hält.

Schritt 2: Zone signieren

dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
  -N INCREMENT -o example.com -t example.com.zone

Schritt 3: DS-Record zur Registry übermitteln

dnssec-dsfromkey -2 Kexample.com.+013+12345.key

Den generierten DS-Record bei Ihrem Domain-Registrar hinterlegen.

Schritt 4: Validierung testen

# Mit dig prüfen
dig +dnssec example.com

# Mit DNSViz visualisieren
https://dnsviz.net/d/example.com/dnssec/

DNSSEC bei Cloud-Providern

Die meisten Cloud-DNS-Provider bieten DNSSEC-Support:

  • Cloudflare: Ein-Klick-Aktivierung, automatische Key-Rotation
  • AWS Route 53: Vollständige DNSSEC-Unterstützung seit 2020, Key Management mit KMS
  • Google Cloud DNS: Managed DNSSEC mit automatischer Rotation

Vorteil: Der Provider übernimmt Key-Management und Rotation. Nachteil: Sie sind abhängig vom Provider und haben weniger Kontrolle.

Für wen ist DNSSEC relevant?

DNSSEC sollte in Betracht gezogen werden bei:

  • Finanzdienstleistern: Schutz vor Phishing und Spoofing
  • E-Commerce: Vertrauen in die Domain-Authentizität
  • Kritischen Infrastrukturen: Schutz vor gezielten Angriffen
  • Compliance-Anforderungen: Einige Standards fordern DNSSEC

DNSSEC ist kein Allheilmittel

Wichtige Limitierungen:

  • Kein Schutz der Transportverschlüsselung: DNSSEC validiert nur die Authentizität, nicht die Vertraulichkeit. DNS-Queries sind weiterhin im Klartext sichtbar.
  • Lösung: DNS-over-HTTPS (DoH) oder DNS-over-TLS (DoT) zusätzlich einsetzen
  • Komplexität: DNSSEC erhöht die Betriebskomplexität und erfordert sorgfältiges Key-Management
  • Keine Garantie: Nicht alle Resolver validieren DNSSEC

Fazit

DNSSEC ist eine wichtige Sicherheitsmaßnahme, die DNS-basierte Angriffe verhindert. Die Implementierung erfordert jedoch Sorgfalt, insbesondere beim Key-Management und bei der Vertrauenskette.

Meine Empfehlung:

  • Nutze Managed DNSSEC von Cloud-Providern, wenn möglich – das reduziert Fehlerquellen drastisch
  • Teste ausgiebig in einer Staging-Umgebung vor dem Produktiv-Rollout
  • Automatisiere Key-Rotation von Anfang an
  • Überwachen Sie Ihre DNSSEC-Konfiguration kontinuierlich mit Tools wie DNSViz

Bei Fragen zur DNSSEC-Implementierung oder einem Security-Audit Ihrer DNS-Infrastruktur stehe ich gerne zur Verfügung.


Tools und Ressourcen: