FAQ Übersicht

DNSSEC allgemein

Was ist DNSSEC?

DNSSEC (Domain Name System Security Extensions) umfasst sicherheitsbezogene Erweiterungen des DNS-Standards. Spezifiziert wird DNSSEC u.a. in folgenden RFCs:

DNSSEC ermöglicht es, DNS-Daten (ganze Zonen und Antworten auf einzelne Anfragen) digital zu signieren. Die Signatur beruht auf Public-Key-Kryptographie, welche auf öffentlichen Schlüsseln (public key) und geheimen Schlüsseln (private key) basiert. Anhand des öffentlichen Schlüssels können solche Signaturen beim Empfänger der Daten verifiziert werden. Die jeweils übergeordneten Zonen (z.B. die zugehörige TLD-Zone oder die Root-Zone für die TLDs) können den verwendeten Schlüssel mit ihrem Schlüssel unterschreiben und auf diese Weise eine Vertrauenskette erstellen, die im Idealfall mit der Signatur der Root-Zone beginnt. Der public-Key ist öffentlich zugänglich und kann zur Verifizierung der Signatur verwendet werden. Die Signatur selbst kann nur mit Kenntnis des private-Keys erstellt werden.

DNSSEC bewirkt zwei Verbesserungen in Bezug auf die Sicherheit des DNS:

  • Quellenauthentifizierung: Bei korrekter Signierung und vorhandener Vertrauenskette ist sichergestellt, dass die Quelle der DNS-Daten den geheimen Schlüssel kennt und die Daten mit diesem Schlüssel signiert wurden. Der Empfänger weiß somit, dass der Domaininhaber oder der zuständige Provider die Daten signiert haben und die Quelle vertrauenswürdig ist.
  • Datenintegrität: Aufgrund der Signatur ist sichergestellt, dass die Daten auf dem Weg zwischen Quelle und Ziel nicht von Dritten manipuliert werden können.

Lediglich nach Kompromittierung des Schlüssels (Zugänglichkeit des privaten Schlüssels durch Dritte oder die mathematisch komplexe Kryptoanalyse der Daten bei der der private Schlüssel ermittelt wird) sind beide Vorteile nicht mehr gegeben. Aus diesem Grunde werden in regelmäßigen Abständen Schlüsselwechsel vollzogen.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:38


Warum existieren die DNSSEC-Erweiterungen?

Das DNS-System ohne DNSSEC besitzt die beiden o.g. Sicherheitsmerkmale (Quellenauthentifizierung und Datenintegrität) nicht. Es gibt zwar rudimentäre Verfahren um möglichst sicherzustellen, dass Nameserver auf ihre Anfragen eine authentische Antwort erhalten, allerdings ist deren Wirksamkeit mindestens seit Bekanntwerden der [Kaminski-Attacke] überaus fraglich. Zwar wurden die entsprechenden Verfahren (Zufalls-Query-IDs und Zufalls-Anfrage-Portnummer) verstärkt, so dass die Wahrscheinlichkeit eines erfolgreichen Angriffs reduziert wird, allerdings bietet nur eine digitale Signatur der Daten einen theoretisch fundierten und ausreichend sicheren Schutz. Die genaue Funktionsweise und die Hintergründe von Kaminskis DNS-Angriff sind beispielsweise unter http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html umfassend dargestellt.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:33


Wann hilft DNSSEC?

DNSSEC stellt sicher, dass die Quelle der DNS-Daten korrekt ist und dass die Daten während der Übertragung nicht modifiziert wurden. Es hilft also sicher zu stellen, dass z.B. die Namensauflösung im DNS korrekt durchgeführt wird und zu einem angefragten Domainnamen die korrekte IP-Adresse zurückgeliefert wird. Auch alle weiteren via DNS verbreiteten Daten (z.B. Mailexchange-Records, Domainkeys/DKIM) werden auf diese Weise vor Manipulation geschützt.

Folgendes einfache Beispiel: Geben Sie den Domainnamen Ihres Online-Banking-Portals im Browser ein, so kann DNSSEC sicherstellen, dass Ihr Rechner sich mit der korrekten, von der Bank veröffentlichten IP-Adresse für den Webserver der Banking-Portals zu verbinden versucht. Es kann nicht mehr von Dritten eine falsche IP-Adresse eingeschleust werden, hinter der sich dann eine täuschend echte Immitation des Online-Banking-Portals verbirgt. Wird von Dritten eine Manipulation versucht, so schlägt die DNSSEC Validierung fehl und das Online-Banking-Portal kann nicht erreicht werden, da sich keine verifizierbar korrekte IP-Adresse ermitteln lässt.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:36


Wann hilft DNSSEC nicht?

DNSSEC wirkt lediglich auf Basis des DNS und sichert nicht die der DNS-Anfrage vorausgehenden und darauf folgenden Kommunikationsschritte ab. Es werden z.B. keine Vertipper bei der Eingabe von Domainnamen verhindert, was ein hohes Risiko darstellt. Auch wird nach der DNS Namensauflösung nicht der Verbindungsaufbau mit der via DNS erhaltenen IP-Adresse gesichert oder verifiziert (fehlerhaftes Routing/absichtliches Manipulieren von Routen kann weiterhin zu einem falschen Webserver führen), es wird nicht sichergestellt, dass die Daten der Kommunikation mit der erhaltenen IP-Adresse geschützt werden (Aufgabe von SSL).

Randbemerkung: Es kann allerdings im DNS die Signatur des SSL-Zertifikats abgelegt werden. Wenn diese Information wiederum DNSSEC signiert ist, lässt sich beim Empfänger sicherstellen, dass der korrekte Webserver kontaktiert wurde und das dort verwendete SSL-Zertifikat gültig und korrekt ist.

DNSSEC ist also kein "Rumdum-Sicher-Paket" was die Kommunikation im Internet angeht, sondern trägt lediglich im Bereich DNS einen Teil dazu bei.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:37


Seit wann existiert DNSSEC?

DNSSEC existiert bereits seit 1997 als RFC (RFC2065, überarbeitet 1999 als RFC2535); die Spezifikation erwies sich aber nicht als praxistauglich und wurde 2005 in überarbeiteter Version fertiggestellt (RFC4033 RFC4034 und RFC4035). RFC4034-4035 erwiesen sich als problematisch, da in der damaligen Fassung das Auflisten aller Zoneneinträge möglich war, was durch die Einführung von NSEC3 (RFC5155) behoben wird. Bisher wurde DNSSEC grundsätzlich als sinnvolle und gute Idee betrachtet, aber die Komplexität und das damit einhergehende Risiko für Administrationsfehler, die zur Nicht-Erreichbarkeit von Domains führen lönnen, führte dazu, dass nur extrem wenige TLDs sich mit DNSSEC befassten oder es sogar einführten. Dies hat sich spätestens seit Bekanntwerden der von Kaminsky entdeckten Schwachstelle im Protokoll geändert.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:39


