nicuhu
Goto Top

DNSSEC - KSK und ZSK

Hallo zusammen

Ich habe bereits ein Thema eröffnet zum Thema DNSSEC, nun wurde mir gesagt ich müsse ein neues Thema eröffnen da dieses OffTopic sei.

Nun auf anraten von euch habe ich mir noch die letzten Wochen gründlich mit dem Thema DNSSEC vorallem dem KSK und ZSK auseinandergesetzt. Ich habe die folgenden Artikel durchgelesen:

https://de.wikipedia.org/wiki/Domain_Name_System_Security_Extensions#Cha ...
https://www.heise.de/ct/artikel/Domain-Name-System-absichern-mit-DNSSEC- ...

Ich habe zwar viele Infos gefunden jedoch irritieren mich diverse gefenden Informationen immer mehr und zwar zum KSK und ZSK.

Das mir mir klar:
Der ZSK signiert nur DNSKEYs und der KSK signiert alle RRSIGs. KSK und ZSK besitzten jeweils ein Schlüsselpaar bestehend aus oeffentlichem Schlüssel wie auch privatem Schlüssel.

Was ich nicht verstehe, nicht sicher bin:

ZSK ist der private Schlüssel und signiert jeden meiner einzelnen DNS-Records (A, AAAA, NS) und der was ist die Aufgabe vom DNSKEY unter ZKS? Diese Informationen werden in meiner Zonendatei von ns1.meinedomain.ch hochgeladen.

KSK ist der private Key und ist die Kopie vom ZKS, und signiert den ZSK und wird in der übergeordneten Zone verwaltet zum Beispiel ".ch". Der öffentliche Schlüssel vom KSK befindet sich also auch in der übergeordneten domain ".ch" und ist dafür verantwortlich, dass DNS-Resolver die privaten RRSIGs von der meinedomain.ch validieren können richtig?

Wie ist diese Grafik von heise zu verstehen? Sind also beide Zonen identisch in der "heise.de" + ".de" Zone sind die öffentichen (DNSKEY) wie auch privaten (RRSIG) der KSK und ZSK Schlüssel hinterlegt?! Der ZSK besitzt ja ein Schlüsselpaar wie auch der KSK... Möchte einfach kurz gesagt wissen wer welche Schlüssel wofür wo einsetzt.


Gruss
Nicolas

Content-ID: 436768

Url: https://administrator.de/contentid/436768

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

139374
139374 04.04.2019 aktualisiert um 17:33:50 Uhr
Goto Top
Moin.
Zitat von @nicuhu:
Das mir mir klar:
Der ZSK signiert nur DNSKEYs
Nein, der private Teil des ZSK signiert RRSETs (Blöcke mehrerer zusammengefasster Records)
und der KSK signiert alle RRSIGs.
Nein, der KSK signiert den öffentlichen Part des ZSK (DNSKEY)
KSK und ZSK besitzten jeweils ein Schlüsselpaar bestehend aus oeffentlichem Schlüssel wie auch privatem Schlüssel.
Rischtisch. Der Grundstock eines asymetrischen Public Key Verfahrens face-big-smile.
Was ich nicht verstehe, nicht sicher bin:

ZSK ist der private Schlüssel und signiert jeden meiner einzelnen DNS-Records (A, AAAA, NS)
Nein, der ZSK signiert sogenannte RRSETs, also zusammengefasste Einträge wie z.b alle A Records eines Labels kommen in ein RRSET oder alle CNAME in ein RRSET usw. Natürlich kann ein RRSET auch nur aus einem Eintrag Record bestehen wenn nicht mehr da sind. Das macht man deswegen so um den entstehenden Traffic zu minimieren damit der Resolver eben nicht für jeden einzelnen Record die Signatur prüfen muss.

und der was ist die Aufgabe vom DNSKEY unter ZKS? Diese Informationen werden in meiner Zonendatei von ns1.meinedomain.ch hochgeladen.
Der DNSKEY des ZSK ist der öffentliche Teil des Schlüssels. Den brauchen die Resolver ja zum validieren der RRSETs.

KSK ist der private Key und ist die Kopie vom ZKS,
Nein, der private teil des KSK signiert den öffentlichen Part des ZSK um dessen unversehrtheit sicherzustellen.

