Le NTP (Network Time Protocol) est un protocole Internet qui permet de synchroniser les horloges, les machines et autres équipements informatiques de différents systèmes à travers un réseau IP. Il est utilisé au quotidien depuis sa création dans les années 1980 par le Dr David Mills, professeur à l'université du Delaware.
A l’heure des nouvelles technologies de l’information et de la communication (NTIC), les réseaux informatiques communiquent entre eux à tout moment et la synchronisation horaire des serveurs est primordiale, car pour fonctionner, une infrastructure réseau a besoin d’un temps de référence unique et exacte. Sans la synchronisation horaire, les opérations et transactions monétaires ou encore les achats en ligne risquent de ne pas être tracés, horodatés et sécurisés.
Le NTP a une structure hiérarchique et est organisé de façon arborescente, chaque couche ou niveau est appelé une strate, dans laquelle se trouvent les serveurs. Les horloges peuvent être synchronisées avec des serveurs de strate 0. Ces serveurs se synchronisent eux-mêmes avec d’autres serveurs, ainsi de suite. Le réseau NTP est donc organisé en couches qui déterminent la distance de l’heure de référence. La strate 0 est le plus haut niveau dans la structure hiérarchique du NTP. C'est la couche de référence. Il s’agit de serveurs reliés à des horloges atomiques, GPS ou radio permettant de générer une heure précise et exacte. Chaque strate suivante 1, 2, 3 etc. indique sa distance par rapport à cette strate de référence. La composition de la hiérarchie NTP intègre une série de contrôles et de redondances qui évitent par ailleurs les problèmes de boucle dans la synchronisation des serveurs, permettant au réseau de continuer de fonctionner et d’afficher continuellement une heure fiable et précise, même en cas de perte de la source horaire de référence.
Les serveurs de la couche 1 (également appelés serveurs principaux) sont synchronisés sur la source de référence, la strate 0, pour rechercher l’heure la plus exacte et précise. Les serveurs de la strate 2 se synchronisent sur un ou plusieurs serveurs de la strate 1, pour leur demander l’heure puis envoient ces informations aux serveurs de la state 3. Chaque serveur de la couche N se synchronise avec un serveur de la couche N-1. Cette arborescence se poursuit jusqu'au niveau des équipements informatiques individuels qui nécessitent une heure fiable et synchronisée.
Aujourd'hui, le NTP utilise l’algorithme de Marzullo. Cet algorithme permet l’utilisation d’échelles de temps tel que l’UTC (Temps Universel Coordonné) lors de la synchronisation horaire sur un réseau. Compte tenu du changement de la vitesse de rotation de la Terre et des "secondes intercalaires" (permettant de réajuster le temps astronomique et le temps donné par les horloges atomiques), l'UTC est l’heure de référence la plus couramment utilisée. Elle est obligatoire dans certains secteurs exigeants tels que la banque et la finance, afin de garantir une synchronisation parfaite de l'heure sur plusieurs réseaux.
La précision du NTP varie légèrement selon si elle est utilisée sur Internet ou sur un réseau local (LAN). Il peut être précis à 10 millisecondes près via une connexion en ligne, mais à 200 microsecondes près sur un réseau local privé.
Fonctionnant de façon invisible en arrière-plan de votre ordinateur, le NTP intègre des contrôles pour s’assurer de la fiabilité, de la précision et de l’exactitude de la source horaire. Une fois qu'un serveur de temps a été détecté, plusieurs échanges de données et des séries de tests ont lieu. Seulement alors, le serveur sera considéré comme une source fiable et son signal horaire accepté. L'heure donnée par le serveur sera alors utilisée pour synchroniser l'horloge.
Une version plus simple du protocole NTP, appelée SNTP (Simple Network Time Protocol) peut être utilisée si les exigences en termes de précision et de fiabilité horaire sont moins strictes. Pour maintenir une heure très précise, le SNTP n’utilise pas des algorithmes aussi avancés que le NTP. Il n'est pas non plus capable de surveiller plusieurs sources horaires pour choisir celle qui sera la plus fiable.
Utiliser le protocole NTP pour fournir une heure fiable et précise sur les horloges et les différents équipements informatiques de votre réseau est un processus assez simple. Le moyen le plus sécurisé pour synchroniser son réseau est d’utiliser un serveur de temps NTP, qui garantit une source horaire unique, fiable, précise et sécurisée. Les sources horaires disponibles sur internet ouvrent un port dans le pare-feu et peuvent créer une vulnérabilité dans un réseau informatique, un serveur de temps NTP évite par conséquent de s’exposer à un risque de cyberattaques.