Was ein WireGuard-Handshake-Zeitstempel wirklich verrät
Eine Handshake-Zeit ist keine Browserhistorie, aber sie verknüpft ein Konto mit einem Ereignis. Vergleichen Sie, was WireGuard und OpenVPN aufzeichnen, und was die Genauigkeit verbirgt.
Eine einzelne Zeile mit „letzter Handshake, vor zwei Minuten“ sieht nach einem Beweis für dauerhafte Aktivität aus und ist schwächer als das. Sie markiert den letzten abgeschlossenen Schlüsselaustausch für einen Peer, der bei fließendem Verkehr nach einem festen Zeitgeber für die Schlüsselerneuerung erfolgt und aufhört, wenn der Peer verstummt. Ob diese Zeit eine Person mit etwas verbindet, hängt von den daneben gespeicherten Kennungen und von den Uhren beider Systeme ab. Hier steht, wie sich der Eintrag in den zwei verbreitetsten Stacks verhält und wo das Lesen daneben geht.
Zwei Einträge, zwei verschiedene Bedeutungen
WireGuard hält einen Handshake-Zeitstempel pro Peer, der bei jeder Schlüsselerneuerung ersetzt wird, plus Byte-Zähler in jeder Richtung. OpenVPN zeichnet typischerweise einen Sitzungsbeginn, eine Trennung und alles auf, was die konfigurierte Ausführlichkeit ergänzt, wodurch die Einheit des Eintrags eine Sitzung und kein Schlüsselaustausch ist.
Dieser Unterschied entscheidet, was eine Abwesenheit bedeutet:
| Question | WireGuard handshake | OpenVPN session log |
|---|---|---|
| Did the peer send recently? | Strong hint within the rekey window | Not answered by start time alone |
| Did the peer stop? | Weak, because idle peers also stop rekeying | Only if a disconnect was written |
| What was visited? | Nothing | Nothing |
Warum ein Handshake keine dauerhafte Nutzung ist
WireGuard erneuert Schlüssel etwa alle zwei Minuten, solange Daten zu schützen sind, und ein Peer, der untätig wird, hört einfach auf. Ein veralteter Handshake kann also bedeuten, dass das Notebook schläft, dass der Nutzer die Arbeit eingestellt hat oder dass das Netz die Pakete verworfen hat, die den nächsten Austausch ausgelöst hätten. Der Zeitstempel ist eine Untergrenze der Aktivität, kein Verfolger der Aufmerksamkeit.
Der umgekehrte Fehler ist genauso leicht. Dauerhafter Keepalive-Verkehr hält den Tunnel auf einem untätigen Gerät warm, sodass ein frischer Handshake auf einer Maschine erscheinen kann, die niemand seit einer Stunde berührt hat. Byte-Zähler helfen hier, weil sie einen Peer, der echte Daten sendet, von einem unterscheiden, der nur Keepalives austauscht, und sie sagen auch, welche Richtung das Volumen trug. Nichts davon verrät ein Ziel, eine Seite oder eine Abfrage.
Kennungen reisen mit dem Zeitstempel
Eine Zeit ohne Konto, öffentlichen Schlüssel oder Quelladresse ist eine Waise. Paaren Sie den Zeitstempel mit der Peer-Identität, und die Beobachtung wird verknüpfbar: Ein öffentlicher Schlüssel bleibt über Adresswechsel hinweg bestehen, während eine Quelladresse von vielen Teilnehmern hinter der Adressumsetzung des Anbieters geteilt werden kann.
Diese Asymmetrie ist es, was die meisten Datenschutzdebatten übersehen. Die Adresse wirkt anonym, weil sie geteilt wird, und der Schlüssel wirkt technisch, weil er lang ist, doch der Schlüssel ist die stabile Kennung. Ein Feld zu behalten und das andere zu verwerfen ändert das Korrelationsrisiko, ohne die scheinbare Genauigkeit zu ändern.
Die Korrelation selbst ist das dokumentierte Bedenken. Eine Verbindungszeit mit einem Anmeldeereignis eines Anbieters, einem Support-Ticket oder einem Zahlungsdatensatz zu verbinden, kann eine Identität mit Aktivität verknüpfen, selbst wenn nie ein Ziel notiert wurde, und deshalb zählt die Paarung mehr als die Formatierung.
Korrelation über Systeme braucht Sorgfalt mit Uhren
Zwei Systeme, die denselben Moment melden, stimmen selten auf die Sekunde überein. Das eine kann in seiner Ausgabe einen Zeitzonenversatz anwenden, ein anderes kann auf einer Uhr laufen, die mehrere Sekunden falsch geht, und eine virtuelle Maschine kann nach einer Suspendierung abdriften.
Bevor Sie schließen, dass zwei Ereignisse zusammen stattfanden, rechnen Sie beide in dieselbe Zone um und prüfen Sie den Versatz im Rohdatensatz statt in der Anzeige. Ist die Lücke, die Sie messen, kleiner als die wahrscheinliche Abweichung, haben Sie gar keine Reihenfolge.
Die praktische Regel lautet, die Genauigkeit zu behalten, die die Fehlersuche braucht, und nicht mehr. Eine Anzahl von Sitzungen pro Stunde beantwortet eine Verfügbarkeitsfrage, ohne einen Verlauf pro Konto zu führen, und eine Aggregation lässt sich weit länger aufbewahren als die Rohzeilen, aus denen sie stammt.
Lesen Sie den Eintrag mit Befehlen, nicht mit Vorstellungskraft
Geben Sie die Felder aus, über die Sie nachdenken wollen, in den Einheiten, die das Werkzeug speichert, und nicht in denen, die ein Dashboard darstellt.
Diese beiden Zeilen zeigen das Handshake-Alter und die Byte-Zähler für jeden WireGuard-Peer und dann dieselbe Art von Material aus einer OpenVPN-Statusdatei:
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusVergleichen Sie das Alter mit dem Intervall der Schlüsselerneuerung, bevor Sie einen Schluss ziehen, und lesen Sie die Zähler zusammen damit. Ein Peer mit frischem Handshake und fast keinem Transfer tauscht Keepalives aus, während ein Peer mit veraltetem Handshake und großen Zählern beschäftigt war, bis er aufhörte. Keine der Zeilen sagt, was getan wurde, und das offen zu sagen ist genauer, als anzudeuten, der Zeitstempel beweise einen Besuch.