Zusammenfassung

  • Ein Kiss-o'-Death-Paket setzte Stratum 0 und nutzte den Reference Identifier als Statuscode. Seine serverseitigen Empfangs- und Sendezeitstempel waren keine Zeitbelege und mussten verworfen werden.
  • Erst die Zuordnung zu einer offenen Anfrage gab dem Paket begrenzte Wirkung; jeder Code erlaubte eine bestimmte lokale Reaktion. Weil KoD oft unauthentisiert war, brauchte auch Gehorsam eine clientseitige Grenze.

Ein Server brauchte mehr als Schweigen

Der RFC 4330 begründet die Erweiterung mit einem Betriebsvorfall. Viele Heim- und Bürorouter waren auf einen bestimmten universitären Zeitserver eingestellt. Unter Fehlerbedingungen sendete ein erheblicher Anteil im Sekundentakt. Die Lastspitze war dramatisch und nur mit extremen Maßnahmen zu diagnostizieren und einzudämmen.

Pakete zu verwerfen schützt den Server kurzfristig. Ein kooperativer Client erfährt daraus jedoch nicht, ob er wechseln, aufhören oder nur seltener fragen soll. Verlust kann sogar einen neuen Versuch auslösen. NTP benötigte daher eine negative Antwort auf dem bereits vorhandenen Weg.

Ein älterer Freiraum bot sich an. RFC 1305 bezeichnete Stratum 0 als unspecified, ohne dem Reference Identifier in diesem Zustand eine Statusfunktion zu geben. RFC 4330 kombinierte beides: Stratum 0 entzog der Antwort den Zeitwert, vier ASCII-Zeichen im Reference ID nannten den Zustand. Das Paket hieß Kiss-o'-Death, kurz KoD.

Es entstand weder ein neuer Port noch eine Verwaltungssitzung. Gerade deshalb musste dieselbe Hülle zwei sauber getrennte Rollen tragen können.

Aus der Messung wird eine Kontrollnachricht

Bei einer normalen NTP-Antwort liefern Receive und Transmit Timestamp des Servers zusammen mit den Client-Zeiten Material für Offset und Round-Trip Delay. Ein KoD behält die Felder, gibt aber kein Versprechen über ihre Messqualität.

RFC 5905 definiert Stratum 0 als unspecified oder invalid. Der Reference Identifier kann dann Status und Zugriffskontrolle vermitteln. Die vom Server gesetzten Receive- und Transmit-Timestamps sind undefiniert, dürfen nicht verwendet werden und müssen verworfen werden.

KoD ist somit keine schlechte Zeitprobe. Der Client liest eine negative Steuerinformation, bevor Filterung, Quellenauswahl oder Uhrendisziplin beginnen. RATE darf die nächste Anfrage verschieben, aber niemals den lokalen Zeitwert korrigieren.

Die offene Anfrage liefert den ersten Beleg

Im Client-Server-Modus spiegelt der Origin Timestamp der Antwort den Transmit Timestamp der Anfrage. RFC 5905 nutzt den Vergleich gegen gefälschte und wiederholte Pakete. RFC 8633 schreibt für KoD vor: Annahme nur mit gültigem Origin Timestamp.

Zuerst wird also die Antwort einer offenen Anfrage zugeordnet. Danach erkennt der Client Stratum 0, trennt die undefinierten Zeitfelder ab, liest den Code und erlaubt nur dessen definierte Zustandsänderung.

Diese Bindung ist keine kryptographische Serveridentität. Sie erschwert einem beliebigen Datagramm, Befehlsgewalt zu erlangen, beweist aber weder die Wahrheit des Grundes noch schützt sie gegen jeden Beobachter des relevanten Zustands.

Der Code begrenzte die Macht

DENY steht für die Ablehnung durch den entfernten Server, RSTR für eine lokale Richtlinienbeschränkung. In beiden Fällen muss der Client die Zuordnungen zu diesem Server demobilisieren und das Senden einstellen. RATE bedeutet überschrittene Abfragerate: Der Client reduziert sie sofort und fährt bei wiederholtem RATE weiter zurück.

RATE lässt eine spätere Zeitmessung offen. DENY und RSTR beenden die Beziehung. Keiner der Codes setzt die Uhr. Werte mit X am Anfang sind für private Experimente reserviert; ein unbekannter Wert eröffnet keine allgemeine Fernsteuerung.

