NTP
Network Time Protocol
NTP synchronisiert die Uhren von Computern auf millisekunden- oder mikrosekundengenaue Zeitbasis. Exakte Zeit ist essentiell für Logs, Kryptografie, Kerberos-Authentifizierung und verteilte Systeme.
Entstehung und Beteiligte
NTP wurde ab den 1980er-Jahren von David L. Mills an der University of Delaware entwickelt. RFC 958 erschien 1985. Mills prägte über Jahrzehnte Algorithmus, Referenzimplementierung und das hierarchische Stratum-Modell.
Welches Problem sollte gelöst werden?
Verteilte Rechner benötigen vergleichbare Zeit für Protokolle, Dateien, Abrechnung und Fehlersuche. Hardwareuhren driften, Netzlaufzeiten schwanken und eine einzige zentrale Uhr wäre störanfällig.
Technische Hürden und Lösungen
NTP schätzt Laufzeit und Zeitversatz aus mehreren Zeitstempeln und wählt vertrauenswürdige Quellen. Asymmetrische Wege begrenzen Genauigkeit. Schaltsekunden, fehlerhafte Server und Angriffe erfordern Filterung, mehrere Quellen und abgesicherte Verfahren wie NTS.
Standardisierung und Einordnung
Internetprotokolle werden überwiegend in offenen RFC-Dokumenten beschrieben. Ein RFC kann ein historischer Vorschlag, ein aktueller Standard oder inzwischen überholt sein. Implementierungen müssen nicht nur das Papier befolgen, sondern mit fehlerhaften Gegenstellen, Paketverlust, Zeitüberschreitungen, Sicherheitsangriffen und jahrzehntealten Erweiterungen umgehen. Interoperabilität entsteht dadurch, dass unabhängige Hersteller dieselben Zustandsautomaten, Nachrichtenformate und Fehlerfälle testen.
Technik im praktischen Betrieb
Für den produktiven Einsatz zählt die konkrete Protokollversion. Alte und neue Varianten können denselben Port verwenden, besitzen aber völlig unterschiedliche Sicherheits- und Funktionsmerkmale. Administratoren sollten daher Aushandlung, Zertifikate, Timeouts, maximale Nachrichtengrößen und Fehlercodes sichtbar machen. Proxys, NAT und Firewalls verändern häufig den Datenpfad. Gute Tests erfolgen aus derselben Netzposition wie die betroffene Anwendung und prüfen nicht nur einen offenen Port, sondern einen vollständigen gültigen Vorgang.
Warum das Thema heute noch relevant ist
Die ursprüngliche Entstehungszeit erklärt viele heutige Sicherheitslücken: Frühe Internetgemeinschaften waren klein und Vertrauen wurde vorausgesetzt. Authentifizierung, Verschlüsselung und Missbrauchsschutz kamen oft erst später als Erweiterung hinzu. Moderne Implementierungen müssen deshalb sichere Voreinstellungen verwenden, alte Varianten abschalten und dennoch mit Gegenstellen kommunizieren, die einen älteren Stand besitzen. Versionsnummer, Aushandlung und tatsächlich aktive Option sind aussagekräftiger als der bloße Protokollname.
Daten und Meilensteine
- 1985: RFC 958 beschreibt NTP.
- Stratum 0 bezeichnet Referenzquellen wie Atomuhren oder GNSS.
- Stratum 1 ist direkt an eine Referenzquelle angebunden.
- NTS ergänzt kryptografische Absicherung für NTP.
Was ist NTP?
NTP (Network Time Protocol, RFC 5905) synchronisiert die Systemuhren von Computern auf eine gemeinsame Zeitbasis – heute mit Genauigkeiten im Millisekunden- oder sogar Mikrosekundenbereich.
Why it matters: Exakte Zeit ist essentiell für Security-Logs und Forensik (Ereignisse müssen zeitlich rekonstruierbar sein), Kerberos-Authentifizierung (schlägt bei >5 Minuten Abweichung fehl), TLS-Zertifikatsvalidierung, verteilte Datenbanken und Transaktionssysteme.
NTP Stratum-Hierarchie
NTP ist hierarchisch in Stratum-Ebenen organisiert:
- Stratum 0: Hochpräzise Referenzuhren – Atomuhren, GPS-Empfänger, DCF77-Funk. Diese sind nicht direkt im Netzwerk – sie verbinden sich über serielle Schnittstelle mit Stratum-1-Servern.
- Stratum 1: Primäre Zeitserver, direkt mit Stratum-0-Quellen verbunden. Sehr genau, wenige Millisekunden.
- Stratum 2: Synchronisieren sich von Stratum-1-Servern. Unternehmens-NTP-Server sind oft Stratum 2.
- Stratum 3+: Weitere Ebenen. Genauigkeit nimmt mit jeder Ebene leicht ab.
- pool.ntp.org: Öffentlicher Pool von NTP-Servern für allgemeine Nutzung.
Konfiguration und Sicherheit
NTP nutzt UDP Port 123. Moderne Implementierungen: ntpd (klassisch), chrony (empfohlen für Linux – schnellere Konvergenz), systemd-timesyncd (minimal). Windows nutzt den W32tm-Dienst.
Sicherheit: NTP kann für Amplification-Angriffe missbraucht werden (monlist-Befehl). NTP Authentication (MD5/SHA) schützt vor gefälschten Zeitaktualisierungen. NTS (Network Time Security, RFC 8915) ist der moderne, TLS-basierte Standard.