NTP ist zwar weltweit als Zeitsynchronisierungs-Standard angesehen, ist jedoch insbesondere in Sachen Sicherheit nicht unfehlbar. Da es auf dem verbindungslosen UDP-Protokoll basiert, kann ein Angreifer beispielsweise Pakete mit gefälschter Absenderadresse (durch IP-Spoofing) an einen NTP-Server verschicken. Als Absenderadresse wird dabei die Adresse des Systems gewählt, das angegriffen werden soll. Der Server schickt seine Antwort, die wesentlich größer als die vom Angreifer gesendete Anfrage ist, an den vermeintlichen Absender – also das Opfersystem – zurück. Verfährt der Angreifer nun im großen Stil auf diese Weise, indem er eine Vielzahl solcher manipulierter Anfragen aussendet, kann er das Zielsystem überlasten (siehe auch unseren Artikel DoS und DDoS: Angriffsmuster im Überblick.
In der Konsequenz haben sich verschiedene Projekte der Entwicklung alternativer, sichererer Lösungen gewidmet, die anstelle der gängigen NTP-Client- und -Serverlösungen genutzt werden können:
- tlsdate: tlsdate wurde 2012 von Jacob Appelbaum geschrieben und auf GitHub veröffentlicht. Anstelle von UDP nutzt tlsdate das TCP-Protokoll für den Datentransport. Der Dienst verschlüsselt den Verbindungsaufbau via TLS, um die Manipulation der Datenpakete zu verhindern. Darüber hinaus nutzt tlsdate die TLS-Funktionen „ServerHello“ und „ClientHello“, um die Zeit zu synchronisieren. Die NTP-Alternative funktioniert allerdings nur mit TLS 1.1 und 1.2.
- Ntimed: Ntimed ist eine NTP-Implementierung, deren Fokus speziell auf Sicherheit und Performance gerichtet ist. Zu diesem Zweck wurde der Programmcode von ntpd, auf dem Ntimed aufbaut, „entschlackt“ und optimiert. Das Software-Paket, das aus Client-, Server- und Master-Datei besteht, steht im offiziellen Ntimed-GitHub-Verzeichnis zur freien Verfügung.
- NTPsec: Bei NTPsec handelt es sich ebenfalls um eine Variante des klassischen ntpd-Services. Allerdings wurden über 175.000 Codezeilen gegenüber dem Original eingespart. Außerdem hat das Entwicklerteam eine Vielzahl unsicherer String-Funktionenwie „strcpy“, „sprintf“ oder „gets“ durch sichere Pendants ersetzt. Diese und weitere Unterschiede lassen sich auf der offiziellen Homepage des Open-Source-Projekts in ausführlicher Form einsehen.
Abseits der Software-Alternativen gibt es noch das Precision Time Protocol(PTP). Anders als beim Network Time Protocol liegt der Fokus dieses Netzwerkprotokolls für Linux-Systeme explizit auf einer besonders hohen Synchronisierungsgenauigkeit. Diese liegt bei PTP im Mikrosekunden-Bereich, womit sogar die Genauigkeit von NTP unterboten wird. Zudem stellt das Protokoll minimale Anforderungen an Prozessorleistung und Netzwerkbandbreite, weshalb es auch für einfache und kostengünstige Geräte bestens geeignet ist.