Wo wird DNSSEC bereits eingesetzt?

Inzwischen ist DNSSEC für eine Reihe von Topleveldomains produktiv verfügbar, bei anderen in Vorbereitung oder im Testbetrieb. Im Detail (Stand 05/2010) sind dies die folgenden TLDs:

ccTLDs

gTLDs

Weitere Informationen / Links zu einzelnen Projekten: http://www.dnssec.net/projects

Verfasser: Thomas Klute
Letzte Änderung: 2010-05-18 12:27


Was genau ist das von der DENIC durchgeführte DNSSEC-Testbed?

Im Rahmen des Testbeds wird DNSSEC für .de in einer Testumgebung zur Verfügung gestellt und DNSSEC signierte .de-Zonen können ihre DNSKEY-Einträge in diese Testumgebung veröffentlichen. Ziel ist es, auf Seiten der DENIC, der Domainprovider sowie der Zugangsprovider DNSSEC zu testen, die Kompatiblität von Hard- und Software zu erproben und Aufwand und Nutzen einer Produktiveinführung von DNSSEC abzuschätzen. Die DENIC führt das DNSSEC-Testbed in Verbindung mit dem BSI (Bundesamt für Sicherheit in der Informationstechnik) und dem eco (Verband der deutschen Internetwirtschaft) durch.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:46


Wie funktioniert DNSSEC?

DNSSEC fügt dem DNS weitere Arten von Einträgen (Resource-Records) hinzu, mit denen Signaturen, Schlüssel und Schlüsselverweise im DNS veröffentlicht werden können. Die Absicherung einer Zone geschieht dann durch das "Signieren" der ursprünglichen Zonendaten sowie dem Publizieren des öffentlichen Schlüssels entweder zur übergeordneten Zone oder als Eintrag in einem separaten Repository, das bei validierenden Resolvern als Vertrauensbasis hinterlegt ist. Grundsätzlich wird jeder Eintrag einer DNS-Zone mit einer entsprechenden Signatur versehen.

Stellt ein DNS-Client, der DNSSEC-Signaturen verifizieren kann (ein sogenannter "validierender Resolver") eine Anfrage an einen DNS-Server einer DNSSEC-gesicherten Zone, liefert der DNS-Server nicht nur die angefragten Informationen sondern auch deren Signatur zurück. Der validierende Resolver kann dann mit Hilfe des öffentlichen Schlüssels die Integrität der Daten und die Authentizität des DNS-Servers überprüfen.

Die verwendeten Schlüssel für die Signierung sollten regelmäßig getauscht werden, um die Sicherheit der Zone zu gewährleisten. Die Notwendigkeit eines solchen sog. Key-Rollovers ist vor allem bei kürzeren Schlüssellängen gegeben, längere Schlüssellängen sind möglich, verursachen aber größeren Rechenaufwand auf Seite der validierenden Resolver. Somit existiert ein Trade-Off zwischen Sicherheit und Rechenzeit, der durch die Unterteilung in zwei Schlüsselarten unterschiedlicher Länge entschärft wird.

Der ZSK (Zone Signing Key) hat eine kürzere Schlüssellänge und dient zum Signieren der einzelnen Zoneneinträge. Der öffentliche Teil des ZSK wird innerhalb der Zone als DNSKEY-Entry publiziert und mit dem KSK (Key Signing Key) signiert, der im Gegensatz zum ZSK eine größere Schlüssellänge besitzt. Der öffentliche Teil des KSK wird ebenfalls in der Zone als DNSKEY-Entry publiziert. Des weiteren wird für den KSK ein Hash-Wert ermittelt, der in einem DS-Record der übergeordneten Zone oder einem DLV-Repository (siehe "Was ist ein DLV?") zur Verfügung gestellt werden kann und durch den dortigen ZSK signiert wird. Auf diese Weise bildet sich eine Vertrauenskette, die im Idealfall bis zur Root-Zone reicht.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:47


Was ist eine Vertrauenskette?

Eine Vertrauenskette besteht bei DNSSEC aus einer hierarchischen Abfolge von DNSKEY-Records und DS-Records (Delegation Signer). Die Kette beginnt mit einem DNSKEY, dem der Resolver vertraut. Dieser kann entweder fest konfiguriert werden oder aus einem Repository bezogen werden, dem vertraut wird. Mit diesem DNSKEY ist auf dem Weg zur nächsten Hierarchieebene ein DS-Record signiert, der einen Hashwert des untergeordneten DNSKEYs enthält. Durch den Hashwert kann verifiziert werden, dass der von der untergeordneten Zone bezogene DNSKEY korrekt ist und die übergeordnete Zone diesen DNSKEY als vertrauenswürdig einstuft. Auf diese Weise setzt sich eine Vertrauenskette fort, bis die angefragte Ebene/Zone im DNS-Baum erreicht ist.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:47


Ist die Signierung der Root-Zone Voraussetzung für DNSSEC?

Nein, Vertauensketten können auch in Unterzonen beginnen wenn deren DNSKEYs im Resolver hinterlegt sind oder aus einem vertrauenswürdigen Repository bezogen werden. So könnte beispielsweise in der Konfiguration eines Resolvers der von der DENIC für die .de-Zone verwendete DNSKEY als vertrauenswürdig hinterlegt sein. Damit wäre für alle signierten .de Zonen und deren Subzonen eine Validierung möglich, da die Vertrauenskette bei einem DNSKEY beginnt, der als vertrauenswürdig eingestuft ist. Ein Wechsel des Schlüssels bei der DENIC würde in diesem Beispiel allerdings auch ein Update der Konfiguration des Resolvers erfordern, da er ansonsten den neuen Schlüssel nicht als vertrauenswürdig einstuft und somit keine Validierung möglich ist oder im schlimmsten Fall eine Nichterreichbarkeit von signierten Zonen entsteht. Falls die DeNic ihren DNSKEY über ein DLV-Repository verfügbar macht, ist sie selbst für die Aktualität des Schlüssels und dessen Austausch verantwortlich.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:47


Was ist eine DLV?

DLV steht für "DNSSEC Look-aside Validation" und bezeichnet ein Repository für Schlüssel, die als vertrauenswürdig eingestuft werden. Ein solches DLV-Repository kann beliebige Startpunkte im DNS-Baum als vertrauenswürdig einstufen und validierende Resolver können diese Information nutzen, wenn die Vertrauensketten nicht bis zur Root-Zone reichen, weil diese z.B. gar nicht signiert wird.

Beispiele für produktive DNSSEC-DLVs sind:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:48


Wer muss DNSSEC unterstützen, damit es funktioniert?

DNSSEC muss sowohl auf Seiten der Anbieter (Domaininhaber, Provider, Registry) als auch auf Seite des Kunden (DSL-Kunde / ISP, validierende Resolver beim ISP oder Kunden) unterstützt werden. Eine DNSSEC-signierte Zone wird nur von einem validierenden Resolver geprüft, nicht-validierende Resolver würden die DNSSEC-Informationen ignorieren bzw. fragen diese erst gar nicht an. Eine nicht signierte Zone kann logischerweise grundsätzlich nicht validiert werden.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:50


