RRSIG Resource Record
Mit RRSIG Resource Record bzw. Signature Resource Record können im Rahmen von DNSSEC (DNS Security) beliebige Resource Records digital unterschrieben werden. Der RRSIG-Typ löste 2004 den nahezu identischen SIG Resource Record ab.
Hintergrund
Ein Benutzer, der auf einen DNS-Request eine Antwort erhält (z. B. eine IP-Adresse), kann nicht sicher sein, dass die Antwort auch wirklich von einem regulären Nameserver stammt und dass sie nicht auf dem Transportweg verfälscht wurde. Die Lösung ist, Resource Records digital zu unterschreiben.
Eine Digitale Unterschrift setzt ein Public-Key-Verfahren voraus. Der Nameserver, der als Master für einen DNS-Eintrag autoritativ ist, unterschreibt diesen mit seinem Privaten Schlüssel. Resolver können die digitale Unterschrift jederzeit validieren, sofern sie den öffentlichen Schlüssel der Zone kennen.
Aufbau
Ein RRSIG Resource Record besteht aus den folgenden Feldern:
- Name
- des digital unterschriebenen RRs
- Aktuelle TTL
- gibt an, wie lange dieser Eintrag im Cache gehalten werden darf
- Klasse
- zu der der signierte RR gehört
- RRSIG
- RR Typ um den es sich handelt (Typ 46)
- Typ
- des unterschriebenen RR – z. B. A, NS, SOA
- Verschlüsselungsalgorithmus
- (1=RSA/MD5,2=Diffie-Hellman,3=DSA)[1]
- Anzahl der Namenskomponenten
- zur Wildcard-Auflösung siehe RFC 2535
- TTL
- zum Zeitpunkt der Unterschrift
- Endzeitpunkt
- Datum bis zu dem die Unterschrift gültig ist
- Anfangszeitpunkt
- Datum ab dem die Unterschrift gültig ist
- eindeutige Nummer
- identifiziert den unterzeichnenden DNSKEY, um zwischen mehreren Signaturen zu unterscheiden (engl. key tag)
- Name des Unterzeichners (Zone)
- eigentliche Unterschrift (Base64)
Beispiel
In diesem Beispiel wird ein A-RR digital unterschrieben:
www.child.example. 1285 A 1.2.3.15 www.child.example. 1285 IN ; Klasse zu der der RR gehört RRSIG ; RR ist vom Typ RRSIG A ; Signierter Typ ist A 3 ; DSA-Encryption 3 ; Name hat 3 Komponenten 1285 ; Original-TTL ( 20040327122207 ; Endzeitpunkt 20040226122207 ; Anfangszeitpunkt 22004 ; eindeutige Nummer/Key Tag child.example. ; Name des Unterzeichners BMTLR80WnKndatr77...BtprR9SLKoZUiPWX ; Hash )