Bien que le NTP soit considéré comme le standard en matière de synchronisation de l’heure dans le monde, il n’est pas infaillible, notamment en ce qui concerne la sécurité. Étant basé sur un protocole UDP sans connexion, un hacker peut par exemple envoyer à un serveur NTP des paquets avec une fausse adresse d’expéditeur (en usurpant une adresse IP. Ce faisant, l’adresse du système attaqué est choisie comme adresse d’expéditeur. Le serveur renvoie sa réponse – nettement plus conséquente que la demande envoyée par le hacker – à l’expéditeur supposé, à savoir le système de la victime. Si le hacker procède de cette façon à grande échelle, en envoyant un nombre important de fausses requêtes de ce type, il peut surcharger le système ciblé - voir également notre article DoS et DDoS : Présentation des types d’attaques.
En conséquence, différents projets ont été consacrés au développement de solutions alternatives plus sûres susceptibles d’être utilisées en remplacement des habituelles solutions client/serveur NTP :
- tlsdate : tlsdate a été édité en 2012 par Jacob Appelbaum et publié sur GitHub. Pour le transport des données, tlsdate utilise le protocole TCP plutôt que UDP. Ce service procède au cryptage de la structure de connexion via TLS afin d’empêcher toute manipulation des paquets de données. Par ailleurs, tlsdate utilise les fonctionnalités de TLS, « ServerHello » et « ClientHello », afin de synchroniser l’heure. Cette alternative au NTP fonctionne toutefois uniquement avec TLS 1.1 et 1.2.
- Ntimed : Ntimed est une implémentation du NTP qui se concentre spécifiquement sur la sécurité et la performance. À cette fin, le code de programme de ntpd a été intégré à Ntimed dans une version épurée et optimisée. Le pack logiciel, composé des fichiers client, serveur et maître, est en libre accès dans le registre officiel Ntimed de GitHub.
- NTPsec : NTPsec est également une variante du service NTPd classique. Plus de 175 000 lignes de code ont toutefois été économisées par rapport à l’original. L’équipe de développeurs a remplacé un grand nombre de fonctions stringtelles que « strcpy », « sprintf » ou « gets » par des équivalents plus sûrs. Cette différence et d’autres sont détaillées sur le site Internet officiel du projet open source.
En plus des alternatives logicielles, on trouve également le Precision Time Protocol(PTP). Contrairement au Network Time Protocol, ce protocole réseau pour les systèmes Linux se concentre explicitement sur une précision particulièrement élevée de la synchronisation. Dans le cas de PTP, cette précision est de l’ordre de la microseconde, dépassant même ainsi la précision de NTP. Ce protocole pose de plus des exigences minimales en termes de performance du processeur et de bande passante du réseau, ce qui explique pourquoi il est des mieux adaptés aux appareils simples et peu coûteux.