DNSSEC im Detail

Welche zusätzlichen DNS Einträge gibt es?

  • DNSKEY (DNSSEC Key): Dient zur Veröffentlichung des öffentlichen Teils eines DNSSEC-Schlüssels. Dies kann sowohl der Zone-Signing-Key als auch der Key-Signing-Key sein.
  • RRSIG (RRSET Signature): Enthält die Signatur eines DNS Resource-Record-Sets, also einer Menge von DNS-Einträgen gleichen Typs und Namens. Die Signatur kann anhand des entsprechenden DNSKEY-Eintrags überprüft werden.
  • DS (Delegation Signer): Ein von der übergeordneten Zone unterschriebener Hashwert des DNSKEY-Eintrags des Key-Signing-Keys. Dient zur Bildung einer Vertrauenskette (Chain of Trust). Der Schüsselinhaber der übergeordneten Zone signiert den Schlüssel der untergeordneten Zone. Falls der übergeordneten Zone vertraut wird, kann auch dem Schlüssel der untergeordneten Zone vertraut werden.
  • NSEC/NSEC3: Ein Eintrag mit dem die in der Zone vorhandenen Einträge verkettet werden, um auch eine signierte Antwort bei Nicht-Existenz eines Eintrags zu erhalten (was sonst nicht möglich wäre). Da die Namen bei NSEC im Klartext verkettet waren, war das Auflisten aller Einträge einer Zone möglich (Zone Walking), was durch die Einführung von Hash-Werten statt Klartext durch NSEC3 behoben wurde.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:54


Was ist ein ZSK, was ist ein KSK?

Ein ZSK (Zone-Signing-Key) ist ein DNSSEC-Schlüssel, der verwendet wird, um die Einträge innerhalb einer DNS-Zone zu signieren. Der KSK (Key-Signing-Key) ist ein DNSSEC-Schlüssel, der ausschließlich verwendet wird, um den ZSK zu signieren.

Die Schlüssellänge des ZSK ist kürzer als beim KSK, was den ZSK kryptografisch schwächer macht als den KSK. Aus diesem Grund wird der ZSK üblicherweise häufiger gewechselt als der KSK. Eine signierte Zone enthält somit mindestens einen KSK und mindestens einen ZSK, der durch den KSK signiert ist, und wiederum alle Zoneneinträge signiert.

Falls eine Vertrauenskette mit einer übergeordneten Zone gebildet werden soll, wird der öffentliche Teil des KSK durch die übergeordnete Zone signiert und die Signatur dort veröffentlicht.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:55


Ist die Unterteilung in ZSK und KSK notwendig?

Nein, grundsätzlich nicht. Eine Zonensignierung funktioniert auch nur mit einem Schlüssel ohne weitere Unterteilung in KSK und ZSK. Allerdings entspräche das Vorgehen nicht den Empfehlungen (RFC4641 DNSSEC Operational Practices) und auch nicht dem üblichen Vorgehen. Grund für die Unterteilung ist der Wunsch nach einer längeren Gültigkeit des KSK, was eine größere Schlüssellänge notwendig macht. Eine größere Schlüssellänge erhöht allerdings die Rechenzeit bei Signierung und Validierung und vergrößert die Signaturen, die mittels des DNS Protokolls ausgetauscht werden müssen. Für UDP Pakete besteht aber ab einer gewissen Größe die Gefahr, dass sie nicht von allen momentan eingesetzten Hardwarekomponenten fehlerfrei behandelt werden.

Aus diesen Gründen ist es sinnvoll, die einzelnen DNS-Einträge der Zone mit einem kürzeren Schlüssel, dem ZSK, zu signieren und nur den ZSK selbst mit dem KSK zu unterschreiben. Eine kürzere Schlüssellänge erfordert dementsprechend einen häufigeren Schlüsselwechsel. Dies ist beim ZSK weniger problematisch als beim KSK, da bei einem ZSK-Schlüsselwechsel keine neuen Informationen in der übergeordneten Zone veröffentlicht werden müssen.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:57


Warum ist ein regelmäßiger Wechsel der Schlüssel notwendig?

Wie bei allen Verschlüsselungsverfahren gibt es auch bei der im DNSSEC verwendeten Public-Key-Kryptografie Angriffsszenarien. Diese Angriffe benötigen abhängig von der Schlüssellänge eine meist immense Rechenleistung und dementsprechend viel Zeit und Geld um einen solchen Angriff durchzuführen. Daher stellt sich bei jeder Schlüssellänge nicht die Frage, ob ein Angriff Erfolg haben wird sondern lediglich wie lange es dauert und wieviele Ressourcen dafür aufgewendet werden müssen.

Aus diesen Gründen ist ein regelmäßiger Schlüsselwechsel sinnvoll obwohl nicht zwingend erforderlich.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:57


Welche Schlüssellänge ist sinnvoll?

Über sinnvolle Schlüssellängen und deren entsprechende Gültigkeitsdauer gibt es unterschiedliche Meinungen. So wird z.B. von RFC4641 (DNSSEC Operational Practices) eine Schlüssellänge zwischen 1024 und 2048 für den KSK (Gültigkeit: 1 Jahr) vorgeschlagen und eine etwas geringere (nicht mehr als 100Bit weniger) für den ZSK (Gültigkeit: 1 Monat). Der "DNSSEC Good Practices Guide" gibt eine KSK-Schlüssellänge von 1280Bit mit einer Gültigkeit von maximal 4 Jahren und eine ZSK-Schlüssellänge von 1024Bit mit einer Gültigkeit von maximal einem Monat als empfehlenswert an.

Beim ZSK sollte bzgl. der Schlüssellänge auch in Betracht gezogen werden, dass die daraus resultierenden Länge der UDP-Pakete momentan eine Größe von 512 Byte nicht überschreiten sollten, da nicht jede aktuelle Hardware mit EDNS0 (RFC2671) umgehen kann.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 11:58


Gibt es Gültigkeitszeiträume der Signaturen bei DNSSEC?

Ja, jeder RRSIG Record beinhaltet ein Feld, das angibt, bis wann die Signatur gültig sein soll. Eine Neusignierung der Zone ist vor Ablauf dieser Gültigkeit zwingend erforderlich, da die Zone ansonsten nicht mehr erfolgreich validiert werden kann. Auch sollte eine ausreichende Zeitspanne vor Ablauf der Gültigkeit neu signiert werden, damit ausreichend Zeit bleibt, auf Fehler im Signierungsprozess reagieren zu können.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:06


Welche Key-Rollover-Strategien gibt es bei DNSSEC?

RFC4641 ("DNSSEC Operational Practices") beschreibt zwei verschiedene Strategien:

Pre-Publish

