[[start|zurück]] ====== DNSSEC – Grundlagen ====== DNSSEC (**DNS Security Extensions**) erweitert das Domain Name System um Sicherheitsfunktionen. Es sorgt dafür, dass DNS-Antworten **authentisch**, **unverändert** und **vertrauenswürdig** sind. Wichtig: * DNSSEC schützt **NICHT** die Vertraulichkeit (keine Verschlüsselung), * sondern die **Integrität** und **Authentizität** von DNS-Daten. ===== Warum DNSSEC? ====== DNS selbst ist über 40 Jahre alt und ursprünglich ungeschützt. Ohne DNSSEC sind folgende Angriffe möglich: * DNS-Spoofing * Cache Poisoning * Man-in-the-Middle * Umleitung auf falsche Server Beispiel: Ein Angreifer könnte Google.com auf eine gefälschte IP zeigen lassen. DNSSEC verhindert genau diese Manipulationen. ===== Wie funktioniert DNSSEC? ====== DNSSEC nutzt **digitale Signaturen**. Jede Zone unterschreibt ihre DNS-Daten mit einem privaten Schlüssel. Clients können prüfen: * „Kommt diese DNS-Antwort wirklich vom Zonenbetreiber?“ * „Wurde sie unterwegs verändert?“ ===== Schlüsseltypen ====== DNSSEC arbeitet mit zwei Schlüsselarten: ==== 1. ZSK – Zone Signing Key ==== * signiert die Resource Records in einer Zone * wird häufiger gewechselt ==== 2. KSK – Key Signing Key ==== * signiert den öffentlichen ZSK * wird selten gewechselt * bildet die Vertrauenskette (Chain of Trust) ===== Wichtige DNSSEC Resource Records ====== | RR-Typ | Bedeutung | |-------|-----------| | **RRSIG** | digitale Signatur eines DNS-Eintrags | | **DNSKEY** | öffentlicher Schlüssel | | **DS** | Delegation Signer (Verweis auf Kindzone) | | **NSEC / NSEC3** | beweist sicher „Eintrag existiert NICHT“ | Beispiel RRSIG: example.com. IN RRSIG A 8 2 3600 20250101000000 (...) --- ===== Chain of Trust (Vertrauenskette) ====== DNSSEC baut eine Kette vom **Root-Nameserver** bis zur **Domain** auf. ASCII-Visualisierung: [ Root (.) ] ↓ DS [ .com ] ↓ DS [ example.com ] ↓ RRSIG [ host.example.com ] Jede Stufe bestätigt die nächste. --- ===== Beispiel Ablauf einer DNSSEC-Prüfung ====== 1. Client fragt eine Domain z. B. `example.com`. 2. Nameserver liefert Antwort + **RRSIG**. 3. Client lädt **DNSKEY** der Zone. 4. DNSKEY wird per **DS-Eintrag** in der Parent-Zone bestätigt. 5. Alles beginnt beim **Root**, das öffentlich bekannt ist. 6. Ergebnis: * „Signatur gültig“ → Antwort akzeptiert * „Signatur ungültig“ → Antwort wird verworfen ===== Negative Antworten: NSEC / NSEC3 ====== DNSSEC kann beweisen, dass ein Eintrag **wirklich nicht existiert**. Beispiel: Du fragst nach `abc123.example.com`, der nicht existiert. Ohne DNSSEC: * Angreifer könnte beliebige Antwort fälschen Mit DNSSEC: * NSEC oder NSEC3 signiert die „Nicht-Existenz“ ===== Vorteile von DNSSEC ====== * Schutz vor Cache Poisoning * Schutz vor gefälschten DNS-Antworten * garantierte Datenintegrität * Basis für DANE (TLSA-Records für E-Mail-Sicherheit) ===== Nachteile / Herausforderungen ====== * höherer Administrationsaufwand * größere DNS-Pakete * nicht alle Resolver unterstützen DNSSEC * Signaturen müssen regelmäßig erneuert werden ===== Beispiel – DNSSEC aktiv prüfen ====== Linux: dig example.com +dnssec Gültige Antwort zeigt: * DNSKEY * RRSIG * AD-Flag („Authenticated Data“) ===== Zusammenfassung ====== * DNSSEC schützt **DNS-Integrität**, nicht Vertraulichkeit * verwendet digitale Signaturen mit ZSK und KSK * Chain of Trust: Root → TLD → Domain * RRSIG, DNSKEY, DS, NSEC/NSEC3 sind die wichtigsten Recordtypen * verhindert Spoofing, MITM und Cache Poisoning