Pour Renaud Lifchitz, tout est histoire de rythme. Ce jeune mathématicien vient de mettre au point une technique de détection d’empreinte d’horloge capable de révéler l’existence d’une machine en particulier n’importe où à l’intérieur d’un LAN –même complexe- ou, mieux encore, à distance via le réseau public.
« Il s’agit bien de détecter une machine en particulier, et non un modèle au sein d’une marque » précise le chercheur. « Cette technique peut servir notamment à tracer un ordinateur « stratégique » que l’on a localisé précédemment avec des moyens classiques, puis qui a «disparu » suite à certains changements de configuration (modification des signatures système, des adresses IP ou MAC etc). Il s’agit donc plus d’un outil complémentaire aux méthodes de fingerprinting classique que d’une arme unique et universelle ».
Le principe utilisé est simple : électroniquement parlant, il est quasiment impossible de trouver deux machines dont l’horloge système soit absolument parfaite. Les capacités parasites, la taille des quartz utilisés pour les entrées Clk, les longueurs de « fillasse » que constituent les pistes d’un circuit imprimé, les dégagement de température des circuits adjacents… tout contribue à ce qu’un quartz dérive, et par conséquent affecte l’horloge « logicielle » (qui elle-même extrapole ses battements de la base de temps constituée par le quartz). « Et c’est cette dérive dans le temps, parfois proche d’une seconde par jour, qu’il suffit de mesurer pour en extraire un profil qui sera propre à chaque machine ». Une mesure relativement simple en fait. « Il suffit de posséder une horloge de référence stable, précise, qui servira de référentiel. De tels étalons temporels existent partout dans le monde. Ce peut être un radio-source, tel que DCF77, qui envoie ses signaux depuis Mainhausen, près de Francfort, ou encore WWV sur 5, 10, 15 MHz (émetteur de Fort Collins, USA, premier étalon césium international aisément utilisable). Ou encore une source temporelle stable locale (il se vend dans le commerce des standards de fréquence au césium ou au rubidium, généralement fort chers). Le plus simple étant encore d’utiliser les protocoles NTP et SNTP, qui permettent de synchroniser l’heure d’une machine depuis un étalon secondaire situé sur Internet.
A ce petit jeu, tous les noyaux ne sont pas égaux, explique Renaud Lifchitz. Les systèmes Windows ont des temps de latence relativement élevé, et il est donc conseillé d’utiliser une machine Linux pour servir de plateforme de référence temporelle et d’outil de recherche d’empreinte.
La suite de l’opération est simple : il ne reste plus qu’à écouter les échanges entre machines, puis de relever tous les « timestamp » que l’on peut trouver dans les en-têtes de leurs datagrammes par exemple. « Que la machine distante soit « à l’heure » ou non n’a strictement aucune importance, puisque ce qui nous intéresse, c’est une mesure relative, un échantillonnage de sa dérive ». Après une période de relevé plus ou moins longue (certaines mesures peuvent être relativement significatives même après quelques secondes si le nombre d’ordinateurs à identifier est faible) l’on établit une « droite caractéristique » par la méthode des moindres carrés. Cette méthode peut être affinée en prenant d’autres paramètres en compte, notamment la constance des écarts type ou l’irrégularité de l’horloge dans le temps.
Les contre-mesures envisageables sont simples. En premier lieu, asservir tous les postes de travail et les serveurs avec des étalons de fréquence, action dont la première conséquence serait de supprimer ou fortement diminuer la dérive des oscillateurs. Il n’est alors plus possible de distinguer une machine de l’autre, puisque toutes les machines sont « à l’heure » et y restent. L’autre approche, plus « informaticienne », consiste à filtrer tous les timestamp révélateurs, afin de ne donner aucune information à un quelconque observateur.