Das aktuelle IANA-Register für NTP-Parameter führt unter anderem DENY, RSTR, RATE und NTSN. Es stabilisiert Namen und Spezifikationsverweise. Es authentisiert kein empfangenes Paket und bestätigt keine behauptete Serverlage.

Rückzug braucht eine eigene Obergrenze

RFC 8633 empfiehlt, KoD zu respektieren, besonders bei eingebetteten Geräten ohne erreichbare Bedienoberfläche. Für RATE sollte der Client sein Poll-Intervall bis zu einem vernünftigen Implementierungslimit erhöhen; Poll-Exponent 13, also zwei Stunden, soll nicht überschritten werden.

Den vom Server gelieferten Poll-Wert darf er nicht blind übernehmen. Ein übergroßer Wert kann nützliche Anfragen praktisch beenden und so Denial of Service erzeugen. Der Server beschreibt seine Belastung, bestimmt aber nicht allein, wie lange der Client ohne Zeitquelle auskommen muss.

Auch die Gegenrichtung bleibt unsicher. Manche Clients ignorieren RATE, fehlerhafte können den Verkehr sogar erhöhen. Der Server braucht weiterhin Dropping, Rate Limiting und Beobachtung außerhalb des Protokolls. KoD erweitert Kooperation, ersetzt aber keine Abwehr.

NTS stärkte die Zugehörigkeit der negativen Antwort

RFC 8915 definiert Network Time Security für Client-Server-NTP. Eine geschützte Antwort muss den Unique Identifier einer offenen Anfrage tragen und unter dem zugehörigen Server-to-Client-Schlüssel authentisch sein. Scheitert eine Prüfung, wird sie ohne weitere Verarbeitung verworfen.

Kann der Server Cookie oder Anfrage nicht validieren, darf er ein KoD mit NTSN, dem NTS negative acknowledgment, senden. Weil der geschützte Zustand gerade nicht wiederhergestellt werden konnte, enthält es weder NTS Cookie noch Authenticator-Feld.

Die Ausnahme schafft keinen freien Abschalter. Nach authentischen NTS-Antworten muss ein späteres KoD einen passenden Unique Identifier enthalten. Eine erzwungene Trennung kann eine neue NTS-KE-Verhandlung auslösen, doch deren Wiederholungen müssen begrenzt werden. Ein automatischer Abstieg auf ungeschütztes NTP folgt daraus nicht.

NTS verstärkt die Herkunftsprüfung. Es macht aus den undefinierten KoD-Timestamps keine Zeit und aus einem Code keine umfassende Anweisung.

Registrierung ordnet Wörter, nicht Laufzeitvertrauen

RFC 5905 schuf IANA-Register für Reference Identifier und Kiss Codes. RFC 9748 wechselte auf Specification Required, beschränkte neue ASCII-Werte auf Großbuchstaben und Ziffern mit Nullauffüllung rechts, reservierte X für Experimente und verlangte die Zustimmung von zwei der drei benannten Experten.

Vier Bytes können lange in Geräten weiterleben. Eine öffentliche Spezifikation und Expertenprüfung verhindern Bedeutungsüberschneidungen. Doch das Register sieht kein konkretes Paket, beurteilt keine Zugriffspolitik und wählt kein sicheres Client-Limit.

KoD wurde wirksam, weil Ablehnung teilbar blieb. Der Server benennt den Zustand. Die offene Anfrage liefert Zugehörigkeit. Der Code begrenzt die Folge. Der Client behält Obergrenze, Ersatzquelle und Wiederanlauf. Das Zeitpaket ohne Zeit sagte mehr als Schweigen, ohne einer einzigen unauthentisierten Vokabel Herrschaft über Uhr und Verfügbarkeit zu geben.

Quellen und Grenzen

Der ältere Freiraum steht in RFC 1305, Vorfall und explizites KoD in RFC 4330. Aktionen und Timestamp-Verwurf regelt RFC 5905, Betriebsgrenzen RFC 8633, NTS RFC 8915, Registrierung RFC 9748 und IANA. Sie messen keine Verbreitung, Einhaltung oder Angriffshäufigkeit im Jahr 2026.