In der Zone wird ein neuer DNSKEY bereits einige Zeit vor Benutzung veröffentlicht. Zu einem Umschaltzeitpunkt können dann die Signaturen des alten Keys durch jene des neuen Keys ersetzt werden. Anschließend kann der alten DNSKEY nach Ablauf der Caching-Wartezeit aus der Zone gelöscht werden. Dieses Verfahren bietet den Vorteil, dass nicht gleichzeitig mit mehreren Schlüsseln signiert werden muss, wodurch die Größe der Zonendaten deutlich erhöhen würde. Zudem ist dieses Verfahren besser für Notfall-Schlüsselwechsel geeignet, da ggf. bereits ein neuer Key veröffentlicht ist, mit dem sofort signiert werden kann.

Double-Signature

In der Zone wird ein neuer DNSKEY zugleich mit der Signierung der Zone durch diesen Schlüssel veröffentlicht. Für eine gewisse Zeit muss die Zone mit beiden Schlüsseln signiert bleiben, bevor der alte Schlüssel entfernt werden kann. Diese Verfahren erhöht die Zonengröße, da gleichzeitig mit zwei Schlüsseln signiert werden muss. Allerdings ist der Ablauf des Verfahrens weniger komplex als das Pre-Publish-Verfahren.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:06


Was ist ein RRSIG-Record?

RRSIG (RRSET Signature): Enthält die Signatur eines DNS-Resource-Record-Sets, also einer Menge von DNS-Einträgen gleichen Typs und Namens. Die Signatur kann anhand des entsprechenden DNSKEY-Eintrags überprüft werden.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:43


Was ist ein NSEC-Record?

Mithilfe von NSEC sind auch Negativ-Antworten (Eintrag x gibt es nicht) validierbar. Ohne NSEC könnten böswillig Teile eines DNS-Antwortpaketes gelöscht werden, so dass es für den Empfänger aussähe, als gäbe es den angefragten Eintrag nicht. NSEC verkettet die Einträge einer Zone in alphabetischer Reihenfolge. Beispiel: Sind Eintrag a und c in einem NSEC-Record verknüpft, kann es keinen Eintrag b geben.

Da die NSEC-Records ebenfalls durch RRSIG-Records signiert werden, ist eine DNSSEC-Validierung dieser Einträge und somit eine kryptografisch gesicherte Aussage über die Nichtexistenz eines Eintrags möglich.

Nachteil der NSEC-Verkettung ist die Möglichkeit, die Zoneneinträge aufzulisten (Zone Walking), da die Zoneneinträge im Klartext in den NSEC Records gelistet sind. Da dies üblicherweise nicht gewünscht ist, wurde mit NSEC3 eine Variante geschaffen, die dieses Problem umgeht.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:44


Was ist ein NSEC3-Record?

NSEC3 stellt eine Weiterentwicklung von NSEC dar, die das ungewünschte Auflisten kompletter Zonen (Zone Walking) umgeht, da die Einträge nicht mehr im Klartext sondern als Hash-Wert gelistet sind. Eine Anfrage nach einem nicht existenten Eintrag liefert den alphabetisch davorliegenden nächsten Eintrag der Zone zurück inklusive des Hashwertes des darauf folgenden Eintrags. Ist der Hashwert des angefragten Eintrags ungleich dem Hashwert im NSEC3 Record, so existiert der Eintrag nicht. Aus dem Hashwert kann aber nicht auf den alphabetisch folgenden Klartext-Eintrag geschlossen werden, was das Zone Walking verhindert.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:44


DNSSEC für Internetnutzer

Kommen Internetnutzer (oder deren Rechner) direkt mit DNSSEC in Berührung?

Üblicherweise verwenden Betriebssysteme die vom Zugangsprovider mitgeteilten DNS-Server oder einen Zugangsrouter, der wiederum einen DNS Proxy zur Verfügung stellt und die Anfragen an die vom Zugangsprovider mitgeteilten DNS-Server weiterleitet. Die Validierung von DNSSEC signierten DNS-Daten findet daher nicht auf dem Rechner eines Internetnutzers statt. Liefert ein vorgeschalteter validierender Resolver eine Fehlermeldung beim Auflösen eines Domainnamens, so kann dies - neben vielen anderen Gründen - an einer fehlerhaften DNSSEC-Validierung und somit an gefälschten DNS Daten liegen. Die direkte Auswirkung für den Nutzer stellt sich in der Nicht-Erreichbarkeit der Domain dar.

Jedem Internetnutzer ist es freigestellt, die DNS Server des Zugangsprovider oder aber einen eigenen Resolver zu verwenden. Dieser kann entweder auf dem Zugangsrouter oder dem benutzten Rechner selbst realisiert werden. Diese Resolver können dann DNSSEC-Antworten direkt und eigenständig validieren.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:48


Welche Browser unterstützten DNSSEC - bzw. ist das überhaupt notwendig?

Eine direkte Unterstützung für DNSSEC durch Client-Programme u.a. Browser ist nicht notwendig, allerdings ist sie durchaus möglich. Normalerweise kümmert sich das Betriebssystem um die Namensauflösung und somit auch um die Validierung von DNSSEC signierten Zonen, falls das Betriebssystem DNSSEC Validierung unterstützt. Ein DNSSEC-Icon im Browser - ähnlich wie bei SSL-gesicherten Websites - wäre allerdings durchaus wünschenswert und wird mit steigender Bedeutung und Verbreitung von DNSSEC sicherlich implementiert werden.

Da allerdings eine echte DNSSEC-Unterstützung durch das Betriebssystem noch nicht zum Standard geworden ist (erst der "Windows 7"-Nachfolger wird wohl DNSSEC validierend unterstützen), kann es für die Übergangszeit sinnvoll sein, die DNSSEC-Validierung nicht dem Betriebssystem zu überlassen.

Für den Mozilla Firefox Browser existiert z.B. ein experimentelles Plugin, das den Browser um DNSSEC-Validierung ergänzt. Zu diesem Zweck ist das Plugin allerdings auf externe validierende Resolver angewiesen.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:49


Welche Betriebssysteme unterstützen DNSSEC?

Für alle Windows-Versionen bis inkl. Windows XP gilt: sie unterstützen DNSSEC nicht. DNSSEC-Validierung kann in diesem Fall nur durch validierende Resolver des Zugangsproviders erreicht werden. Windows 7 implementiert einen nicht-validierenden aber sicherheitbewußten Resolver (non-validating security-aware stub resolver). http://blogs.technet.com/sseshad/archive/2008/10/30/dnssec-in-windows-7.aspx

Das Betriebssystem des Rechners kann bei der Anfrage angeben, ob es die DNSSEC-Erweiterungen des DNS-Protokolls versteht und auswerten kann (zu diesem Zweck wird in der Anfrage das DNSSEC OK = DO-Bit gesetzt). Dieses DO-Bit sollte idealerweise durchgängig beginnend mit der ersten Anfrage gesetzt sein. Diese Verhalten lässt sich bei Windows 7 für einzelne Zonen separat einschalten. Das Betriebssystem erkennt danach für diese Zone sowie alle hierarchisch untergeordneten Zonen nur noch Antworten als korrekt an, bei denen das AD-Flag gesetzt ist.

