DNS? Abgehakt. CAA? CA – Zertifizierungsstelle, Check, geht in die richtige Richtung. DNS CAA – DNS Certificate Authority Authorization. Ich gebe einen kurzen Abriss und warum ich dies nutze.
Welche Domains kann ich durch DNS CAA schützen?
Generell – Alle. In der Theorie könnte man die http-only Domains ausschließen, da es aber um eine Schutzfunktion geht, macht es auch Sinn gar nicht erst ein Zertifikat für https auszustellen, wenn die Domain – warum auch immer- nur http sein soll. Es gibt meiner Meinung nach nur Spezialszenarien wo auf https verzichtet werden soll (z.B. Orte, wo Ressourcen (Rechenzeit, …) begrenzt sind). Ansonsten setze ich immer auf https.
Schema
- Wir möchten für eine Domain ein SSL Zertifikat ausstellen.
- 2 Varianten, wobei der Unterschied für dieses Thema nicht von Belang sind, aber einmal zur Vollständigkeit
- Hierzu nutzt man entweder seinen Hoster, da dieser den Prozess automatisiert hat und direkt das Zertifikat per Klick einrichtet.
- Oder man beantragt bei einer Zertifizierungsstelle selber ein Zertifikat (sei nun über eine Website, API oder über ein CLI), hier kommen dann noch Dinge wie CSR, Public und Private Key ins Spiel.
- Im Zertifizierungsprozess findet eine Validierung der Domain statt, d.h. es wird geprüft, ob ich auch wirklich der Besitzer der Domain bin. Teilweise erfolgt dies über eine E-Mail mit einem Bestätigungscode, teilweise über Codes als DNS-Eintrag, teilweise auch über veröffentlichte Informationen, so ziemlich alles ist möglich.
Schwachstelle
Es wird zwar in Schritt 3 geprüft, ob ich der Besitzer bin, aber diese Maßnahme muss von der CA ausgehen.
Erhöhung des Sicherheitslevels durch DNS CAA
Die Erweiterung DNS CAA greift in diesen Schritt ein, nämlich definiert der Webseitenbetreiber über einen DNS-Eintrag für seine Domain, welche CA Zertifikate ausstellen darf.
Eine CA soll somit vor der Ausstellung eines Zertifikats prüfen, ob sie dies für diese Domain überhaupt „darf“. Diese Maßnahme muss somit auch von der CA ausgehen.
Als Hilfestellung bei der Erzeugung des DNS Eintrags kann die Website https://sslmate.com/caa/ verwendet werden. Diese habe ich selbst verwendet, meine Website ist bei IONOS gehostet und dort wird dieser Typ DNS Eintrag auch unterstützt.
Neben den erlaubten CAs wird außerdem unterschieden, ob es ein Wildcard-Zertifikat sein darf oder nicht.
Und, an welche E-Mail-Adresse im Falle einer Regelverletzung eine Information gesendet werden soll.
Das genaue Format und die weiteren Daten sind vom DNS-Server abhängig, für meine Domain sieht der Teil bzgl. Aussteller und Regelverletzung aber so aus:
issue "letsencrypt.org" issuewild ";" iodef "mailto:hostmaster@lieberwirth-it-consulting.de"
Aber
Es besteht im Umkehrschluss die Möglichkeit, Webseiten auf den Aussteller der Zertifikate zu überprüfen und somit könnte man ein Zertifikat finden, was von einer nicht rechtmäßig ausgestellten und vermutlich kompromittierten CA stammt.
Das ganze setzt zusätzlich natürlich voraus, dass auch die Webseite oder zumindest der DNS gekapert wurde, um den ursprünglichen Traffic umzuleiten.