und signiert den ZSK und wird in der übergeordneten Zone verwaltet zum Beispiel ".ch".
Nein, um Gottes Willen , nein.
Der öffentliche Schlüssel vom KSK befindet sich also auch in der übergeordneten domain ".ch" und ist dafür verantwortlich, dass DNS-Resolver die privaten RRSIGs von der meinedomain.ch validieren können richtig?
Nein. Die übergeordnete Zone erhält nur einen Hash des öffentlichen Teils des KSK der Child-Zone und dieser wird in der Parent-Zone als sogenannter DS-Record gespeichert.
Ein Resolver vergleicht nun den Hash der Parent-Zone (DS-Record) mit dem Hash aus dem Public-KSK der Child-Zone, sind beide gleich kann der Resolver davon ausgehen das er allen Records der Child-Zone vertrauen kann.

Der Grund warum es einen KSK gibt ist folgender: Sollte ein ZSK kompromitiert sein ist es viel leichter diesen auszutauschen das man selbst als Betreiber der Child-Zone nur einen neuen ZSK mit seinem KSK signieren muss und die ganze Zone ist wieder für die Parent-Zone gültig da diese ja nur den Hash des öffentlichen KSK der Child-Zone in einem DS-Record abgelegt hat und der KSK hat sich ja nicht geändert.
Hätte man keinen KSK müsste man der Parent-Zone imer seinen neuen Hash mitteilen wenn ein Schlüssel kompromitiert wäre und wenn das nicht richtig gemacht ist Ärger vorprogrammiert. Deswegen ist der KSK einer Zone meist größer und sollte unter besonderem Schutz stehen.

Ich halte mich immer an diese sehr anschauliche Darstellung
https://www.cloudflare.com/dns/dnssec/how-dnssec-works/

Meines Erachtens sehr klar geschrieben und auf die essentiellen Teile zum Verstehen des Verfahrens reduziert.
nicuhu
nicuhu 14.04.2019 aktualisiert um 14:04:25 Uhr
Goto Top
Hallo und danke für deine Antwort und entschuldige die verzögerte Antwort. face-smile Musste mir das erstmals genau durchlesen. Deine ganzen "Nein" zeige, ich habe nicht viel verstanden von der Sache leider.

Zitat von @139374:

Moin.
Zitat von @nicuhu:
Das mir mir klar:
Der ZSK signiert nur DNSKEYs
Nein, der private Teil des ZSK signiert RRSETs (Blöcke mehrerer zusammengefasster Records)
Also ja der private Schlüssel vom ZSK signiert die Records in meiner eigenen Zone. Der Schlüssel liegt bei mir in meiner Zonendatei.

und der KSK signiert alle RRSIGs.
Nein, der KSK signiert den öffentlichen Part des ZSK (DNSKEY)
Ist damit nun der private oder öffentliche KSK gemeint, meine Vermutung liegt beim privaten KSK Schlüssel? Der KSK ist ja eine Kopie vom ZSK und davon existieren ja auch zwei Schlüssel. Wozu dient eigentlich der öffentliche KSK-Schlüssel wenn der Private KSK Schlüssel den öffentlichen ZSK signiert? Hoffe ich irriere dich nicht zu sehr face-smile

Was ich nicht verstehe, nicht sicher bin:

ZSK ist der private Schlüssel und signiert jeden meiner einzelnen DNS-Records (A, AAAA, NS)
Nein, der ZSK signiert sogenannte RRSETs, also zusammengefasste Einträge wie z.b alle A Records eines Labels kommen in ein RRSET oder alle CNAME in ein RRSET usw. Natürlich kann ein RRSET auch nur aus einem Eintrag Record bestehen wenn nicht mehr da sind. Das macht man deswegen so um den entstehenden Traffic zu minimieren damit der Resolver eben nicht für jeden einzelnen Record die Signatur prüfen muss.

Okay! Wenn ich nicht will, dass meine Schlüssel aufeinmal ablaufen kann ich also 2 RR-Sets mit unterschiedlichen Schlüssel erstellen mit den gleichen A,AAAA, etc. Records? Verstehe! face-smile


und der was ist die Aufgabe vom DNSKEY unter ZKS? Diese Informationen werden in meiner Zonendatei von ns1.meinedomain.ch hochgeladen.
Der DNSKEY des ZSK ist der öffentliche Teil des Schlüssels. Den brauchen die Resolver ja zum validieren der RRSETs.

Existiert dazu nicht bereits der Private-Schlüssel des KSK-Schlüssel dieser wird doch zum Validieren der Child-Zonen verwendet?

und signiert den ZSK und wird in der übergeordneten Zone verwaltet zum Beispiel ".ch".
Nein, um Gottes Willen , nein.