Dies mag für einzelne Zonen (z.B. in einem Intranet) möglich sein, nicht allerdings für übergeordnete Zonen. Würde beispielsweise DNSSEC für .de aktiviert, so würden nicht signierte .de-Domains nicht mehr korrekt aufgelöst. Somit ist DNSSEC in Windows 7 zwar vorhanden, die Verwendung ist aber wohl als nicht praktikabel zu bezeichnen.

DNSSEC-Unterstützung für Linux ist distributionsabhängig und bisher nicht per Default aktiviert. Für eine genauere Übersicht der unterstützten Betriebssysteme siehe:

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-05-18 12:35


Unterstützt Router XY DNSSEC?

Im Rahmen des DENIC-DNSSEC-Testbeds wurde vom BSI eine Routerstudie durchgeführt. Ergebnis der Studie war, dass DNSSEC von nur wenigen aktuellen Geräten vollkommen ohne Probleme unterstützt wird, allerdings ist DNSSEC dennoch in den meisten Fällen ohne Probleme nutzbar, wenn der Zugangsprovider die Validierung übernimmt.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:54


Unterstützt Software XY DNSSEC?

Wie weiter oben bereits ausgeführt, ist DNSSEC vorrangig Aufgabe der DNS-Resolver, an die das Betriebssystem die DNS-Anfragen sendet. Für Software XY ist es somit nicht von Bedeutung, ob im Hintergrund DNSSEC geprüft wird. Bei erfolgreicher DNSSEC-Validierung funktioniert alles wie bisher, bei einer fehlerhaften DNSSEC-Validierung sieht es für die Anwendung so aus, als ob die Namensauflösung fehlgeschlagen sei.

Neuerer Software, die explizit DNSSEC unterstützt oder darauf angewiesen ist, steht es natürlich frei, DNS-Abfragen selbst durchzuführen und DNSSEC-Antworten selbst zu validieren. Vorerst ist allerdings für derartige Unterscheidungen des DNS-Abfrageergebnisses keinerlei Hilfe des Betriebssystems verfügbar.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:55


Unterstützt der Zugangsprovider XY DNSSEC?

Im Rahmen des Testbeds in Deutschland werden von vielen Zugangsprovidern Tests mit validierenden Resolvern durchgeführt. Über eine Teilnahme am Testbed kann der Benutzer entscheiden, falls der Zugangsprovider ihm die IP-Adressen der validierenden Resolver zur Verfügung stellt.

Für den Produktivbetrieb sind validierende Resolver allenfalls nach Beendigung des Testbeds zu erwarten. Kunden, die selbst rekursive DNS-Server zur Namensauflösung betreiben, können diese so konfigurieren, dass sie DNSSEC-Validierung durchführen. Die Schlüssel denen explizit vertraut werden soll (Trust Anchor) können entweder manuell gepflegt oder aus einem DLV-Repository bezogen werden.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 12:57


DNSSEC für Domaininhaber

Ist ein Schutz meiner Domain mit DNSSEC wichtig?

Grundsätzlich kann eine DNSSEC-Signierung nicht schaden, da nur so sichergestellt werden kann, dass die DNS-Informationen Ihrer Domain signiert werden und vom Empfänger auf Korrektheit der Signatur geprüft werden können.

Ob eine DNSSEC-Signierung wichtig oder notwendig ist, lässt sich zum aktuellen Zeitpunkt daran entscheiden, wie hoch das Risiko eines gezielten Angriffs auf die DNS-Daten dieser Domain ist. Bietet die Domain ein Ziel für Phishing-Aktivitäten, werden dort Login-Daten von Benutzeraccounts abgefragt oder sonstige Daten eingegeben, die für Dritte von Interesse sein könnten, so ist eine DNSSEC-Signierung sicherlich sinnvoll.

Verfasser: Thomas Klute
Letzte Änderung: 2010-05-18 12:36


Kann ich nur Domains mit bestimmten Endungen (z.B. .de) per DNSSEC schützen lassen?

Nein, es ist auch möglich die Schlüssel für seine Domain zu veröffentlichen, selbst wenn die übergeordnete Zone nicht DNSSEC-signiert ist. Diese Möglichkeit wird von DLV-Repositories (DLV = DNSSEC Look-aside Validation) angeboten, in denen die Schlüssel hinterlegt werden und die von validierenden Resolvern befragt werden können. Da in DLVs aber das Hinterlegen des Schlüssels ggf. ein händischer Prozess ist, muss bei einem Schlüsselwechsel auch der Schlüssel im DLV-Repository gewechselt werden.

Eine vollautomatische Nutzung von DNSSEC für Domains aller Endungen wird nur dann möglich sein, wenn alle Registries DNSSEC unterstützen und der Domainprovider alle DNSSEC-Schnittstellen der Registries für die Schlüsselveröffentlichung verwenden. Alternativ können alle validierenden Resolver ihre Informationen aus einem DLV-Repository beziehen, was aber wiederum der Konzeption des DNS-Systems widersprechen würde, da dieses System nicht hierarchisch und dezentral organisiert ist.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:00


Kümmert sich mein Domainprovider um die DNSSEC-Signierung?

Wenn Ihr Domainprovider DNSSEC unterstützt und Sie für Ihre Domain DNSSEC-Signierung beauftragen, wird sich der Domainprovider in den meisten Fällen um Schlüsselerzeugung, Signierung der Zonendaten, Neusignierung vor Ablauf der Signaturgültigkeit sowie den Schlüsselwechsel für beide Schlüsselarten kümmern.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:04


Gibt es eine Möglichkeit, die DNSSEC-Schlüssel selbst zu verwalten?

Alternativ können Sie die Schlüssel selbst verwalten und auf Ihren eigenen Nameservern signierte Zonen veröffentlichen. Der Domainprovider erhält die fertig signierten Zonen von Ihren Nameserven. Sie müssen dem Domainprovider allerdings den öffentlichen Teil des Key-Signing-Keys zur Verfügung stellen, damit er ihn bei der entsprechenden Registry einstellen kann. Da ein Key-Signing-Key-Wechsel eine gewissen Abfolge und anschließende Wartezeiten vor dem Entfernen des alten Schlüssels erfordert, wird dieser Prozess durch die Trennung zwischen Schlüsselverwaltung und Registry-Schnittstelle auf mindestens zwei Parteien aufgeteilt, somit komplexer und fehleranfälliger. Schlüsselwechsel sind zwar nicht zwingend erforderlich, gehören aber zur gängigen Praxis im DNSSEC.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:06


Welche Abläufe sind wichtig, wenn DNSSEC-Schlüssel vom Domaininhaber verwaltet werden?

