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
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
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)
16 = Ed448 (EdDSA/Curve448/SHAKE256)
- Schlüssel
Beispiele
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
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
- RFC – Resource Records for the DNS Security Extension. (englisch).