Was ist DNS CAA und wie wird es validiert und implementiert?

Autorisieren Sie Zertifizierungsstellen mit dem CAA-DNS-Eintrag zur Ausstellung von TLS-Zertifikaten

Der CAA-DNS-Eintrag dient dazu, Zertifizierungsstellen (CAs) zu autorisieren, TLS-Zertifikate für Ihre Domain auszustellen.

Was genau ist DNS-CAA?

CAA-Einträge sind spezielle DNS-Einträge, die CAs mitteilen, ob sie ein Zertifikat für eine bestimmte Domain ausstellen dürfen oder nicht. Im Wesentlichen legen Sie fest, welche CAs berechtigt sind, ein SSL/TLS-Zertifikat für Ihre Domain auszustellen. Diese Funktion wurde Ende 2017 verpflichtend eingeführt und ist daher relativ neu. Dennoch nutzen weniger als 5 % der populären Websites diese Sicherheitsmaßnahme.

Betrachten wir das Beispiel einer Website „gf.dev“, die dem Unternehmen wdzwdz gehört. Die zugehörigen CAA-Einträge könnten wie folgt aussehen:

gf.dev.			3586	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "comodoca.com"
gf.dev.			3586	IN	CAA	0 issue "comodoca.com"
gf.dev.			3586	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "letsencrypt.org"
gf.dev.			3586	IN	CAA	0 issue "letsencrypt.org"

Anhand dieser Einträge wird deutlich, dass Zertifikate für gf.dev nur von DigiCert, Comodo und Let’s Encrypt ausgestellt werden dürfen. Würde man beispielsweise Thawte oder eine andere CA mit der Ausstellung eines Zertifikats für gf.dev beauftragen, wäre dies nicht möglich. Die Einträge enthalten zudem die Begriffe „issue“ und „issuewild“, deren Bedeutung wir uns genauer ansehen:

  • issue: Dieser Eintrag erlaubt es der CA, ein Zertifikat nur für die exakte angegebene Domain auszustellen.
  • issuewild: Dieser Eintrag erlaubt es der CA, ein Wildcard-Zertifikat auszustellen, das sowohl für die Hauptdomain als auch für alle Subdomains gültig ist.

CAA-Einträge können auch das Format „iodef“ (Incident Object Description Exchange Format) unterstützen, mit dem die CA einen Bericht über eine versuchte Zertifikatsausstellung an eine bestimmte E-Mail-Adresse oder andere Kontaktdaten senden kann.

Was geschieht ohne einen CAA-Eintrag?

Wenn für eine Domain kein CAA-Eintrag vorhanden ist, kann jeder eine CSR (Certificate Signing Request) für diese Domain erstellen und ein Zertifikat von jeder beliebigen CA signieren lassen. Dies stellt ein erhebliches Sicherheitsrisiko dar, da unautorisierte Zertifikate für Ihre Domain ausgestellt werden könnten.

Soweit verständlich?

Die zuvor verwendeten Abkürzungen sollen hier nochmals erklärt werden:

  • DNS – Domain Name System
  • CA – Zertifizierungsstelle (Certificate Authority)
  • CAA – Certificate Authority Authorization
  • TLS – Transport Layer Security
  • SSL – Secure Sockets Layer

Wie wird ein DNS-CAA-Eintrag überprüft?

Es gibt verschiedene Wege, um CAA-Einträge zu überprüfen. Eine Möglichkeit ist die Verwendung des Befehls „dig“ in Ihrem Terminal:

dig caa $IhreWebseite.de

Beispiel mit „wdzwdz.com“:

[email protected]:~# dig caa wdzwdz.com

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa wdzwdz.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;wdzwdz.com.			IN	CAA

;; ANSWER SECTION:
wdzwdz.com.		3600	IN	CAA	0 issuewild "comodoca.com"
wdzwdz.com.		3600	IN	CAA	0 issuewild "letsencrypt.org"
wdzwdz.com.		3600	IN	CAA	0 issue "comodoca.com"
wdzwdz.com.		3600	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
wdzwdz.com.		3600	IN	CAA	0 issue "letsencrypt.org"
wdzwdz.com.		3600	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"

;; Query time: 7 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 08 07:12:21 UTC 2019
;; MSG SIZE  rcvd: 298

[email protected]:~#

Alternativ können Sie ein Online-Tool wie den DNS-CAA-Tester verwenden, um CAA-Einträge zu überprüfen.

Wie wird ein CAA-Eintrag hinzugefügt?

Das Hinzufügen eines CAA-Eintrags ähnelt dem Hinzufügen anderer DNS-Einträge wie A, NS oder CNAME.

Wenn Sie Cloudflare nutzen, finden Sie die Option zum Hinzufügen eines Eintrags unter dem Reiter „DNS“. Wählen Sie dann einfach „CAA“ als Eintragstyp aus.

Bei GoDaddy finden Sie die entsprechende Option in der DNS-Verwaltung.

Falls Sie unsicher sind, wie Sie einen CAA-Eintrag hinzufügen sollen, kontaktieren Sie Ihren DNS- oder Hosting-Anbieter.

Fazit

Es ist ratsam, einen CAA-Eintrag zu implementieren, um eine zusätzliche Sicherheitsebene für Ihre Domain zu schaffen. Die Einrichtung eines CAA-Eintrags ist kostenlos und kann dazu beitragen, die unbefugte Ausstellung von Zertifikaten für Ihre Domain zu verhindern.

Hat Ihnen dieser Artikel gefallen? Teilen Sie ihn gerne mit anderen!