Wenn der Kunde die DNSSEC-Schlüssel selbst verwaltet, wird er an Dritte nur den öffentlichen Schlüssel herausgeben. Der Kunde muss dementsprechend seine Zonen selbst signieren muss und diese dann entweder auf seinen Nameservern veröffentlicht oder diese an seinen Domain- oder DNS-Provider weitergibt. Zusätzlich muss er seinem Domainprovider den öffentlichen Teil des Key-Signing-Keys mitteilen, damit dieser die DNSSEC-Delegation in der übergeordneten Zone durchführen kann.

Bei allen Schlüsselwechseln sollte sich der Kunde an die in RFC4641 DNSSEC Operational Practices beschriebenen Abläufe zum Schlüsselwechsel halten, da ansonsten die Gefahr besteht, Validierungsfehler zu erzeugen. Grundsätzlich ist die manuelle Betreuung von Schlüsselwechseln mit einem hohen Risiko verbunden, eine fehlerhafte Konfiguration zu erzeugen. Im Idealfall sollte der Kunde die DNSSEC-Schlüsselverwaltung sowie die Eintragung bei der Registry einem automatisierten Prozess beim DNS-Provider oder beim Domainprovider überlassen.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:07


Was kann man tun, wenn der aktueller Domainprovider eine DNSSEC-Signierung nicht unterstützt?

Es gibt zwei Komponenten die ein Domainprovider leisten kann: Erstens den DNS-Betrieb und die damit verbundene Signierung der Zonen. Diese Tätigkeit lässt sich entweder selbst übernehmen (eigene DNS-Server) oder an einen DNS-Provider auslagern, der DNSSEC unterstützt. Zweitens muss der Domainprovider den öffentlichen Teil des Key-Signing-Keys in der übergeordneten Zone veröffentlichen, vorausgesetzt diese unterstützt DNSSEC. Die DNSSEC-Schnittstellen der Registries geben überlichenweise nur dem verwaltenden Domainprovider Zugriff auf die Möglichkeit, die notwendigen DNSSEC Delegations-Informationen zu hinterlegen, so dass man für diese Tätigkeit einen Domainprovider wählen muss, der Zugriff auf die Registry-Schnittstelle hat. Im Normalfall sollte ein Provider, der bei der Registry DNSSEC-Delegationen vornehmen kann, aber auch die eigentlichen Signierung der Zonen unterstützen.

Sollte dies nicht möglich sein, bleibt ein Wechsel zu einem Provider, der DNSSEC unterstützt.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:08


Welche Abläufe sind zu beachten, wenn Domainverwaltung und DNS-Service von unterschiedlichen Dienstleistern betrieben werden?

Falls die Schlüssel vom Kunden selbst erzeugt werden, so muss jeder erzeugte Schlüssel zuerst dem DNS-Provider mitgeteilt werden, damit er diesen sowohl als DNSKEY-Record als auch für die Signierung der Zone verwendet. Sobald dies geschehen ist, kann der öffentliche Teil des Schlüssels bei der Registry für die entsprechende Zone veröffentlicht werden. Der alte Schlüssel und dessen Signaturen können nach Ablauf der Caching-Zeit (TTL) zuerst bei der Registry entfernt werden und anschließend aus der Zone selbst. Dieser Prozess wird für Key-Signing-Keys wahrscheinlich 1-2 mal pro Jahr anfallen - je nachdem wie lange ein KSK gültig sein soll.

Falls der DNS-Provider die Schlüssel erzeugt und verwaltet, muss der Kunde den öffentlichen Teil des KSKs über den Domainprovider bei der Registry veröffentlichen lassen bzw. alte Schlüssel dort entfernen. In diesem Fall ist sicherzustellen, dass der Prozess beim DNS-Provider in jedem Fall auf die Eintragungen wartet (entweder manuell oder per automatischem Test), bevor alte Schlüssel entfernt werden.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:13


DNSSEC für Registrare

Wie wird eine Zone signiert?

Es gibt verschiedene Möglichkeiten eine Zone zu signieren. Grundsätzlich sollte unterschieden werden, ob die Zone auf dem Nameserver signiert wird oder im Vorhinein erzeugt, signiert und erst anschließend auf den Nameserver übertragen wird. Eine Signierung auf dem Nameserver setzt das Vorhandensein des privaten Schlüsses auf dem Nameserver voraus, was aus Sicherheitsgründen ggf. nicht erwünscht ist.

Die einfachste Lösung besteht in der Nutzung existierender Commandline-Tools, die sowohl zur Schlüsselerzeugung als auch zur Signierung eines bestehenden Zonenfiles eingesetzt werden können. Bind bringt die entsprechenden Tools (dnssec-keygen und dnssec-signzone) mit.

Eine weitere Lösung bieten DNSSEC-Libraries, die Schlüsselerzeugung und Signierung als API für bestimmte Programmiersprachen anbieten. Es existieren Libraries u.a. für Phyton, Java, Perl, C. Eine Auflistung entsprechender Tools findet sich unter http://www.dnssec.net/software . Abschließend ist es natürlich immer möglich, die Schlüsselerzeugung und/oder Zonensignierung anhand der entsprechenden RFCs in der Programmierumgebung seiner Wahl zu entwickeln. Bestimmte Anforderungen oder Gegebenheiten können eine solche Eigenentwicklung notwendig machen. In diesem Fall kommt dem Test der erzeugten Zonensignaturen auf Korrektheit und Kompatiblität eine große Bedeutung zu.

Es wird empfohlen ("Good Practices Guide for Deploying DNSSEC"), das signierende System sowie das System zur Aufbewahrung der Schlüssel vom Netz zu trennen oder zumindest durch eine Security-Lösung abzusichern. Eine Zonensignierung direkt auf den Nameservern hat zwar durchaus Vorteile, allerdings müssen dann die privaten Schlüssel auf den jeweiligen Nameservern verfügbar sein, was aus Sicherheitsgründen vermieden werden sollte.

Alle angeführten Lösungen müssen auch eine (teil-)automatisierte Lösung für den Schlüsselwechsel realisieren, dies kann in der einfachsten Form durch entsprechende Skripte erreicht werden oder indem ein dafür vorgesehenes Tool eingesetzt wird. Eine Liste der existierenden Tools findet sich unter http://www.dnssec.net/software .

Zu beachten ist des weiteren, dass bei der KSK-Rollover-Prozedur unter Einhaltung der wichtigen zeitlichen Abstände die Publizierung der DS-Records an die übergeordnete Zone oder in ein DLV-Repository erfolgen muss. Die Entfernung des bisherigen KSKs aus der Zone darf erst dann erfolgen, wenn sichergestellt ist, dass der DS-Record des neuen Schlüssels bereits publiziert ist und er sich auch bereits unter allen noch validen gecachten DS-Einträgen auf den Resolvern befindet.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:15


Wie werden Schlüssel erzeugt?

