AWS Route 53 Support für SVCB-, TLSA- und SSHFP-DNS-Einträge

AWS hat am 30. Oktober bekannt gegeben, nun auch SVCB, HTTPS, TLSA und SSHFP als DNS-Resource-Record-Typen zu unterstützen.

Was machen SVCB/HTTPS, DANE/TLSA und SSHFP?

SVCB: Flexible Verbindungsparameter für mehr Performance

Der SVCB-Record (Service Binding) ist eine Erweiterung im DNS-Ökosystem, die es erlaubt, zusätzliche Informationen zu einem Dienst bereitzustellen. Mit SVCB können bevorzugte Protokolle und alternative Verbindungsendpunkte direkt an den Client kommuniziert werden. Für Dienste, die über verschiedene Netzwerke und Standorte bereitgestellt werden – wie Cloud-Anwendungen und CDNs –, ist das ein Game-Changer. Statt eines starren DNS-A-Records, der nur eine IP-Adresse liefert, kann SVCB den optimalen Verbindungspfad an den Client übermitteln. Das spart wertvolle Millisekunden und sorgt für eine insgesamt reibungslosere User Experience.

Beispiel: Ein SVCB-Record könnte angeben, dass der Dienst HTTP/3 unterstützt und bevorzugt über einen bestimmten CDN-Knoten erreicht wird. Der Client wählt dann den kürzesten und effizientesten Pfad für die Verbindung aus.

HTTPS: Spezialisierte Verbindungen für moderne HTTPS-Optimierungen

Der HTTPS-Record baut auf SVCB auf, ist jedoch speziell für HTTPS-Verbindungen entwickelt worden. Er stellt Anweisungen bereit, die für die HTTPS-Verbindung des Clients relevant sind, wie spezifische Angaben zu unterstützten Protokollen und Verschlüsselungseinstellungen, beispielsweise HTTP/2 oder HTTP/3 via ALPN (Application-Layer Protocol Negotiation).

Ein HTTPS-Record kann auch alternative Server-Optionen und Prioritäten angeben. Der Client erfährt so frühzeitig, ob eine HTTP/3-Verbindung möglich ist und welche Einstellungen die beste Performance liefern – alles, ohne einen Umweg über das normale DNS-Setup. Auch sichere DNS-Optionen wie DoH (DNS-over-HTTPS) können gezielt gesteuert werden.

Vorteile auf einen Blick:

  1. Schnellere Verbindungen: Der Client weiß schon beim ersten DNS-Request, wie die optimale Verbindung aussieht, was den Verbindungsaufbau beschleunigt.
  2. Flexible Priorisierung: Verschiedene Endpunkte und Protokolle werden intelligent priorisiert, sodass der Client immer den besten Pfad wählt.
  3. Mehr Sicherheit: HTTPS-Records bringen wichtige Informationen zur Verschlüsselung direkt in den Verbindungsaufbau, was einen sicheren Austausch von Daten ermöglicht.

Warum das Ganze?

SVCB- und HTTPS-Einträge sind ein Schritt in Richtung eines dynamischeren Internets, in dem Clients und Server ihre Verbindungen optimal abstimmen können. Für Unternehmen mit komplexen Multi-Cloud- oder CDN-Setups bedeutet das weniger Latenz und höhere Sicherheit. Damit wird das DNS zu einem leistungsfähigen Werkzeug für moderne, flexible Verbindungen. Selbst in einem einfachen Setup wie meinem Blog konnte ich durch den HTTPS-Record einige Millisekunden einsparen.

AWS Cloudfront & HTTPS: Wie einrichten?

Im Post und in der AWS-Dokumentation sind alle Details ausführlich erklärt. Für mein Cloudfront-Setup sieht mein Eintrag wie folgt aus:

example.com 300 IN HTTPS 1 <cloudfront-distribution-domain-name> alpn="h2,h3,http/1.1,http/1.0"

Ob die Bekanntmachung der Verfügbarkeit von HTTP/1.1 und HTTP/1.0 tatsächlich einen Vorteil bringt, habe ich noch nicht nachverfolgt.

DANE/TLSA - Überblick

