NTP a été conçu dans les années 1980 sans aucune sécurité. NTS corrige cela.
Chaque paquet NTP que vous échangez circule en clair et sans authentification sur le réseau. Votre système n'a aucun moyen de vérifier que le temps reçu provient bien du serveur demandé.
Une horloge manipulée peut avoir des conséquences graves :
NTS ajoute une authentification cryptographique à NTP en deux phases simples :
Votre client établit une connexion TLS 1.3 avec le serveur NTS sur le port 4460. Durant cet échange, l'identité du serveur est vérifiée via son certificat TLS, et des cookies chiffrés sont négociés pour un usage futur.
Les requêtes NTP classiques (port 123/UDP) incluent désormais des extensions cryptographiques. Chaque réponse est authentifiée grâce aux cookies négociés en Phase 1. Aucune connexion TLS supplémentaire n'est nécessaire.
La négociation TLS n'intervient qu'au démarrage et lors du renouvellement des cookies (environ une fois par heure). Les échanges NTP réguliers n'ajoutent qu'environ 100 octets pour l'authentification. Votre précision de synchronisation n'est pas affectée.
| Cas d'usage | Risque sans NTS | Priorité |
|---|---|---|
| PKI / Autorités de certification | Des horodatages falsifiés peuvent contourner l'expiration des certificats | Critique |
| Systèmes financiers / Trading | Non-conformité réglementaire, pistes d'audit invalides | Critique |
| Infrastructure DNSSEC | Échec de validation des signatures par manipulation temporelle | Critique |
| Authentification (TOTP/2FA) | Rejet de tokens ou attaques par rejeu | Élevé |
| Agrégation de logs / SIEM | Corruption de l'ordre des événements entre systèmes | Élevé |
| Infrastructure générale | Confiance réduite dans les données temporelles | Recommandé |
NTS est encore rare. En 2026, le paysage mondial ressemble à ceci :
| Fournisseur | Nom d'hôte | Localisation | Stratum |
|---|---|---|---|
| RDEM Systems | ntp-pool.rdem-systems.com |
France & Allemagne | 2 |
| Netnod | nts.netnod.se |
Suède | 1 |
| PTB | ptbtime1.ptb.de |
Allemagne | 1 |
| Cloudflare | time.cloudflare.com |
Anycast (Global) | 3 |
| SIDN Labs | nts.time.nl |
Pays-Bas | 1 |
| NTP Pool (Trifecta) | ntppool-nts.time.nl |
Pays-Bas | 2 |
Une liste complète des serveurs NTS publics est maintenue sur github.com/jauderho/nts-servers.
Contrairement au NTP classique, les certificats TLS rendent le pooling traditionnel difficile. La plupart des fournisseurs nécessitent une configuration serveur par serveur. RDEM Systems opère l'un des rares pools compatibles NTS via ntp-pool.rdem-systems.com, répartissant la charge sur l'ensemble de son infrastructure NTS. Un projet financé par l'ICANN (2025-2027) via la Trifecta Tech Foundation travaille également sur une solution plus large.
Chrony (v4.0+) est le client recommandé pour utiliser NTS. Il est disponible sur la plupart des distributions Linux modernes.
# Debian / Ubuntu sudo apt update && sudo apt install chrony # RHEL / Fedora / CentOS sudo dnf install chrony
Éditez /etc/chrony/chrony.conf (ou /etc/chrony.conf) :
# /etc/chrony/chrony.conf - Configuration NTS # Serveurs sécurisés NTS server ntp-pool.rdem-systems.com iburst nts # France - Stratum 1&2 server nts.netnod.se iburst nts # Suède - Stratum 1 server ptbtime1.ptb.de iburst nts # Allemagne - Stratum 1 server time.cloudflare.com iburst nts # Anycast - Stratum 3 # Fichier de dérive driftfile /var/lib/chrony/drift # Correction importante au démarrage makestep 1.0 3 # Synchronisation horloge temps réel rtcsync
# Redémarrer Chrony sudo systemctl restart chronyd # Vérifier le statut d'authentification NTS sudo chronyc -N authdata
Cherchez Mode: NTS et NAK: 0 (aucun échec d'authentification) :
Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen ========================================================================= ntp-pool.rdem-systems.c> NTS 1 15 256 23m 0 0 8 100 nts.netnod.se NTS 1 15 256 24m 0 0 8 100 ptbtime1.ptb.de NTS 1 15 256 25m 0 0 8 100
Chrony 4.0+ (recommandé), NTPsec et ntpd-rs (Rust) supportent NTS. Le classique ntpd et Windows W32Time ne supportent pas NTS. Ubuntu 25.10+ est livré avec Chrony NTS activé par défaut.
# Lister les sources de temps sudo chronyc -N sources # Attendu : les sources doivent afficher un statut synchronisé MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp-pool.rdem-systems.c> 2 6 377 23 -145us[ -201us] +/- 12ms ^+ nts.netnod.se 1 6 377 24 +234us[ +178us] +/- 15ms
# Statut NTS détaillé sudo chronyc -N authdata
Par défaut, Chrony n'utilisera pas une source si NTS ne peut pas être établi. C'est un comportement sécurisé : mieux vaut ignorer une source que de synchroniser sans authentification.
Oui. Chrony peut utiliser les deux simultanément. Cependant, pour une sécurité maximale, privilégiez les sources NTS pour tous vos serveurs de temps.
Non. NTS ajoute de l'authentification, pas de la latence à la mesure du temps. La négociation TLS n'intervient que lors de l'échange de clés (au démarrage et environ une fois par heure), pas durant les requêtes NTP régulières.
Le pooling traditionnel est difficile avec NTS car les certificats TLS sont liés à des noms d'hôtes spécifiques. Cependant, certains fournisseurs comme RDEM Systems opèrent des pools compatibles NTS via des endpoints en répartition de charge. Pour la plupart des autres fournisseurs, il faut configurer des adresses de serveurs spécifiques.
RDEM Systems opère un pool de serveurs NTS Stratum 2 répartis sur plusieurs systèmes autonomes, dont son propre réseau (AS206014). Les sources Stratum 1 en amont utilisent GNSS/PPS pour une précision maximale.
Un service RDEM Systems