Die Schlüsselerzeugung sollte von der von Ihnen verwendeten DNSSEC-Software geleistet werden. Eine händische Schlüsselerzeugung ist möglich, es wird aber davon abgeraten, solange man nicht über tiefergehendes Detailwissen im DNSSEC-Bereich verfügt. Grundsätzlich wird empfohlen, für DNSSEC RSA/SHA-1- oder RSA/SHA-256-Schlüssel mit entsprechender Schlüssellänge (siehe Schlüssellängen) zu erzeugen. DNSKEY-Einträge enthalten den verwendeten Algorithmus für die Schlüsselerzeugung, näheres siehe RFC4034 bzw. RFC5702 RFC4641 empfiehlt SHA-256 zu verwenden, sobald die aktuell verwendete Hardware/Software SHA-256 unterstützt.

DENIC hat sich für das .de-DNSSEC-Testbed entschieden, SHA-256 zu verwenden, um spätere Migrationsprobleme ggf. in produktivem Betrieb vorwegzunehmen. Eine zum aktuellen Zeitpunkt konservative und auf Kompatiblität fokussierte Empfehlung würde SHA-1 den Vorzug geben, und zu SHA-256 zu wechseln, sobald es flächendeckend erprobt und verfügbar ist, da SHA-1 inzwischen als anfällig betrachtet werden muss.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:16


Wie wird der DS-Eintrag publiziert?

Der Betreiber der übergeordneten Zone, in der die DS-Records publiziert werden sollen, muss eine entsprechende Möglichkeit zur Verfügung stellen. Falls die übergeordnete Zone eine TLD-Zone ist, fällt diese Zuständigkeit in den Bereich der betreibenden Registry. In den meisten Fällen wird die Möglichkeit, DS-Records für Domains zu publizieren, von den Registries zur existierenden Registry-Registrar-Schnittstelle hinzugefügt. Daher ist es abhängig von der Registry, auf welche Art und Weise DS-Records publiziert werden.

Es gibt zwei unterschiedliche Arten, der Registry die notwendigen Informationen zu übergeben: entweder es wird der DNSKEY-Eintrag übergeben, und die Registry errechnet den DS-Eintrag eigenständig aus den DNSKEY Informationen, oder die Registry gibt verschiedene mögliche DS Formate vor und belässt die Zuständigkeit für die DS-Berechnung dem Zoneninhaber.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:17


Wann werden DS-Einträge gewechselt?

Dies hängt von der Implementierung der Registry ab. Zonen-Reloads der DNSSEC-signierten TLD-Zone finden üblicherweise nicht sofort nach Änderung eines DS-Eintrags statt, sondern zu festgelegten Zeiten in festgelegten Intervallen. Für das .de-Testbed ist beispielsweise ein Zonenreload pro Tag vorgesehen.

Da bei einem KSK-Rollover auf die Veröffentlichung des DS-Entries in der TLD-Zoneg gewartet werden muss, ist es durchaus von Interesse, wann eine Registry die Einträge veröffentlicht. Eine einfache Lösung in diesem Beispiel wäre es, mindestens 24 Stunden plus Karenzzeit zu warten, damit der Reload in jedem Fall durchgeführt wird.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:18


Wie können signierte Zonen überprüft werden?

Es gibt diverse Tools, um DNSSEC-signierte Zonen zu testen. Einige davon sind auf Webseiten von Registries verfügbar, andere sind als Command-Line Tool z.B. unter Linux verfügbar.


DNSSEC-Website-Tools

DNSSEC-Commandline-Tools

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:19


Welche Debug-Möglichkeiten gibt es?

DNSSEC-Online Tests bieten eine erste Möglichkeit Fehlern auf die Spur zu kommen. So bietet http://dnscheck.iis.se/ eine detailierte Ausgabe von Testergebnisse. Allerdings werden dort die für das .de DNSSEC Testbed bereitgestellten DNSSEC .de Nameserver nicht einbezogen, so dass die Vertrauenskette nicht bis in die .de Zone fortgesetzt werden kann.

Für eine manuelle und detailierte Untersuchung bieten sich Command-Line Tools an. Dig und drill verfügen über Debug-Level-Einstellungen mit denen die DNSSEC-Auflösung und -Validierung schrittweise nachvollzogen werden kann:

Beispiele (Dig):

Hinweis: Einige Beispiele verwenden die DNSSEC signierte Zone dnssec-faq.de unter der diese FAQ zu erreichen ist.

  • Abfrage von Zoneneinträgen inkl. DNSSEC Signierung. Falls die Domain DNSSEC signiert ist, werden auch RRSIG, NSEC und DNSKEY Records ausgegeben: 'dig dnssec-faq.de. any'
  • Abfrage von DS-Einträgen in der übergeordneten Zone: 'dig @a.nic.de -t DS dnssec-faq.de'
    Während des .de DNSSEC Testbeds muss an dieser Stelle ein .de Nameserver des Testbeds befragt werden:
    'dig @auth-fra.dnssec.denic.de -t DS dnssec-faq.de.'

Beispiele (Drill):

  • Verfolgen der Signaturkette einer Domain bis zu einem ggf. vertrauenswürdigen Schlüssel: 'drill -DS dnssey-faq.de'
    Während des .de DNSSEC Testbeds enthalten die per DNS veröffentlichten .de Nameserver keine DS Records. Dementsprechend findet Drill bei Frage nach den DS Records für dnssec-faq.de keinen Einträge und bricht die Verfolgung ab. Drill verwendet zur Abfrage der Daten die für das Betriebssystem eingetragenen DNS Resolver. Falls diese Resolver zur Verwendung des .de DNSSEC Testbeds konfiguriert sind, ist eine Verfolgung der Signierung bis zu .de möglich.
  • Verfolgen der Signaturkette in voll funktionalen DNSSEC Deployments: 'drill -DS dnssec.se'
    Drill kann in diesem Fall die Signaturen bis zu .se verfolgen. Die public keys für .se müssten für eine vollständige Validierung explizit als vertraute Schlüssel hinterlegt werden.
  • Erstellen eines trusted-Key files für drill:
    Achtung: Das format der Datei unterscheidet sich z.B. vom Format der für Bind verwendeten trusted keys. Auf exakte Einhaltung des Formats ist zu achten, da drill ansonsten angibt, keine trusted-keys in der Datei zu finden.
    Format: 'zone. IN DNSKEY 257 3 5 key', wobei keine Zeilenumbrüche erlaubt sind.
    Beispiel für .se:
    se. IN DNSKEY 257 3 5 AwEAAbaxTum9L7z1DmPiXPk0QZ2/qUM3to210Caey/ycZuvQ8Mh/dgGpwBmyZB9xZSkaCLa2Mw6pmDLrjK9hWOffq5PXRVm9RrcA/eIEBEvbQzkY5sFkWAczNAs58Oscxi+/Gd5KfuVi3lJpYgJwwa2JB4doZ00IXywcCn0VTz0Hsl/lqpA2Bqj+e+ATzA5hWyiNyHPjiYvyMCkSXTiGgFVVuG8H3N6Us8uSABuO2UoFQeQi6YikIiCbf1FfCzr4vBIRXW6MaDs8kqAAadKjLk3i39dviL/YeyGUvq9Dan9PsvkwQejKN/7J0yCr2nYXfwGGCHkcBKkagv79EaRlZigUCp8=

