Une seule ligne indiquant « dernier handshake, il y a deux minutes » ressemble à une preuve d'activité continue et est plus faible que cela. Elle marque le dernier échange de clés achevé pour un pair, qui se produit selon une minuterie de renouvellement fixe tant que le trafic circule et s'arrête quand le pair devient silencieux. Que cette heure relie une personne à quoi que ce soit dépend des identifiants stockés à côté et des horloges des deux systèmes. Voici comment l'enregistrement se comporte dans les deux piles les plus courantes, et où sa lecture dérape.

Deux enregistrements, deux significations différentes

WireGuard conserve un horodatage de handshake par pair, remplacé à chaque renouvellement de clés, plus des compteurs d'octets dans chaque direction. OpenVPN enregistre généralement un début de session, une déconnexion et tout ce qu'ajoute la verbosité configurée, ce qui fait de l'unité de l'enregistrement une session plutôt qu'un échange de clés.

Cette différence décide de ce que signifie une absence :

QuestionWireGuard handshakeOpenVPN session log
Did the peer send recently?Strong hint within the rekey windowNot answered by start time alone
Did the peer stop?Weak, because idle peers also stop rekeyingOnly if a disconnect was written
What was visited?NothingNothing

Pourquoi un handshake n'est pas un usage continu

WireGuard renouvelle les clés à peu près toutes les deux minutes tant qu'il y a des données à protéger, et un pair qui devient inactif s'arrête simplement. Un handshake périmé peut donc signifier que l'ordinateur portable dort, que l'utilisateur a cessé de travailler ou que le réseau a abandonné les paquets qui auraient déclenché l'échange suivant. L'horodatage est une borne inférieure de l'activité, pas un traceur de l'attention.

L'erreur inverse est tout aussi facile. Un trafic keepalive persistant maintient le tunnel au chaud sur un appareil inactif, si bien qu'un handshake récent peut apparaître sur une machine que personne n'a touchée depuis une heure. Les compteurs d'octets aident ici, car ils distinguent un pair qui envoie de vraies données de celui qui n'échange que des keepalives, et ils indiquent aussi quelle direction a porté le volume. Rien de tout cela ne révèle une destination, une page ou une requête.

Les identifiants voyagent avec l'horodatage

Une heure sans compte, sans clé publique ni adresse source est orpheline. Associez l'horodatage à l'identité du pair et l'observation devient corrélable : une clé publique persiste à travers les changements d'adresse, tandis qu'une adresse source peut être partagée par de nombreux abonnés derrière la traduction d'adresses de l'opérateur.

Cette asymétrie est ce que la plupart des discussions sur la vie privée manquent. L'adresse paraît anonyme parce qu'elle est partagée, et la clé paraît technique parce qu'elle est longue, mais la clé est l'identifiant stable. Conserver un champ et abandonner l'autre change le risque de corrélation sans changer la précision apparente.

La corrélation elle-même est la préoccupation documentée. Relier une heure de connexion à un événement de connexion d'un fournisseur, à un ticket d'assistance ou à un enregistrement de paiement peut associer une identité à une activité même quand aucune destination n'a jamais été notée, et c'est pourquoi l'appariement compte plus que le formatage.

La corrélation entre systèmes exige de soigner les horloges

Deux systèmes qui rapportent le même instant sont rarement d'accord à la seconde près. L'un peut appliquer un décalage de fuseau horaire dans sa sortie, un autre peut tourner sur une horloge fausse de plusieurs secondes, et une machine virtuelle peut dériver après une suspension.

Avant de conclure que deux événements ont eu lieu ensemble, convertissez les deux dans le même fuseau et vérifiez le décalage dans l'enregistrement brut plutôt que dans l'affichage. Si l'écart que vous mesurez est inférieur à la dérive probable, vous n'avez aucun ordre.

La règle pratique est de conserver la précision dont la tâche de dépannage a besoin, et pas plus. Un décompte de sessions par heure répond à une question de disponibilité sans tenir d'historique par compte, et un agrégat peut être conservé bien plus longtemps que les lignes brutes dont il provient.

Lisez l'enregistrement avec des commandes, pas avec l'imagination

Affichez les champs sur lesquels vous allez raisonner, dans les unités que l'outil stocke et non dans celles qu'un tableau de bord affiche.

Ces deux lignes montrent l'âge du handshake et les compteurs d'octets pour chaque pair WireGuard, puis le même type de matière depuis un fichier d'état OpenVPN :

wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.status

Comparez l'âge à l'intervalle de renouvellement des clés avant de conclure, et lisez les compteurs en même temps. Un pair avec un handshake récent et presque aucun transfert échange des keepalives, tandis qu'un pair avec un handshake périmé et de gros compteurs a été occupé jusqu'à ce qu'il s'arrête. Aucune des deux lignes ne dit ce qui a été fait, et le dire franchement est plus exact que de suggérer que l'horodatage prouve une visite.

Articles similaires