Con il nome Network Time Protocol si indica un protocollo di rete che consente la sincronizzazione degli orologi di computer e altri dispositivi informatici appartenenti a reti a commutazione di pacchetto con latenza variabile.
Cos'è il protocollo NTP
In uso sin dalla prima metà degli anni '80, il protocollo NTP è tra i più vecchi protocolli della suite IP ancora attivi: ideato da David L. Mills della University of Delaware è oggi rilasciato come software open source e implementato nei maggiori sistemi operativi (inclusi i vari Windows, Linux e OS X).
Il Network Time Protocol è stato pensato e realizzato per sincronizzare gli orologi interni di quei computer appartenenti alla stessa rete – sia essa una LAN o una rete geografica come Internet – prendendo come riferimento il tempo coordinato universale ( Utc). Utilizza una versione modificata dell'algoritmo di Marzullo per scegliere i server migliori con i quali sincronizzarsi ed è pensato per mitigare gli effetti della latenza di rete.
Con i vari miglioramenti apportati nel corso degli anni, il protocollo NTP è oggi in grado di garantire un grado di precisione di poche decine di millisecondi su reti geografiche di grande estensione come Internet e di pochi millisecondi in LAN di dimensioni molto più piccole. Ciò vuol dire che gli orari segnati dagli orologi interni di due nodi appartenenti alla Rete varieranno, mediamente, di pochi millisecondi, assicurando così una sincronizzazione quasi perfetta.
Il protocollo NTP è solitamente descritto nei termini di una rete basata sul modello client-server, ma può essere facilmente adattato anche alle reti peer to peer, dove tutti i nodi paritetici potranno essere presi come fonte temporale cui fare riferimento per sincronizzare gli orologi interni. In entrambi i casi, i nodi della rete scambiano marche temporali sfruttando lo User datagram protocol e facendo transitare i dati attraverso la porta 123.
Come funziona il protocollo NTP
Il Network Time Protocol utilizza un sistema gerarchico di fonti temporali cui fare riferimento per la sincronizzazione degli orologi interni dei dispositivi connessi alla stessa rete. Ogni livello della gerarchia è chiamato "strato", al quale è assegnato un numero progressivo partendo dallo zero: a questo strato appartengono le fonti temporali esterne – come orologi atomici, GPS oppure orologi radiocontrollati – che forniscono la marca temporale originaria (quella considerata più precisa e quindi presa come standard di riferimento). Un device sincronizzato con un altro dispositivo dello strato n apparterrà per definizione allo strato n+1 ma questo non significa che la sua precisione o affidabilità sia obbligatoriamente inferiore: è tutt'altro che raro vedere server appartenenti allo strato n+1 avere una maggiore affidabilità temporale (e quindi una migliore sincronizzazione con le marche temporali originarie) rispetto a dispositivi appartenenti allo strato immediatamente superiore.
Un server o un computer dotato di protocollo NTP sincronizza il proprio orologio interno confrontando il proprio orario con i dispositivi dello strato superiore e con dispositivi dello stesso strato: ciò garantisce una migliore sincronizzazione e una maggiore affidabilità del sistema.
Il Network Time Protocol si basa su marche temporali da 64 bit (cifre binarie), nelle quali i primi 32 bit sono utilizzati per definire i secondi, mentre i restanti 32 bit sono utilizzati per le frazioni di secondo. Questa architettura fa sì che il protocollo NTP copra un intervallo temporale di 136 anni: dopo questo lasso di tempo i valori descritti dal protocollo si ripeterebbero, creando una sorta di cortocircuito temporale nel sistema. Dal momento che l'era del Network Time Protocol ha inizio il 1 gennaio 1900, il cosiddetto roll over dovrebbe avvenire nei primi giorni del 2036.
Problemi di sicurezza
Nonostante i molteplici interventi registrati negli anni, tesi a implementare nuove funzionalità e garantire migliori standard di sicurezza, il protocollo NTP ha iniziato ad accusare diversi problemi di stabilità dovuti soprattutto alla sua età. Negli ultimi anni diversi esperti di sicurezza informatica hanno riscontrato falle, anche di una certa rilevanza, nella struttura portante del protocollo.
Nel dicembre 2014 Neel Mehta e Stephen Roettger, due ricercatori del Google security team, hanno fatto notare che le falle di sicurezza presenti nel Network Time Protocol potrebbero esporlo ad attacchi DDoS, . Gli hacker potrebbero sfruttare alcune carenze nel processo ntpd, il demone che consente di mantenere sincronizzato l'orario del computer con quello del server di riferimento, accedendo al sistema con i privilegi di amministratore e inviare attacchi DDoS di grande portata.
Nell'ottobre 2015, invece, l'allarme è stato lanciato dai ricercatori dell'Università di Boston, che hanno scovato falle altrettanto gravi negli algoritmi del protocollo NTP. Gli esperti di sicurezza informatica statunitensi hanno riscontrato diversi problemi di sicurezza che potrebbero permettere ad hacker e pirati informatici di varia natura di intercettare comunicazioni non cifrate e permettere loro di entrare in possesso di dati personali di milioni di internauti (ad esempio attraverso scenari del tipo man in the middle).