Verfasser: Thomas Klute
Letzte Änderung: 2010-05-18 22:03


Wann ist ein Notfall-Rollover notwendig?

Sollte sich herausstellen, dass ein Angriff auf eine Zone stattfindet, bei der offenbar korrekt signierte aber gefälschte Daten in Umlauf gebracht werden, ist von einer öffentlichen Kenntnis der verwendeten Schlüssel auszugehen. Auch wenn ein Schlüssel verwendet wurde, dessen privater Teil aus anderen Gründen öffentlich bekannt ist, muss ein sofortiger Schlüsselwechsel erfolgen. Hierbei sind allerdings - wie bei allen Rollover-Prozeduren - sowohl die zeitliche Abfolge als auch Wartezeiten für Veröffentlichung und Cache-Timeouts zu beachten. Eine vorschnelle Löschung alter Signaturen kann zu einer Nichterreichbarkeit der Zone für neue Besucher führen. Für Besucher denen bereits gefälschte DNS-Daten ausgeliefert wurden, ist die gefälschte Zone solange gültig, bis die Einträge im Cache des validierenden Resolvers ungültig geworden sind.

Ein Notfall-Keyrollover kann durch Verwendung eines "pre-publish rollover"-Verfahrens beschleunigt werden, wenn bereits ein neuer Schlüssel veröffentlicht ist aber noch nicht für die Signierung verwendet wird. Allerdings ist es denkbar, dass - je nachdem durch welche Sicherheitslücke die privaten Schlüssel bekannt geworden sind - auch der private Teil des neuen Schlüssels bereits bekannt ist.

Der sicherste Weg besteht in der Erzeugung von neuen Schlüsseln auf einem unabhängigen neuen System und der anschließenden Verwendung dieser neuen Schlüssel im Rahmen eines koordinierten Key-Rollovers.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:21


Wie veröffentlicht man DS-Records in einem DLV Repository?

Dies ist vom DLV-Repository abhängig. Einträge in das DLV-Repository der ISC können per Webinterface von Hand durchgeführt werden. Der mitgeteilte DNSKEY-Eintrag wird angenommen und zur Sicherstellung der Kontrolle der Zone wird von ISC ein DNS-TXT-Eintrag erzeugt, den der Zonenadiministrator in der Zone veröffentlichen muss. Sobald das DLV-Repository die Zone erfolgreich auf diesen Eintrag testet, wird sie aufgenommen. Der TXT-Eintrag kann anschließend wieder gelöscht werden.

Weitere Informationen:

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:22


Wie funktioniert die DNSSEC-Schnittstelle der DENIC?

Diese Information ist Registraren der DENIC vorbehalten und kann dort erfragt werden.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:23


Welche DNSSEC-Tools und -Libraries gibt es, um DNSSEC zu implementieren?

Eine gute Sammlung vorhandener Tools findet sich unter: https://www.dnssec-deployment.org/wiki/index.php/Tools_and_Resources

Exemplarisch seien drei Tools/Libraries hier genannt:

Bind 9

Die aktuelle Version des Bind von ISC liefert Tools für DNSSEC-Schlüsselgenerierung und Zonen-Signierung mit.

Command-Line-Interface

ZKT (OpenSource-DNSSEC-Tools)

Command-Line-Interface, Cron-Automatisierung für Re-Signing der Zonendaten

Verisign jDNSSEC-Tools

Auf Java basierende Library, baut das aus Bind bekannte Command-Line-Interface nach.

Der Quellcode kann als Basis für eine Integration in die eigene Zonengenerierung und Signierung dienen, allerdings ist der zu betreibende Aufwand im Vergleich zu Command-Line-Tools ungleich höher.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:24


DNSSEC für Zugangsprovider

Wie installiert man einen validierenden Resolver?

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:25


Was passiert im Falle einer fehlerhaften DNSSEC-signierten Zone?

Ein validierender Resolver wird bei einer fehlerhaften Validierung SERVFAIL zurückliefern. Diese Antwort ist nicht DNSSEC spezifisch und kann in vielen anderen Fällen ebenfalls zurückgeliefert werden, allerdings gibt es aktuell für fehlgeschlagene DNSSEC Validierung keine sinnvollere Antwort. SERVFAIL bedeutet, dass die Anfrage aufgrund eines Serverproblems nicht beantwortet werden konnte. Jegliche Software, die diese DNS Antwort erhält, wird verstehen, dass die Namensauflösung aufgrund eines Fehlers gescheitert ist. Vor allem erhält sie keine Antwort derart: Die IP-Adresse lautet a.b.c.d, aber DNSSEC konnte nicht validiert werden. SERVFAIL stellt sicher, dass keinerlei Antwortdaten enthalten sind, wenn die Validierung fehlschlägt.

Für den Benutzer dürfte das Ergebnis in den meisten Fällen so aussehen, als ob die Domain nicht existiert, was aber im Hintergrund daran liegt, dass die Namensauflösung nicht durchgeführt werden kann. Diese strikte Art der Fehlerbehandlung ist Gegenstand von Diskussionen, allgemein wird aber SERVFAIL als sinnvolle Antwort gesehen, solange nicht im DNS Protokoll eine weitere spezifischere Fehlermeldung eingeführt wurde und flächendeckend unterstützt wird.

Einer Software, welche die Validierung selbst durchführt, ist es natürlich möglich und freigestellt, selbst darauf zu reagieren und dem Benutzer eine andersartige Fehlermeldung anzuzeigen.

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:26


Wie vollzieht man die Validierung einer bestimmten DNS-Anfrage nach?

Siehe "Welche Debug-Möglichkeiten gibt es?"

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:27


Wie nutzt man das DNSSEC-Testbed der DENIC?

Verfasser: Thomas Klute
Letzte Änderung: 2010-04-29 13:27


Welche Möglichkeiten gibt es, während der DNSSEC-Testphase der DENIC, DNSSEC-Validierungsfehler zu beheben?

Die einfachste Möglichkeit ist das vorübergehende Abschalten der Validierung im Resolver, falls der Resolver lediglich zum Test eingesetzt wird. Wird der Resolver im Produktivbetrieb eingesetzt, ist zu klären, welche Zonen von der Problematik betroffen sind und welche Auswirkungen dies für die Nutzer hat. Eine Nichterreichbarkeit der .de Zone hätte deutlich größere Auswirkungen als Probleme bei der Validierung einzelner .de-Domains.

Grundsätzlich kann der Fehler mit Hilfe von DNSSEC-Debugging-Tools (dig, drill, o.ae.) genauer eingegrenzt und behoben werden.

Verfasser: Thomas Klute
Letzte Änderung: 2010-05-18 12:40