Schlüsselverwaltung DNSSEC

http://tools.ietf.org/html/draft-morris-dnsop-dnssec-key-timing-02

KSK – Double signature

Man ist immer vom Parent abhängig. Man kann nicht beeinflussen, wann der Parent den DS Record ändert. Der KSK wird nur für eine Signatur verwendet (über das DNSKEY RRset). Beides, der Schlüssel und die Signatur werden zusammen übertragen. Die Herausforderung ist es, dass dem KSK vertraut wird. Dies wird durch den DS record in der Parent-Zone sichergestellt.

KSK muss 1x jährlich erneuert werden.

  1. Einige Tage vor Ablauf des alten Schlüssels einen neuen KSK erzeugen und in Zone einfügen. Alle DNSKEY Records werden von jedem aktiven KSK signiert.
  2. Abwarten bis Schlüssel bei allen validierenden Resolvern angekommen ist (Propagation Delay von paar Minuten und TTL DNSKEY) -> also insgesamt 70 Minuten.
  3. Jetzt kann man den alten DS-Record in der Parent-Zone (nic.at) durch den neuen DS-Record ersetzen
  4. Abwarten bis der neue DS-Record bei allen validierenden Resolvern angekommen ist (Propagation Delay nic.at von mehreren Stunden und TTL DS-Record) -> ca. 12 Stunden
  5. Der alte KSK kann zusammen mit seinen Signaturen aus der Zone entfernt werden.
Schritt Beschreibung Command
Schritt 1 Die Zone wurde mit KSK1 und ZSK1 signiert
Schritt 2 Herausfinden der TTL des DS Record in der Parent-Zone des KSK1 (3h bei nic.at)
Schritt 3 Generieren des neuen Schlüssel der hinzugefügt wird, KSK2
Schritt 4 Re-Sign der Zone mit KSK1, KSK2 und ZSK1
Schritt 5 Das neue DS-Record Set an den Owner der Parent Zone geben. Der Owner der Parent-Zone muss das bestehende DS Set mit dem neuen ersetzen. (Das neue Set besteht aus den zwei neuen Hash-Werten SHA1 und SHA256)
Schritt 6 Nachdem der Parent den Record geupdatet hat, muss man den DS_TTL Wert lang warten.
Schritt 7 Den alten KSK kann man entfernen. Nachdem die Zeit in DS_TTL abgelaufen ist, kann man die Zone mit KSK2 und ZSK1 resignen.

 

ZSK – Pre-Publish (beste von 3 verschiedenen Methoden)

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.

Der Trick dieser Methode ist, dass der neue DNSKEY vor der aktiven Nutzung im DNSKEY-Set der Zone hinzugefügt wird. Wenn garantiert werden kann, dass alle DNS-Resolver sowohl den neuen wie auch den alten DNSKEY im Cache haben, wird der aktive ZSK zum signieren geändert. Der alte DNSKEY wird erst aus der Zone entfernt, nachdem Signaturen vom alten ZSK aus den Caches abgelaufen sind.

  1. Einige Tage vor Ablauf des alten Schlüssels einen neuen ZSK erzeugen und in die Zone einfügen.
  2. DNSKEY RRset mit dem aktuellen KSK neu signieren. Achtung: Der neue ZSK wird noch nicht zum signieren verwendet.
  3. Abwarten bis jeder validierende Resolver den neuen ZSK hat. (Propagation Delay 15 Min + TTL DNSKEY 1h) = 75 Minuten.
  4. Zone mit dem neuen ZSK neu signieren. Der alte ZSK wird nicht mehr zum Signieren der Zone verwendet, bleibt aber noch in der Zone.
  5. Der alte ZSK muss so lange in der Zone bleiben, wie RRSig Records von diesem noch im Umlauf sind. TTLsig von 24h + paar Minuten für Resign und Propagation Delay
  6. Alten ZSK entfernen und Zone mit KSK und neuem ZSK signieren.
Schritt Beschreibung Command
Schritt 1 Die Zone wurde mit KSK1 und ZSK1 signiert.
Schritt 2 Generieren des neuen Schlüssels, ZSK2
Schritt 3 Herausfinden des TTL-Werts des DNSKEY RRset in der Zone (DNSKEY_TTL) und der größten TTL in der Zone (MaxZone_TTL)
Schritt 4 Hinzufügen des neuen Schlüssels ZSK2 zur Zone. Anschließend die Zone mit KSK1 und ZSK1 signieren. Achtung: ZSK2 wird noch nicht zum Signieren der Zone verwendet!
Schritt 5 Nach dem re-signing muss die Zeit des DNSKEY_TTL abgewartet werden.
Schritt 6 Nachdem die Zeit von DNSKEY_TTL abgelaufen ist, kann die Zone mit ZSK2 neu signiert werden. Achtung: ZSK1 wird nicht zum Signieren der Zone verwendet!
Schritt 7 Warten der Zeit von MaxZone_TTL
Schritt 8 ZSK1 entfernen und Zone mit KSK1 und ZSK2 neu signieren.

 

Veröffentlicht unter DNSSEC