Azure DNSSEC

Schonmal von DNS Spoofing betroffen gewesen? Vielleicht gar nicht mitgekommen! Hier kann DNSSEC helfen. DNSSEC stellt sicher das DNS-Einträge, die sind, welche sie vorgeben zu sein. Wenn du deine Domain in Azure über Azure Public DNS verwaltest, dann kannst du deine DNS-Zone um DNSSEC erweitern (in Preview). 👍

Falls du dich mit DNS noch nicht tiefer auseinandergesetzt hast, dann kannst du dich beispielsweise auf Wikipedia dazu informieren.

Einführung

DNSSEC steht für Domain Name System Security Extensions und ist eine Erweiterung für das DNS-Protokoll. Es ist nicht zu verwechseln mit DNS Security, welche Methoden zur Absicherung der DNS-Infrastruktur vor Cyber-Attacken beschreibt.

Einfach gesagt geht es bei DNSSEC um die Validierung von DNS-Antworten (responses) auf DNS-Anfragen (queries). Dabei werden digitale Signaturen benutzt, welche in der DNS-Zone hinterlegt werden. Jede Zone hat dabei sein eigenes Public-/Private-Key Paar um die Zone und Ressourceneinträge (RR) zu signieren. Damit das durchgehend funktioniert, wird bei der Top-Level-Domain (TLD) begonnen und eine Vertrauenskette (Chain of Trust) hergestellt.

Am Ende muss der direkt genutzte DNS-Server (resolver) - welchem du daher vertrauen musst - DNSSEC voll unterstützen. Nutzt du nicht vertrauenswürdige DNS-Server, zum Beispiel im öffentlichen WLAN, dann hast du verschiedene Möglichkeiten. Wenn möglich konfiguriere die Einstellungen für den genutzten DNS-Server manuell auf einen vertrauenswürdigen Resolver. Falls du keinen vertrauenswürdigen DNS-Server hast, hilft nur einen eigenen entsprechenden Resolver lokal zu installieren. 😕

Im Enterprise-Umfeld hast du hoffentlich vertrauenswürdige DNS-Server, welche DNSSEC unterstützen. Zu Hause kannst du dir beispielsweise mit Pi-hole behelfen.

Voraussetzungen

Wie schon geschrieben wird eine Validierung bis hoch zur TLD betrieben. Daher ist es wichtig, dass die benutzte TLD (z.B. .de, .com oder .cloud) DNSSEC unterstützt. Über eine Suche in der Suchmaschine deiner Wahl findest du diverse Listen. Keine scheint mir komplett bzw. aktuell zu sein. Im Zweifel direkt auf der Website der entsprechenden TLD informieren. Außerdem muss der Registrar, also die Organisation worüber du dir deine Domain registrierst und verwaltest, die Möglichkeit anbieten sogenannte DS-Einträge mit den entsprechenden Parametern setzen zu können.

Sind die Vorrausetzungen nicht erfüllt, dann ist DNSSEC nicht nutzbar. Bei dem Punkt Registrar hast du die Möglichkeit deine Domain auf einen anderen Registrar zu transferieren, welcher die entsprechende Unterstützung bietet.

Umsetzung

Ich nutze fast ausschließlich das Azure Portal im Preview Modus unter https://preview.portal.azure.com/. Daher beziehen sich meine Beschreibungen auf die Ansichten dort. Die Aktivierung von DNSSEC ist in wenigen Schritten erledigt.

Gehe im Azure Portal auf die gewünschte DNS-Zone und wähle im Menü DNSSEC. Aktiviere die Checkbox und warte einen Moment. Es werden die DNSSEC delegation information angezeigt. Diese benötigst du, um über deinen Registrar den DS-Eintrag für die TLD zu erstellen. Für meine Domain korla.cloud benötigte ich Signing algorithm type, Public key, Key tag, Digest type und Key digest. Die benötigten Informationen können sich je nach TLD unterscheiden.

Übertrage die benötigten Daten bei deinem Registrar an die entsprechende Stelle. Bei meinem ging es bequem über das Webportal. Der Registrar hat mich beim Speichern darauf hingewiesen, dass die Verfügbarkeit in wenig dauern kann. Am Ende ging es aber recht fix, so dass schon nach kurzer Zeit unter DNSSEC Details der Status auf grün mit der Meldung “Signed and delegation established” zu sehen war. ✅

Ergebnis

Damit ist die Zone der Domain und die Einträge darin entsprechend signiert. Nachprüfen lässt sich das zum Beispiel mit dem Tool DNSViz. Dort gibst du deine Domain ein und kommst auf die Analyseseite der Domain. Möglicherweise kennt DNSViz deine Domain schon, dann musst du die Daten mittels Update now aktualisieren, um den aktuellen Stand zu sehen. 🙌

Azure Public DNS - DNSSEC