EN FR

Votre NTP est-il sécurisé ?

NTP a été conçu dans les années 1980 sans aucune sécurité. NTS corrige cela.

Le problème du NTP classique

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é.

NTP classique

  • Paquets en clair sur le réseau
  • Aucune authentification du serveur
  • Vulnérable aux attaques MITM
  • Usurpation de serveur possible
  • Temps modifiable en transit

NTP avec NTS

  • Échange de clés via TLS 1.3
  • Authentification cryptographique
  • Protection contre les MITM
  • Identité du serveur vérifiée
  • Intégrité des données garantie

Pourquoi s'en soucier ?

Une horloge manipulée peut avoir des conséquences graves :

  • Certificats TLS/SSL — un temps incorrect peut faire accepter des certificats expirés
  • Tokens 2FA (TOTP) — Google Authenticator, Authy, etc. dépendent d'un temps exact à 30 secondes près
  • Validation DNSSEC — les vérifications de signatures reposent sur un horodatage correct
  • Logs et conformité — des horodatages corrompus cassent les pistes d'audit (RGPD, PCI-DSS, SOC2)
  • Transactions financières — les systèmes de paiement et de trading exigent un horodatage fiable

Comment fonctionne NTS (RFC 8915)

NTS ajoute une authentification cryptographique à NTP en deux phases simples :

Phase 1 : Échange de clés (NTS-KE)

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.

Phase 2 : Synchronisation authentifiée

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.

Impact minimal sur les performances

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.

Qui a besoin de NTS ?

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é

Serveurs NTS publics dans le monde

NTS est encore rare. En 2026, le paysage mondial ressemble à ceci :

~65 Serveurs NTS publics dans le monde
~50 Situés en Europe
3 735 Serveurs NTP classiques (pool EU)
~2% Taux d'adoption NTS

Principaux fournisseurs NTS

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

Liste de référence communautaire

Une liste complète des serveurs NTS publics est maintenue sur github.com/jauderho/nts-servers.

Les pools NTS sont rares

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.

Activer NTS en 2 minutes

Chrony (v4.0+) est le client recommandé pour utiliser NTS. Il est disponible sur la plupart des distributions Linux modernes.

1. Installer Chrony

# Debian / Ubuntu
sudo apt update && sudo apt install chrony

# RHEL / Fedora / CentOS
sudo dnf install chrony

2. Configurer les serveurs NTS

É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

3. Redémarrer et vérifier

# Redémarrer Chrony
sudo systemctl restart chronyd

# Vérifier le statut d'authentification NTS
sudo chronyc -N authdata

Sortie attendue

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

Compatibilité des clients

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.

Vérifier que NTS fonctionne

Consulter vos sources

# 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

Détails de l'authentification

# Statut NTS détaillé
sudo chronyc -N authdata

Checklist NTS

  • Mode = NTS — l'authentification est active
  • NAK = 0 — aucune authentification rejetée
  • Cook > 0 — des cookies sont disponibles pour les futures requêtes
  • Reach = 377 — serveur joignable de manière constante

Questions fréquentes

Que se passe-t-il si la négociation NTS échoue ?

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.

Peut-on mixer sources NTS et NTP classique ?

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.

NTS affecte-t-il la précision de synchronisation ?

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.

Existe-t-il un pool pour les serveurs NTS ?

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.

Besoin de NTS en production ?

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.

Tester votre NTP Infrastructure NTS RDEM

Un service RDEM Systems