Windows Secure Time Seeding è una funzionalità introdotta da Microsoft per migliorare la precisione e la sicurezza della sincronizzazione dell’orologio di sistema all’interno dei suoi sistemi operativi. Questa particolare funzione si rivela importante soprattutto negli ambienti aziendali e in quei sistemi in cui l’accuratezza dell’orologio di sistema è cruciale ai fini delle operazioni che si devono svolgere. Le impostazioni dell’orologio Windows sono regolabili premendo Windows+R
quindi digitando timedate.cpl
nel campo Apri. Agendo sul contenuto della scheda Ora Internet, è possibile definire in quale modo deve essere effettuato l’aggiornamento dell’orario di sistema.
Il problema della sincronizzazione degli orologi nei sistemi informatici non è affatto banale. In alcuni settori, come nelle infrastrutture finanziarie e in molte reti industriali, è necessario rispettare rigorose norme di conformità riguardo alla sincronizzazione dell’orologio.
Spesso, i sistemi utilizzano server NTP (Network Time Protocol) per ricevere la data e l’ora corrette. Tuttavia, questo approccio può essere influenzato da vari fattori e comportare un aggiornamento impreciso dell’orologio. Tant’è vero che una realtà come Meta ha sostituito il protocollo NTP con PTP all’interno delle sue strutture.
Cos’è e come funziona Windows Secure Time Seeding
Windows Secure Time Seeding si basa sulla sincronizzazione dell’orologio di sistema facendo leva su una fonte affidabile e sicura. Essa può essere un modulo hardware RTC o un servizio esterno come il servizio Microsoft NTP, noto come time.windows.com
. L’eventuale attivazione di un processo di autenticazione assicura che il dato temporale non sia alterato da terze parti non autorizzate.
Microsoft evidenzia i vantaggi di Windows Secure Time Seeding dal punto di vista della sicurezza, della precisione, dell’affidabilità e della conformità.
Il fatto è che, come lamentano tanti amministratori di sistema, Windows Secure Time Seeding non sarebbe così irreprensibile ed anzi il sistema proposto da Microsoft e integrato nei suoi sistemi operativi avrebbe causato non pochi problemi in molte realtà aziendali.
Orologio Windows impreciso? La colpa potrebbe essere proprio di Secure Time Seeding
Alcuni mesi fa, un ingegnere responsabile di un data center ha riscontrato alcuni errori sconcertanti che hanno causato l’improvvisa impostazione dell’orologio di sistema di un server Windows a 55 giorni nel futuro. Un’applicazione mission critical in esecuzione sulla macchina Windows Server tracciava le utenze mobili dei clienti registrando le attività di trasferimento da un operatore di telecomunicazioni all’altro. Un salto nel futuro di 8 settimane ha avuto conseguenze disastrose perché i numeri che dovevano ancora essere trasferiti erano elencati come già portati e le utenze già sulla rete dell’altro operatore erroneamente indicate come “in sospeso”. L’incidente ha avuto come effetto l’impossibilità, per tanti utenti, di effettuare chiamate perché la loro utenza non si trovava in uno stato corretto.
Lo stesso ingegnere si era già accorto del problema in passato: una macchina che eseguiva Windows Server 2019 reimpostava saltuariamente l’orologio di sistema a gennaio 2023 per poi ripristinare l’impostazione giusta poco tempo dopo.
Altri amministratori IT hanno ripetutamente rilevato simili “derive temporali”: si parla di server che presentano il comportamento anomalo ogni pochi mesi. A volte l’orario salta in avanti di qualche settimana, altre volte il passaggio a date future può giungere addirittura fino all’anno 2159.
Nel 2017, l’amministratore di macchine Windows 10 per un noto polo universitario, si lamentava su Reddit del fatto che gli orologi di sistema fossero imprecisi, con un errore fino a 31 ore nel passato.
Ultimata una serie di verifiche, è venuto a galla il colpevole: si tratta proprio della funzionalità Windows Secure Time Seeding, introdotta da Microsoft nel 2016.
Da cosa dipendono gli errori di Secure Time Seeding
Secure Time Seeding imposta l’ora in base ai dati contenuti all’interno di una procedura di handshake SSL che la macchina effettua con i server remoti. Per farla breve, il sistema di sincronizzazione dell’orologio integrato da Microsoft in Windows si serve dello stesso meccanismo alla base del funzionamento di HTTPS. Allo scopo, sono essenziali i certificati digitali presenti sulla macchina locale e utilizzati per la gestione delle connessioni SSL/TLS.
Uno dei metadati contenuti nell’handshake SSL che Secure Time Seeding utilizza per stabilire l’orario corretto si chiama ServerUnixTime ed è una rappresentazione di data e ora che mostra il numero di secondi trascorsi dalla mezzanotte del 1° gennaio 1970.
Al fine di evitare l’impostazione dell’orologio di sistema in base ai dati forniti da un singolo server remoto non sincronizzato, Secure Time Seeding effettua connessioni intervallate in modo casuale a più server per arrivare ad accertare l’orario corrente con un elevato grado di affidabilità. Nonostante i controlli e le salvaguardie integrate in Secure Time Seeding, i salti temporali denunciati da diversi amministratori di sistema, indicano che la funzionalità a volte fa ipotesi azzardate, sbagliate di giorni, settimane, mesi o addirittura anni.
Disattivare Windows Secure Time Seeding sui sistemi mission-critical
Secondo le prime stime degli esperti, il progetto Secure Time Seeding potrebbe essere “nato male” basandosi su un’errata interpretazione delle specifiche TLS. Anche perché oggi un gran numero di server remoti non risponde con un ServerUnixTime corretto.
Sebbene Microsoft non sembri aver ufficialmente preso in carico la problematica in questione, uno dei suoi dipendenti già lo scorso anno consigliava di disattivare Secure Time Seeding sui server Active Directory perché prima o poi potrebbe “mordere il fondoschiena“.
HD Moore, CTO e cofondatore di runZero, ha ipotizzato che la causa sia una sorta di bug logico nel codice Microsoft. Ha ipotizzato inoltre che potrebbe essere possibile per un aggressore sfruttare Secure Time Seeding per violare i sistemi Windows sui quali tale funzionalità risulta attiva. Un possibile exploit potrebbe sfruttare la nota tecnica di attacco conosciuta con il nome di Server Side Request Forgery.
Per disattivare Windows Secure Time Seeding è sufficiente digitare cmd
nella casella di ricerca di Windows quindi scegliere Esegui come amministratore.
A questo punto si può copiare e incollare quanto segue nella finestra del prompt dei comandi per poi eseguire l’istruzione previa pressione del tasto Invio:
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v UtilizeSslTimeData /t REG_DWORD /d 0 /f
Per impostazione predefinita, il valore della chiave di registro UtilizeSslTimeData
è impostato a 1 in maniera tale che il sistema operativo si appoggi a Secure Time Seeding per la regolazione dell’orologio.