DANE/TLSA-Einträge (DNS-based Authentication of Named Entities und TLS Authentication) verbessern die Sicherheit von TLS-Verbindungen, indem sie es ermöglichen, die Vertrauenswürdigkeit von Zertifikaten über das DNS zu validieren. Dies erlaubt zusätzliche Kontrolle über die Zertifikate und deren Akzeptanzrichtlinien und bietet eine zusätzliche Schutzschicht gegen gefälschte Zertifikate. Ein genauerer Blick:

  1. Was ist DANE/TLSA?

    1. DANE (DNS-based Authentication of Named Entities) ist ein Sicherheitsprotokoll, das TLS-Zertifikate über DNSSEC (Domain Name System Security Extensions) verifiziert. Es erweitert die Authentifizierungsmöglichkeiten für TLS-Verbindungen und sorgt dafür, dass nur autorisierte Zertifikate akzeptiert werden.
    2. Der TLSA-Record ist der DNS-Record-Typ, den DANE verwendet, um Zertifikatinformationen zu speichern. Er beschreibt, welches Zertifikat oder welche Art von Zertifikat für eine bestimmte Domain und einen bestimmten Dienst akzeptiert werden soll.
  2. Funktionsweise des TLSA-Records

    1. Der TLSA-Record speichert Informationen wie den Hashwert eines Zertifikats oder einer Zertifikatskette, die für eine sichere TLS-Verbindung akzeptiert wird.
    2. Bei einer DNS-Abfrage des TLSA-Records kann ein Client die Authentizität des Servers bestätigen, indem er die übermittelten Zertifikatinformationen mit dem vorliegenden TLSA-Record abgleicht. Wenn die Informationen übereinstimmen, kann eine Verbindung aufgebaut werden.
    3. Durch die Verwendung von DNSSEC wird sichergestellt, dass die TLSA-Records selbst nicht manipuliert werden können, was eine hohe Sicherheit bietet.
  3. Vorteile von DANE/TLSA

    1. Mehr Kontrolle über Zertifikate: Domaininhaber können explizit festlegen, welches Zertifikat akzeptiert wird, und sind nicht nur auf öffentliche Zertifizierungsstellen angewiesen.
    2. Schutz vor falschen Zertifikaten: Selbst wenn eine Zertifizierungsstelle kompromittiert wird, können gefälschte Zertifikate blockiert werden, da der TLSA-Record das zugelassene Zertifikat eindeutig definiert.
    3. Reduzierte Abhängigkeit von Zertifizierungsstellen: Für Dienste, die DANE/TLSA verwenden, sind Zertifikate ohne CA-Signatur oder selbstsignierte Zertifikate akzeptabel, solange der TLSA-Record mit dem Zertifikat übereinstimmt.

Beispiel: Verwendung von DANE/TLSA für E-Mail-Server

E-Mail-Server können DANE/TLSA-Records nutzen, um eine verschlüsselte Verbindung zu garantieren und nur authentische Zertifikate zu akzeptieren. Dies hilft, Man-in-the-Middle-Angriffe zu verhindern, da das im DNS festgelegte Zertifikat abgeglichen wird, bevor eine Verbindung aufgebaut wird.

Zusammengefasst:

DANE/TLSA-Records bieten eine zuverlässige Möglichkeit, TLS-Verbindungen auf DNS-Ebene abzusichern und die Kontrolle über die Zertifikatsauthentifizierung zu erweitern. Sie sind besonders nützlich in Situationen, in denen zusätzliche Sicherheitsschichten und weniger Abhängigkeit von externen Zertifizierungsstellen gewünscht sind.

Fingerprint abfragen / Domain-Record-Einrichtung

Ich habe TLSA für meine Domain eingerichtet. Für die Abfrage des Fingerabdrucks habe ich folgenden Befehl eingesetzt:

openssl s_client -connect example.com:443 -servername example.com | openssl x509 -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256

Mit meinem von AWS ausgestellten Zertifikat nutze ich aktuell folgenden DNS-Eintrag:

_443._tcp.example.com. IN TLSA 1 1 1 <fingerabdruck>

Zur Prüfung, ob der Eintrag gültig ist, könnt ihr diesen DANE-Checker verwenden.

SSHFP: Überblick

SSHFP-Einträge (SSH Fingerprint) sind DNS-Record-Typen, die die Fingerabdrücke von SSH-Schlüsseln einer Domain speichern. Diese Einträge ermöglichen es Clients, die Authentizität eines SSH-Servers zu überprüfen, bevor eine Verbindung hergestellt wird. Dadurch wird eine zusätzliche Sicherheitsschicht für SSH-Verbindungen geschaffen. Ein genauerer Blick:

