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
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.
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 :
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 |
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
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
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.
Un service RDEM Systems