Nun es geht ja hauptsächlich um den ZSK dieser wird ja in meiner eigenen Zone abgelegt einmal als DNSKEY (öffentlicher Teil ZSK) und dann der private-Teil als RRSets. Wo befinden sich die Schlüssel vom KSK? Was ich weiss ich das der Hash-Wert vom KSK in der übergeordneten Zone gespeichert wird. Wo befinden sich die Schlüssel richtigen Schlüssel vom KSK? Sind die auf in meiner eigenen Zone irgendwo anderwo gespeichert als in meinem Zonefile? So wie ich dich verstehe ich ausschliesslich der Hash-Wert in der übergeordneten Zone aber kein einziger Key?

Der öffentliche Schlüssel vom KSK befindet sich also auch in der übergeordneten domain ".ch" und ist dafür verantwortlich, dass DNS-Resolver die privaten RRSIGs von der meinedomain.ch validieren können richtig?
Nein. Die übergeordnete Zone erhält nur einen Hash des öffentlichen Teils des KSK der Child-Zone und dieser wird in der Parent-Zone als sogenannter DS-Record gespeichert.
Ein Resolver vergleicht nun den Hash der Parent-Zone (DS-Record) mit dem Hash aus dem Public-KSK der Child-Zone, sind beide gleich kann der Resolver davon ausgehen das er allen Records der Child-Zone vertrauen kann.

Das mit dem DS-Record habe ich auch schon gelesen nur verstand ich das auch nie so richtig. Was ich immer noch nicht so ganz verstehe: Wo befinden sich die 4 Schlüssel?:
KSK privater Schlüssel: Signiert den öffentlichen Schlüssel des ZSK der ZSK befindet sich ja in meiner eigenen Zone. WO aber befindet sich der private KSK in welcher Zone ist dieser hinterlegt?
KSK öffentlicher Schlüssel: Würde ich noch gerne wissen wozu dieser dient und wo in welcher Zone sich der Key befindet.
ZSK privater Schlüssel: befindet sich gemäss deiner Infos auf meiner eigenen Zone "meinedomain.ch" und signiert alle RRSETs.
ZSK öffentlicher Schlüssel: Signiert meinen öffentlichen DNSKEY meiner eigenen Zone meinedomain.ch

Der Grund warum es einen KSK gibt ist folgender: Sollte ein ZSK kompromitiert sein ist es viel leichter diesen auszutauschen das man selbst als Betreiber der Child-Zone nur einen neuen ZSK mit seinem KSK signieren muss und die ganze Zone ist wieder für die Parent-Zone gültig da diese ja nur den Hash des öffentlichen KSK der Child-Zone in einem DS-Record abgelegt hat und der KSK hat sich ja nicht geändert.
Hätte man keinen KSK müsste man der Parent-Zone imer seinen neuen Hash mitteilen wenn ein Schlüssel kompromitiert wäre und wenn das nicht richtig gemacht ist Ärger vorprogrammiert. Deswegen ist der KSK einer Zone meist größer und sollte unter besonderem Schutz stehen.

Ich halte mich immer an diese sehr anschauliche Darstellung
https://www.cloudflare.com/dns/dnssec/how-dnssec-works/

Meines Erachtens sehr klar geschrieben und auf die essentiellen Teile zum Verstehen des Verfahrens reduziert.

Danke für den Link diesen kenne ich bereits. Jedoch ist der Text englisch, mein Englisch reicht nicht aus für so komplizierte Themen.
139374
139374 14.04.2019 aktualisiert um 14:16:11 Uhr
Goto Top
Zitat von @nicuhu:
und der KSK signiert alle RRSIGs.
Nein, der KSK signiert den öffentlichen Part des ZSK (DNSKEY)
Ist damit nun der private oder öffentliche KSK gemeint, meine Vermutung liegt beim privaten KSK Schlüssel?
Der öffentliche natürlich, die privaten haben nirgendwo anders was zu suchen. Wieso sollte man also private Schlüssel signieren, Blödsinn! Die sind vor fremdem Zugriff zu schützen.

Der KSK ist ja eine Kopie vom ZKS
Nein.
und davon existieren ja auch zwei Schlüssel. Wozu dient eigentlich der öffentliche KSK-Schlüssel wenn der Private KSK Schlüssel den öffentlichen ZSK signiert? Hoffe ich irriere dich nicht zu sehr face-smile
Private Schlüssel werden nicht signiert!!! Der öffentliche KSK dient mit zum Abgleich des DS Records in der Parent-Zone wie ich oben schon detailliert geschrieben habe.

Okay! Wenn ich nicht will, dass meine Schlüssel aufeinmal ablaufen kann ich also 2 RR-Sets mit unterschiedlichen Schlüssel erstellen mit den gleichen A,AAAA, etc. Records? Verstehe! face-smile
Achtung "Round-Robin".