Funktionsweise von SSHFP-Einträgen

  1. SSH-Fingerprint-Überprüfung: SSHFP-Einträge speichern den Fingerabdruck (Hash) des öffentlichen Schlüssels des SSH-Servers. Wenn ein Client eine Verbindung zum Server aufbauen möchte, kann er diesen Fingerabdruck mit dem in DNS veröffentlichten Eintrag abgleichen.
  2. Automatisierte Überprüfung: Anstatt den Fingerabdruck manuell zu bestätigen, vergleicht der SSH-Client automatisch den vom Server gelieferten Schlüssel mit dem im DNS gespeicherten Fingerabdruck.
  3. DNSSEC: Wenn DNSSEC aktiviert ist, wird der SSHFP-Record vor Manipulation geschützt. DNSSEC bestätigt die Authentizität des DNS-Eintrags und verhindert, dass Angreifer falsche Fingerabdrücke einschleusen.

Vorteile von SSHFP

  1. Sicherer Verbindungsaufbau: Clients können sich darauf verlassen, dass sie sich tatsächlich mit dem vorgesehenen Server verbinden und nicht mit einem manipulierten Server, der vorgibt, der richtige SSH-Server zu sein.
  2. Automatisierte Verwaltung: Für Unternehmen oder Teams, die viele Server verwalten, ermöglicht SSHFP eine automatische Authentifizierung, da neue oder geänderte Server-Fingerabdrücke einfach in DNS aktualisiert werden können.
  3. Keine manuelle Bestätigung nötig: Normalerweise zeigt SSH beim ersten Verbindungsversuch eine Warnung an, dass der Server-Fingerabdruck bestätigt werden muss. Mit SSHFP entfällt diese Warnung, da der Fingerabdruck schon im DNS überprüft wurde.

Beispiel

Wenn ein Unternehmen einen neuen SSH-Server bereitstellt, kann es dessen öffentlichen Schlüssel-Fingerabdruck in einem SSHFP-Eintrag für die Serverdomain hinterlegen. Ein Client, der den Server über diese Domain anspricht, überprüft automatisch den Fingerabdruck gegen den DNS-Eintrag. So wird sichergestellt, dass nur der echte Server für die Verbindung zugelassen wird.

Zusammengefasst:

SSHFP-Einträge sind eine praktische Methode, SSH-Schlüssel über DNS zu verifizieren, was die Sicherheit erhöht und die manuelle Verwaltung von SSH-Schlüsseln vereinfacht. In Verbindung mit DNSSEC bieten SSHFP-Einträge eine starke Schutzmaßnahme gegen Man-in-the-Middle-Angriffe auf SSH-Verbindungen.

Fingerprint abfragen / Domain-Record-Einrichtung

Ich habe das Ganze einmal exemplarisch für unser git eingerichtet, da dies der einzige Server ist, der noch einen halbwegs offenen SSH-Port hat. Um den Fingerabdruck abzufragen, habe ich den folgenden Befehl verwendet:

ssh-keyscan -D example.com

Mit der Option -D wird der benötigte Fingerabdruck direkt ausgegeben.

Hier ist mein SSHFP-Eintrag:

git.example.com. 3600 IN SSHFP 1 1 <fingerabdruck>
git.example.com. 3600 IN SSHFP 1 2 <fingerabdruck2>

Fazit: DNSSEC und DNS-basierte Sicherheitsoptionen

Die größte, messbare Wirkung hat für mich der HTTPS-Eintrag gebracht. Ich denke, wer DNSSEC einsetzt, sollte auch einen HTTPS-Eintrag setzen und so vom schnelleren Aufruf der eigenen Seite profitieren. Die neuen DNS-Eintragstypen in AWS Route 53 – SVCB, HTTPS, TLSA und SSHFP – bieten interessante und nützliche Möglichkeiten zur Optimierung und Sicherung von Netzwerkverbindungen. Je nach Einsatzbereich können diese Einträge nicht nur die Sicherheit erhöhen, sondern auch die Performance von Diensten verbessern und die Kontrolle über Verbindungen vereinfachen. In Verbindung mit DNSSEC sind sie ein mächtiges Werkzeug für eine moderne, sichere DNS-Architektur.

aktualisiert_am 01-11-2024