Mardi 2 Juin 2020
Optimisation des techniques de synchronisation horaire sur les réseaux informatiques
De nos jours, alors que la société est toujours plus interconnectée, une synchronisation temporelle sûre et précise devient de plus en plus critique pour de nombreuses applications. Les dispositifs informatiques utilisent souvent des oscillateurs à cristal de faible précision pour conserver le temps en local. Cette imprécision engendre une dérive entre les machines. La solution pour assurer une synchronisation précise de l’heure entre elles est d’utiliser une horloge de référence avec une source précise de temps, puis de diffuser le temps sur le réseau. Un des protocoles qui assurent la synchronisation temporelle est Network Time Protocol (NTP). Bien que NTP ait bien fonctionné pour un usage général pendant de nombreuses années, sa sécurité et sa précision sont mal adaptées aux défis futurs. De nombreux mécanismes de sécurité dépendent du temps dans le cadre de leur fonctionnement. Par exemple, avant d’utiliser un certificat électronique, il est nécessaire de confirmer sa validité temporelle. Une machine avec une horloge imprécise pourrait accepter des certificats expirés ou révoqués. Cette thèse présente d’abord le contexte de la synchronisation temporelle en commençant par la définition de certains concepts fondamentaux tels que le modèle d’horloge, le problème de la synchronisation d’horloge et certaines notions comme l’exactitude, la précision et la stabilité des horloges. Nous étudions les protocoles de synchronisation temporelle les plus courants des réseaux de communication, et entre autres NTP. Ensuite, nous considérons la sécurité de la synchronisation temporelle en présentant les possibles menaces de sécurité contre les protocoles de synchronisation temporelle et les exigences de sécurité de ces protocoles. Nous nous concentrons sur la sécurité du protocole NTP tel que décrit par le standard, et les travaux connexes qui ont tenté de l’améliorer sur ce point. Nous discutons également de l’importance d’avoir un compromis bien équilibré entre sécurité et performance. Dans notre première contribution, nous proposons d’aller plus loin que NTP avec Secure Time Synchronization Protocol (STS), un nouveau protocole de synchronisation de l’heure, qui est authentifié et sécurisé, et adapté aux larges déploiements. Nous décrivons le fonctionnement de STS et prouvons sa conception sécurisée, à l’aide d’une analyse formelle faite par deux outils de vérification de protocole de sécurité : Proverif et Tamarin. Nous présentons l’implémentation de STS basée sur le projet OpenNTPd, et évaluons ses performances en comparant la précision de STS avec celle de NTP non authentifié. Nous soulignons la dépendance circulaire entre la validation du certificat et la synchronisation temporelle. En réalité, une synchronisation temporelle fiable nécessite des matériaux cryptographiques qui ne sont valables que sur des intervalles de temps désignés, mais ces intervalles de temps ne peuvent être comparés à l’heure actuelle que lorsque les hôtes participants sont synchronisés de manière fiable. Nous présentons une solution qui fournit, lors de l’amorçage, une synchronisation approximative basée sur le blockchain Bitcoin, pour rompre cette dépendance circulaire. Dans notre deuxième contribution, nous proposons une méthode pour améliorer l’exactitude du protocole NTP, en tenant compte des délais de transmission asymétriques dus à une bande passante ou à un routage différent sur le chemin d’aller et de retour. En fait, l’asymétrie est assez répandue sur Internet, ce qui dégrade la performance de NTP qui fait l’hypothèse de délais symétriques. Cette méthode s’appuie sur l’utilisation d’un client NTP synchronisé par GPS, pour mesurer le délai unidirectionnel minimal aller et retour jusqu’à son serveur de temps. Ainsi, il est possible de calibrer NTP en prenant en compte cette asymétrie.
Mis à jour le 28 December 2020