DNSSEC und CAA: zwei Einträge, die nichts kosten
Wovor DNSSEC schützt, warum eine fehlerhafte Einrichtung schlimmer ist als keine, wie CAA die Ausstellung von Zertifikaten begrenzt und wie Sie beides einschalten.
DNS-Antworten sind standardmäßig nicht signiert. Ein Resolver, der fragt „Welche Adresse hat www.ihre-domain.de?“, nimmt die erste plausible Antwort, die er bekommt, und in einem feindlichen Netz oder über einen vergifteten Cache kann diese Antwort von jemand anderem stammen. DNSSEC behebt das, indem jeder Eintrag Ihrer Zone mit einem Schlüssel signiert wird, dessen Fingerabdruck die übergeordnete Zone veröffentlicht, und so weiter bis zur Root-Zone. Ein validierender Resolver weist gefälschte Antworten zurück.
CAA-Einträge lösen ein anderes Problem. Jede der rund 150 öffentlichen Zertifizierungsstellen kann ein Zertifikat für Ihre Domain ausstellen, wenn ihr jemand nachweist, die Domain zu kontrollieren. Ein CAA-Eintrag nennt die Stellen, die Sie tatsächlich nutzen; alle anderen müssen ablehnen. Eine Änderung von zwei Zeilen macht aus „jede Stelle, wenn sie getäuscht wird“ ein „nur unsere“.
Beide erscheinen im Perimetry-Bericht als Befunde, wenn sie fehlen. Keiner kostet Geld.
Der Rahmen in Deutschland
Für .de bietet die DENIC DNSSEC seit dem 31. Mai 2011 an: Jede .de-Domain kann signiert werden, sofern Ihr DNS-Anbieter und Ihr Registrar mitspielen. Im IT-Grundschutz-Kompendium des BSI gehört der Betrieb von DNS zum Baustein APP.3.6 „DNS-Server“. DNSSEC ist außerdem die Voraussetzung für DANE, mit dem Mailserver ihre Zertifikate im DNS absichern; das BSI behandelt DANE in der TR-03108 „Sicherer E-Mail-Transport“ (siehe SPF, DKIM und DMARC).
DNSSEC
Was es tut und was nicht
DNSSEC garantiert, dass die Antwort, die ein validierender Resolver erhält, die Antwort ist, die Sie veröffentlicht haben. Es stoppt Cache-Poisoning und das Fälschen von DNS auf dem Übertragungsweg, die üblichen ersten Schritte mehrerer Angriffe: E-Mails auf einen Server des Angreifers umleiten, ein Zertifikat über eine DNS-basierte Validierung erschleichen oder einem ganzen Netz eine gefälschte Website ausliefern. Es verschlüsselt keine DNS-Abfragen (das ist DNS über HTTPS oder TLS, eine eigene Funktion), und es schützt nicht vor einem kompromittierten Konto beim Registrar.
Warum „fehlerhaft“ schlimmer ist als „fehlend“
Eine Zone mit DNSSEC veröffentlicht Signaturen und einen DS-Eintrag in der übergeordneten Zone. Laufen die Signaturen ab, werden die Schlüssel gewechselt, ohne den DS-Eintrag anzupassen, oder zieht die Zone zu einem Anbieter um, der nicht signiert, während der DS-Eintrag beim Registrar bleibt, dann behandeln validierende Resolver (Google, Cloudflare, Quad9 und heute die meisten Internetanbieter) jede Antwort als gefälscht und liefern einen Fehler. Die Domain verschwindet für alle, die diese Resolver nutzen: keine Website, keine E-Mail. Dieser Ausfall ist der häufigste DNSSEC-Vorfall und folgt fast immer auf einen Wechsel des DNS-Anbieters.
Perimetry meldet zwei verschiedene Befunde: DNSSEC nicht aktiviert (mittel) und DNSSEC fehlerhaft (hoch). Der zweite wird geprüft, indem ein validierender Resolver mit gesetztem DNSSEC-OK-Flag gefragt und gelesen wird, ob die Antwort authentifiziert ist oder an der Validierung scheitert.
So schalten Sie es ein
Die meisten verwalteten DNS-Anbieter (Cloudflare, Route 53, Google Cloud DNS, Gandi, OVH, Infomaniak) signieren die Zone mit einem Klick und zeigen den zu veröffentlichenden DS-Eintrag. Dann:
- Schalten Sie DNSSEC beim DNS-Anbieter ein. Warten Sie, bis die signierte Zone aktiv ist (der Anbieter sagt es Ihnen).
- Übertragen Sie den DS-Eintrag (oder den DNSKEY, je nachdem, was der Registrar verlangt) in die Verwaltung Ihres Registrars, der ihn an die Registry weitergibt, bei
.dealso an die DENIC. Sind Registrar und DNS-Anbieter dasselbe Unternehmen, geschieht das meist automatisch. - Prüfen Sie mit einem Validierungswerkzeug wie DNSViz, oder warten Sie einfach auf das nächste Perimetry-Audit, das meldet, ob die Kette validiert.
Bevor Sie später den DNS-Anbieter wechseln, entfernen Sie zuerst den DS-Eintrag beim Registrar, warten Sie, bis die TTL der übergeordneten Zone abgelaufen ist (meist ein Tag), und ziehen Sie dann um. Schalten Sie DNSSEC danach wieder ein. Der Änderungsteil von Perimetry zeigt den Wechsel des DNSSEC-Status, Ihre Bestätigung, dass der Umzug wie geplant verlaufen ist.
CAA
Was ein CAA-Eintrag sagt
ihre-domain.de. CAA 0 issue "letsencrypt.org"
ihre-domain.de. CAA 0 issuewild ";"
ihre-domain.de. CAA 0 iodef "mailto:security@ihre-domain.de"
Zu lesen als: Nur Let’s Encrypt darf Zertifikate für diese Domain und ihre Subdomains ausstellen; niemand darf Wildcard-Zertifikate ausstellen; und erhält eine Stelle eine Anfrage, die sie ablehnen muss, darf sie diese Adresse informieren. Zertifizierungsstellen müssen CAA seit 2017 prüfen, und zwar zum Zeitpunkt der Ausstellung: Der Eintrag schützt Sie ab heute.
Nutzen Sie mehrere Stellen (Let’s Encrypt für die Hauptwebsite, DigiCert für ein Produkt, Amazon für einen Load Balancer), führen Sie jede mit einer eigenen issue-Zeile auf. Die Kennung jeder Stelle dokumentiert die Stelle selbst; gängig sind letsencrypt.org, digicert.com, sectigo.com, globalsign.com, amazon.com, google.com, pki.goog, ssl.com, comodoca.com. Fragen Sie im Zweifel Ihren Hoster, welche Stelle seine Zertifikate ausstellt, bevor Sie den Eintrag veröffentlichen; sonst scheitert die nächste Verlängerung.
Wogegen er schützt
Ein Angreifer, der eine Subdomain übernimmt oder einige Minuten lang eine DNS-Validierung beantworten kann, kann bei jeder Stelle, die diese Validierung akzeptiert, ein Zertifikat erhalten. Mit einem CAA-Eintrag, der nur Ihre Stelle nennt, lehnt jede andere ab. Zusammen mit DNSSEC lässt sich auch der CAA-Eintrag selbst bei der Abfrage durch die Stelle nicht fälschen.
Die Ausstellung trotzdem beobachten
CAA begrenzt, wer ausstellen darf; es sagt Ihnen nicht, wann etwas ausgestellt wurde. Perimetry liest bei jedem Audit die Certificate-Transparency-Logs und listet die jüngsten Zertifikate Ihrer Domain mit ihrer ausstellenden Stelle. Ist eine Stelle nicht von Ihrem CAA-Eintrag abgedeckt, sagt der Bericht es (Zertifikat von einer Stelle ausgestellt, die Ihr CAA-Eintrag nicht erlaubt): Entweder ist Ihr Eintrag fehlerhaft, oder es ist ein Zertifikat, zu dem Sie Fragen stellen sollten. Der Leitfaden zur Beobachtung von Certificate-Transparency-Logs erklärt, wie Sie diesen Abschnitt lesen.
So sieht der Bericht aus
DNSSEC nicht aktiviert — mittel Für
ihre-domain.deist in der Zone.dekein DS-Eintrag veröffentlicht. Validierende Resolver können gefälschte Antworten für diese Domain nicht erkennen. Schalten Sie DNSSEC bei Ihrem DNS-Anbieter ein und veröffentlichen Sie den DS-Eintrag über Ihren Registrar.
Kein CAA-Eintrag — niedrig Jede Zertifizierungsstelle darf Zertifikate für
ihre-domain.deausstellen. Veröffentlichen Sie einen CAA-Eintrag, der die von Ihnen genutzten Stellen nennt, zum Beispiel0 issue "letsencrypt.org".
Beide Einträge zusammen dauern eine Viertelstunde. Wenige andere Viertelstunden senken die Angriffsfläche so stark.
Um zu sehen, wo eine Domain steht: Der kostenlose DNSSEC-Check sagt, ob die Zone signiert ist und validiert wird, und der CAA-Check nennt die Stellen, die für einen Namen ausstellen dürfen.