Falsche Systemuhrzeit und unsicheres Secure Time Seeding

Warum sich die Windows-Systemzeit plötzlich ändern kann und wie man das verhindern kann.

Hin und wieder fragen sich Nutzer und Administratoren von Windows 10, warum die Zeit ihres Systems plötzlich um mehrere Wochen, Monate oder sogar Jahre springt (entweder vorwärts oder rückwärts).

Woran könnten diese Sprünge liegen? Die Journalisten von Ars Technica haben recherchiert und herausgefunden, dass dies möglicherweise mit der Funktion Secure Time Seeding zusammenhängen könnte. In diesem Beitrag möchte ich die Funktionsweise dieser Funktion erläutern und erklären, was man tun kann, um solche unerwarteten Zeitsprünge zu verhindern.

 

Was ist Secure Time Seeding?

Secure Time Seeding (STS) wurde 2015 zu Windows 10 hinzugefügt. Mit dieser Funktion sollen Diskrepanzen zwischen der im System eingestellten Zeit und der tatsächlichen Zeit korrigiert werden – in erster Linie, wenn der Akku eines Computers, der die interne Echtzeituhr speist, leer ist und die Zeiteinstellung nichts mit der Realität gemein hat. Vor allem aber ist STS in der Lage, die Systemzeit zu korrigieren, ohne auf die Echtzeit-Server zuzugreifen.

Doch warum ist eine solche Korrektur von Zeitdiskrepanzen überhaupt erforderlich? Kurioserweise aus Sicherheitsgründen. Normalerweise wird der Client-Server-Datenaustausch (einschließlich der Systemverbindung zu den Internet-Zeitservern) mit SSL/TLS-Verschlüsselungsprotokollen geschützt. Damit eine solche Verbindung mit dem Server zustande kommen kann, muss der Client zunächst sein digitales Zertifikat verifizieren, wobei diese Zertifikate eine bestimmte Gültigkeitsdauer haben. Wenn die Uhrzeit im System fehlerhaft eingestellt ist, kann das Zertifikat als abgelaufen betrachtet werden, und eine sichere Verbindung kann nicht zustande kommen.

So entsteht ein Teufelskreis: Damit der Computer die aktuelle Zeit herausfinden kann, muss er die aktuelle Zeit kennen. Diese muss nicht exakt sein, auch die ungefähre Zeit kann genügen. Doch je größer der Unterschied zwischen der Systemzeit und der tatsächlichen Zeit ist, desto größer ist die Wahrscheinlichkeit, dass das Zertifikat als abgelaufen markiert wird.

STS ermöglicht es dem System (zumindest nach Ansicht der Entwickler), größere Unstimmigkeiten automatisch zu erkennen und zu korrigieren, selbst dann, wenn keine sichere Verbindung mit einem Server hergestellt werden kann. Dies geschieht durch die Verwendung aktueller Zeitstempel und Gültigkeitsdaten digitaler Zertifikate, die in den Daten enthalten sind, die von den Servern während des ersten Aufbaus einer sicheren Verbindung an den Client gesendet werden (die SSL- und TLS-Handshakes).

Der genaue Algorithmus von STS ist unbekannt. Der Grundgedanke ist jedoch, dass Windows Daten aus dem SSL-Handshake bezieht und anhand dieser Daten einen zuverlässigen Bereich für die aktuelle Zeit berechnet und ihm eine Wahrscheinlichkeit zuweist. Sobald neue Daten verfügbar sind, wird der Bereich aktualisiert, und die Wahrscheinlichkeit kann schrittweise erhöht werden. Wenn ein bestimmter Schwellenwert erreicht wird, ändert STS die Systemzeit auf den Mittelwert des als zuverlässig erachteten Bereichs. In der Theorie sollte diese Genauigkeit ausreichen, um eine sichere Verbindung herzustellen, eine Verbindung zu einem aktuellen Zeitserver herzustellen und die genaue Zeit zu ermitteln.

 

Deshalb sollten Sie Secure Time Seeding deaktivieren

Das Hauptproblem ist, dass die Funktion in Windows 10 standardmäßig aktiviert ist und unabhängig davon arbeitet, ob die im Computer integrierte Uhr jemals aus dem Takt geraten ist. Folglich kann STS die Zeit jederzeit zurücksetzen, wenn Microsofts geheimer Algorithmus entscheidet, dass es genügend Anzeichen dafür gibt, dass die Uhr die falsche Zeit anzeigt und angepasst werden muss.

Der Grund für derartige Fehlfunktionen bei Secure Time Seeding ist nicht vollständig bekannt. Es wird vermutet, dass die zunehmende Popularität von SSL/TLS-Implementierungen, die während des Handshakes einen falschen Zeitstempel senden, eine Ursache ist. Der Hauptverdächtige ist hier die häufig verwendete OpenSSL-Bibliothek (die anstelle der aktuellen Serverzeit Zufallswerte in den Zeitstempel einfügt).

Darüber hinaus kann dieser Bug auch in Server-Versionen des Betriebssystems auftreten: Windows Server 2016, Windows Server 2019 und Windows Server 2022. Und während das Problem für normale Computernutzer kaum mehr als ein Ärgernis ist, kann es für Server katastrophale Folgen haben, da deren korrekter Betrieb oft von einer genauen Zeitangabe abhängt.

Es gibt diesbezüglich eine inoffizielle Empfehlung von einem leitenden Mitarbeiter des technischen Supports von Microsoft für Active Directory-Domain-Controller-Administratoren:

„Servus, wenn ihr Active Directory Domänencontroller verwaltet, möchte ich euch einen UNOFFIZIELLEN Tipp geben, der ausschließlich meine persönliche Meinung widerspiegelt: Deaktiviert Secure Time Seeding für den Windows-Zeitdienst w32time auf euren DCs.“

Inoffizieller Rat eines erfahrenen Windows Escalation Engineer: Deaktivieren Sie Secure Time Seeding

Inoffizieller Rat eines erfahrenen Windows Escalation Engineer: Deaktivieren Sie Secure Time Seeding

 

Deaktivieren von der Windows-Funktion Secure Time Seeding

Zum Deaktivieren von STS suchen Sie den folgenden Key in der Windows Registrierungsdatenbank:

[code] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config [/code]

Ermitteln Sie den Wert UtilizeSslTimeData und setzen Sie ihn auf 0.

Deaktivieren von Secure Time Seeding in der Registrierungsdatenbank von Windows

Deaktivieren von Secure Time Seeding in der Registrierungsdatenbank von Windows

 

Alternativ können Sie den folgenden Befehl als Administrator in der Befehlszeile von Windows (CMD) ausführen:

[code] reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData /t REG_DWORD /d 0 /f [/code]

Nachdem Sie den Wert angepasst haben, müssen Sie das System neu starten. Wenn dies schwierig oder unmöglich ist, können Sie die Aktualisierung mit diesem Befehl erzwingen:

[code] W32tm.exe /config /update [/code]

Anschließend wird die STS-Funktion Sie nicht mehr belästigen. Jetzt müssen Sie nur noch dafür sorgen, dass die Systemuhr immer korrekt eingestellt ist. Zu diesem Punkt gibt dieser Artikel von Ars Technica ein paar hilfreiche Tipps für Serveradministratoren.

 

Tipps