DNSKEY Resource Records dienen der Propagierung öffentlicher Schlüssel durch DNS. DNSKEY Records werden im Rahmen von DNSSEC (DNS Security) verwendet und lösten 2004 die nahezu identischen KEY Resource Records ab.

Hintergrund Bearbeiten

Public-Key-Systeme gelten heute als leistungsfähige und vielfältig einsetzbare Verschlüsselungsverfahren. Der Besitzer eines Schlüssels unterzeichnet beispielsweise eine Nachricht mit dem nur ihm selbst bekannten Privaten Schlüssel. Ein Empfänger kann diese Unterschrift unter Zuhilfenahme des korrespondierenden Öffentlichen Schlüssel verifizieren und damit sicherstellen, dass die Nachricht tatsächlich vom Absender stammt und dass sie unverfälscht ist.

Ein Grundproblem von Public-Key-Systemen ist die Verteilung der Öffentlichen Schlüssel: Wie macht ein User seinen Public Key der Welt bekannt? Das hier beschriebene Verfahren verwendet DNS. Der Besitzer des Schlüssels legt diesen als DNSKEY-RR auf einem öffentlich zugängigen DNS-Server ab. Jeder, der den Public Key dieses Users benötigt, sendet eine entsprechende DNS-Anfrage. Als Antwort erhält er dann den Öffentlichen Schlüssel. Das Verfahren entspricht damit der Propagierung von IP-Adressen.

In der Praxis reicht diese Art der Propagierung aber nicht aus, da eine komplette Zone gefälscht sein kann. Der Public Key muss deshalb entweder manuell als Trusted Key in den Resolver eingebracht werden oder der zugehörige DS Resource Record in der überliegenden Zone publiziert werden. Siehe Chain of Trust.

Aufbau Bearbeiten

Ein DNSKEY-RR besteht aus den folgenden Feldern:

Label
Name des Besitzers des Schlüssels
Class
nur IN zulässig
Typ
DNSKEY
Flags
zusätzliche Angaben wie z. B. Host-, Zonen- oder Schlüsselunterzeichnungs-Schlüssel. Im Rahmen von DNSSEC werden 256=Zone und 257=Schlüssel verwendet
Protokoll
1=TLS, 2=email, 3=DNSSEC, 4=IPsec, 255=alle
Signaturalgorithmus
3 = DSA/SHA-1
5 = RSA/SHA-1
6 = DSA/SHA-1/NSEC3
7 = RSA/SHA-1/NSEC3
8 = RSA/SHA-256
10 = RSA/SHA-512
12 = GOST R 34.10-2001
13 = ECDSA/Curve P-256/SHA-256
14 = ECDSA/Curve P-384/SHA-384
15 = Ed25519 (EdDSA/Curve25519/SHA-512)[1][2]
16 = Ed448 (EdDSA/Curve448/SHAKE256)[1][2]
[3]
Schlüssel

Beispiele Bearbeiten

child.example IN DNSKEY (
                          256          ; Zonenschlüssel
                          3            ; dnssec
                          3            ; DSA-Signatur
                          BOPdJjdc/ZQWCVA/ONz6LjvugMnB2KKL3F1D2i9Gdrpi
                          rcWRKS2DfRn5KiMM2HQXBHv0ZdkFs/tmjg7rYxrN+bzB
                          NrlwfU5RMjioi67PthD07EHbZjwoZ5sKC2BZ/M596hyg
                          fx5JAvbIWBQVF+ztiuCnWCkbGvVXwsmE+odINCur+o+E
                          jA9hF06LqTviUJKqTxisQO5OHM/0ufNenzIbijJPTXbU
                          cF3vW+CMlX+AUPLSag7YnhWaEu7BLCKfg3vJVw9mtaN2
                          W3oWPRdebGUf/QfyVKXoWD6zDLByCZh4wKvpcwgAsel4
                          bO5LVe7s8qstSxqrwzmvaZ5XYOMZFbN7CXtutiswAkb0
                          pkehIYime6IRkDwWDG+14H5yriRuCDK3m7GvwxMo+ggV
                          0k3Po9LD5wWSIi1N )
example.net. IN DNSKEY (
                           257         ; Schlüsselunterzeichnungs-Schlüssel
                           3           ; DNSSEC
                           1           ; RSA-Signatur
                           AQOW4333ZLdOHLRk+3Xe6RAaCQAOMhAVJu2T
                           xqmk1Kyc13h69/wh1zhDk2jjqxsN6dVAFi16
                           CUoynd7/EfaXdcjL )

Sicherheit des Verfahrens Bearbeiten

Die Propagierung eines Öffentlichen Schlüssels per DNS ist nur dann ausreichend sicher, wenn sie über die überliegende Zone mit dem DS RR bestätigt wird. Die Propagierung durch ein X.509-Zertifikat ist noch sicherer, aber sehr viel aufwändiger und teurer.

Weblinks Bearbeiten

  • RFC 4034 – Resource Records for the DNS Security Extension. (englisch).

Einzelnachweise Bearbeiten

  1. a b RFC 8080 – Edwards-Curve Digital Security Algorithm (EdDSA) for DNSSEC. Februar 2017 (englisch).
  2. a b RFC 8032 – Edwards-Curve Digital Signature Algorithm (EdDSA). Januar 2017 (englisch).
  3. iana.org