Existiert dazu nicht bereits der Private-Schlüssel des KSK-Schlüssel dieser wird doch zum Validieren der Child-Zonen verwendet?
Private Schlüssel gehören nur dem Eigentümer und niemand niemand anderes darf in dessen Hände kommen!

Nun es geht ja hauptsächlich um den ZKS dieser wird ja in meiner eigenen Zone abgelegt einmal als DNSKEY (öffentlicher Teil ZSK) und dann der private-Teil als RRSets.
Falsch! RRSETs sind keine privaten Schlüssel!! Das sind nur mit dem privaten Schlüssel signierte Dateien, der private Schlüssel darf niemals in andere Hände gelangen!

Wo befinden sich die Schlüssel vom KSK? Was ich weiss ich das der Hash-Wert vom KSK in der übergeordneten Zone gespeichert wird.
Korrekt.
Wo befinden sich die Schlüssel richtigen Schlüssel vom KSK?
Sind die auf in meiner eigenen Zone irgendwo anderwo gespeichert als in meinem Zonefile? So wie ich dich verstehe ich ausschliesslich der Hash-Wert in der übergeordneten Zone aber kein einziger Key?
Den KSK musst du selbst erstellen. z.B. mit
dnssec-keygen -3 -a RSASHA512 -b 4096 -n ZONE -r /dev/urandom -f KSK example.org
Dabei entstehen folgende Dateien, die man in /etc/bind ablegt, sollte man bind als DNS-Server verwenden (bei anderen ist das natürlich im Manual des jeweiligen Servers nachzulesen):

Kexample.org.+007+28736.key: DNSKEY Record: Öffentlicher Schlüssel.
Dient zum Verifizieren der ZSK Keys. Wird von der höheren Zone signiert.
Kexample.org.+007+28736.private: Privater Schlüssel zum Signieren des
öffentlichen ZSK.

Steht alles auch hier, man muss es nur ein paar mal lesen...
https://emanuelduss.ch/2014/09/dns-zonen-mit-dnssec-signieren/

Das mit dem DS-Record habe ich auch schon gelesen nur verstand ich das auch nie so richtig. Was ich immer noch nicht so ganz verstehe: Wo befinden sich die 4 Schlüssel?:
KSK privater Schlüssel: Signiert den öffentlichen Schlüssel des ZKS der ZKS befindet sich ja in meiner eigenen Zone. WO aber befindet sich der private KSK in welcher Zone ist dieser hinterlegt?
KSK öffentlicher Schlüssel: Würde ich noch gerne wissen wozu dieser dient und wo in welcher Zone sich der Key befindet.
ZSK privater Schlüssel: befindet sich gemäss deiner Infos auf meiner eigenen Zone "meinedomain.ch" und signiert alle RRSETs.
ZKS öffentlicher Schlüssel: Signiert meinen öffentlichen DNSKEY meiner eigenen Zone meinedomain.ch
Lese den letzten Link dort steht alles Schwarz auf Weiß muss ich ja jetzt hier nicht nochmal rein kopieren.

Danke für den Link diesen kenne ich bereits. Jedoch ist der Text englisch, mein Englisch reicht nicht aus für so komplizierte Themen.
Solltest du gerade für das Thema dringend auffrischen. Vernünftige Doku und die RFCs zum Großteil alle in Englisch gefasst. Das sollte zum Grundrepertoire eines jeden Admins gehören. Ohne verpasst du jede Menge Details.
nicuhu
nicuhu 17.04.2019 um 10:05:08 Uhr
Goto Top
Als ob ich Hellsehen könnte... Bevor ich deinen Beitrag gesehen habe bin ich auf diese geniale Seite gekommen von emanuelduss.ch... :D
Zitat von @139374:

Zitat von @nicuhu:
und der KSK signiert alle RRSIGs.
Nein, der KSK signiert den öffentlichen Part des ZSK (DNSKEY)
Ist damit nun der private oder öffentliche KSK gemeint, meine Vermutung liegt beim privaten KSK Schlüssel?
Der öffentliche natürlich, die privaten haben nirgendwo anders was zu suchen. Wieso sollte man also private Schlüssel signieren, Blödsinn! Die sind vor fremdem Zugriff zu schützen.
Aber ich lese hier klar vom privaten KSK welcher den öffentichen ZKS signiert:
https://emanuelduss.ch/2014/09/dns-zonen-mit-dnssec-signieren/
Thema KSK erstellen:

"
Dabei entstehen folgende Dateien:

Kexample.org.+007+28736.key: DNSKEY Record: Öffentlicher Schlüssel.
Dient zum Verifizieren der ZSK Keys. Wird von der höheren Zone signiert.
Kexample.org.+007+28736.private: Privater Schlüssel zum Signieren des
öffentlichen ZSK.
"
- Also das generierte File vom öffentlichen KSK ist zum Verifizieren der Records und wird als Hash in der Parent-Zone hochgeladen als DS-RR. Der ist ja nicht geheim darum kann ich ihn meiner Parent-Zone geben...
- Der private KSK bleibt bei mir und signiert meinen öffentlichen ZKS (DNSKEY)

Ich verstehe das so...

und davon existieren ja auch zwei Schlüssel. Wozu dient eigentlich der öffentliche KSK-Schlüssel wenn der Private KSK Schlüssel den öffentlichen ZSK signiert? Hoffe ich irriere dich nicht zu sehr face-smile
Private Schlüssel werden nicht signiert!!! Der öffentliche KSK dient mit zum Abgleich des DS Records in der Parent-Zone wie ich oben schon detailliert geschrieben habe.
Der private KSK Schlüssel signiert den den öffentlichen ZKS Schlüssel? Ja das verstehe ich auch so, der öffentliche KSK wird in der Parent-Zone als DS-Record hinterlegt. face-smile

Okay! Wenn ich nicht will, dass meine Schlüssel aufeinmal ablaufen kann ich also 2 RR-Sets mit unterschiedlichen Schlüssel erstellen mit den gleichen A,AAAA, etc. Records? Verstehe! face-smile
Achtung "Round-Robin".
Was willst du mir mit Round-Robin genau sagen? Ich habe davon schon gehört... Habe jedoch gelesen man unterscheidet zwischen:
double Signatur oder Pre-Publish, Key Rollover
(https://www.scip.ch/?labs.20140911)

Nun es geht ja hauptsächlich um den ZKS dieser wird ja in meiner eigenen Zone abgelegt einmal als DNSKEY (öffentlicher Teil ZKS) und dann der private-Teil als RRSets.
Falsch! RRSETs sind keine privaten Schlüssel!! Das sind nur mit dem privaten Schlüssel signierte Dateien, der private Schlüssel darf niemals in andere Hände gelangen!
Ich habe noch ein sehr wichtiges Detail verstanden, verstehe ich das also richtig in den generierten Files sind u.a die privaten Schlüssel wie auch der öffentliche Schlüssel, der RRSIG entspricht nur einer Signatur von privaten Schlüssel (Kexample.org.+007+28736.private) welches sich in diesem generierten File befindet, ich meinte immer die Signatur im SSRIG entspricht dem privaten geheimen Schlüssel dabei ist es nur die Signatur des privaten Schlüssels...

Aber der DNSKEY-Record ist identisch mit dem generierten Key im File (Kexample.org.+007+28736.) oder?

Weiter habe ich gelesen, man solle den Key Rollout machen und die Files mit den Schlüsseln jedoch nur auf einem USB-Stick speichern und am besten via Zonentransfer realisieren statt diese File auf jeden einzelnen Nameserver zu belassen.
139374
139374 17.04.2019 aktualisiert um 10:15:57 Uhr
Goto Top
Das Thema ist offensichtlich nichts für dich. Beschäftige dich vorher nochmal dringend über grundlegende Dinge des asymmetrischen Public Key Verfahrens, sonst nimmt das hier eh kein Ende.

Ich bin raus, für das Vermitteln der nötigen Grundlagen (Englisch fehlt unter anderem auch noch) habe ich ehrlich gesagt keine Muße hier, sorry.

Frohe Ostern
Ciao.
nicuhu
nicuhu 17.04.2019 um 10:19:38 Uhr
Goto Top
Schade, eventuell jemand anderes der Hilfe anbietet zum Thema?...
nicuhu
nicuhu 17.04.2019 um 10:24:37 Uhr
Goto Top
Zitat von @139374:

Das Thema ist offensichtlich nichts für dich. Beschäftige dich vorher nochmal dringend über grundlegende Dinge des asymmetrischen Public Key Verfahrens, sonst nimmt das hier eh kein Ende.

Ich bin raus, für das Vermitteln der nötigen Grundlagen (Englisch fehlt unter anderem auch noch) habe ich ehrlich gesagt keine Muße hier, sorry.

Frohe Ostern
Ciao.
Schade, zudem kenne ich die unterschiede von Asymetrischer und symetrischer Kryptographie... Zudem kann man hier wohl eine Diskusion führen zum Thema... Eventuell jemand anderes der Hilfe anbietet zum Thema?...