Zum Hauptinhalt springen

2. Der DNSKEY-Ressourceneintrag (The DNSKEY Resource Record)

DNSSEC verwendet Public-Key-Kryptographie (public key cryptography), um DNS-Ressourceneintragssätze (resource record sets, RRsets) zu signieren und zu authentifizieren. Die öffentlichen Schlüssel (public keys) werden in DNSKEY-Ressourceneinträgen gespeichert und im DNSSEC-Authentifizierungsprozess verwendet, der in [RFC4035] beschrieben ist: Eine Zone signiert ihre autoritativen RRsets (authoritative RRsets) mit einem privaten Schlüssel (private key) und speichert den entsprechenden öffentlichen Schlüssel in einem DNSKEY RR. Ein Resolver kann dann den öffentlichen Schlüssel verwenden, um Signaturen zu validieren, die die RRsets in der Zone abdecken, und sie somit zu authentifizieren.

Der DNSKEY RR ist nicht als Eintrag zum Speichern beliebiger öffentlicher Schlüssel gedacht und DARF NICHT zum Speichern von Zertifikaten oder öffentlichen Schlüsseln verwendet werden, die nicht direkt mit der DNS-Infrastruktur zusammenhängen.

Der Type-Wert für den DNSKEY RR-Typ ist 48.

Der DNSKEY RR ist klassenunabhängig (class independent).

Der DNSKEY RR hat keine besonderen TTL-Anforderungen.

2.1. DNSKEY RDATA Wire Format

Das RDATA für einen DNSKEY RR besteht aus einem 2-Oktett-Flags-Feld, einem 1-Oktett-Protocol-Feld, einem 1-Oktett-Algorithm-Feld und dem Public Key-Feld.

                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Protocol | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
/ Public Key /
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.1.1. Das Flags-Feld (The Flags Field)

Bit 7 des Flags-Feldes ist das Zone Key-Flag. Wenn Bit 7 den Wert 1 hat, enthält der DNSKEY-Eintrag einen DNS-Zonenschlüssel (DNS zone key), und der Besitzername (owner name) des DNSKEY RR MUSS der Name der Zone sein. Wenn Bit 7 den Wert 0 hat, enthält der DNSKEY-Eintrag einen anderen Typ von DNS-öffentlichem Schlüssel und DARF NICHT verwendet werden, um RRSIG zu verifizieren, die RRsets abdecken.

Bit 15 des Flags-Feldes ist das Secure Entry Point-Flag, das in [RFC3757] beschrieben ist. Wenn Bit 15 den Wert 1 hat, enthält der DNSKEY-Eintrag einen Schlüssel, der als sicherer Einstiegspunkt (secure entry point) verwendet werden soll. Dieses Flag ist nur als Hinweis für Zonensignierungs- oder Debugging-Software bezüglich der beabsichtigten Verwendung dieses DNSKEY-Eintrags gedacht. Validierer (validators) DÜRFEN ihr Verhalten während des Signaturverifizierungsprozesses nicht basierend auf der Einstellung dieses Bits ändern. Dies bedeutet auch, dass für einen DNSKEY RR mit gesetztem SEP-Bit, um legitim Signaturen zu erzeugen, auch das Zone Key-Flag gesetzt sein muss. Ein DNSKEY RR mit gesetztem SEP und nicht gesetztem Zone Key-Flag DARF NICHT verwendet werden, um RRSIG zu verifizieren, die RRsets abdecken.

Die Bits 0-6 und Bits 8-14 sind reserviert. Diese Bits MÜSSEN beim Erstellen des DNSKEY RR den Wert 0 haben und MÜSSEN beim Empfang ignoriert werden.

2.1.2. Das Protocol-Feld (The Protocol Field)

Das Protocol-Feld MUSS den Wert 3 haben, und wenn sich während der Signaturverifizierung herausstellt, dass der DNSKEY RR einen anderen Wert als 3 hat, dann MUSS der DNSKEY RR als ungültig behandelt werden.

2.1.3. Das Algorithm-Feld (The Algorithm Field)

Das Algorithm-Feld identifiziert den kryptographischen Algorithmus des öffentlichen Schlüssels und bestimmt das Format des Public Key-Feldes. Eine Liste der DNSSEC-Algorithmustypen befindet sich in Anhang A.1.

2.1.4. Das Public Key-Feld (The Public Key Field)

Das Public Key-Feld enthält das Material des öffentlichen Schlüssels (public key material). Das Format hängt vom Algorithmus des gespeicherten Schlüssels ab und wird in einem separaten Dokument beschrieben.

2.1.5. Hinweise zum DNSKEY RDATA Design (Notes on DNSKEY RDATA Design)

Das Protocol-Feld hat immer den Wert 3, wird aber aus Gründen der Rückwärtskompatibilität mit den ursprünglichen Versionen des KEY-Eintrags beibehalten.

2.2. DNSKEY RR Präsentationsformat (The DNSKEY RR Presentation Format)

Das Präsentationsformat des RDATA-Teils ist wie folgt.

Das Flag-Feld MUSS als vorzeichenlose Dezimalzahl dargestellt werden. Unter Berücksichtigung der derzeit definierten Flags sind die möglichen Werte 0, 256 und 257.

Das Protocol-Feld MUSS als vorzeichenlose Dezimalzahl mit dem Wert 3 dargestellt werden.

Das Algorithm-Feld MUSS entweder als vorzeichenlose Dezimalzahl oder als Algorithmus-Mnemonik (algorithm mnemonic) dargestellt werden, wie in Anhang A.1 spezifiziert.

Das Public Key-Feld MUSS als Base64-Kodierung des öffentlichen Schlüssels dargestellt werden. Leerzeichen können im Base64-Text enthalten sein. Für eine Definition der Base64-Kodierung siehe [RFC3548].

2.3. DNSKEY RR Beispiel (DNSKEY RR Example)

Der folgende DNSKEY RR speichert den DNS-Zonenschlüssel für example.com.

example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
Cbl+BBZH4b/0PY1kxkmvHjcZc8no
kfzj31GajIQKY+5CptLr3buXA10h
WqTkF7H6RfoRqXQeogmMHfpftf6z
Mv1LyBUgia7za6ZEzOJBOztyvhjL
742iU/TpPSEDhm2SNKLijfUppn1U
aNvv4w== )

Die ersten vier Textfelder geben den Besitzernamen, TTL, Klasse und RR-Typ (DNSKEY) an. Der Wert 256 zeigt an, dass das Zone Key-Bit (Bit 7) des Flags-Feldes den Wert 1 hat. Der Wert 3 ist der feste Protocol-Wert. Der Wert 5 gibt den Public-Key-Algorithmus an. Anhang A.1 identifiziert Algorithmustyp 5 als RSA/SHA1 und zeigt an, dass das Format des RSA/SHA1 Public Key-Feldes in [RFC3110] definiert ist. Der verbleibende Text ist die Base64-Kodierung des öffentlichen Schlüssels.


Navigation verwandter Kapitel: