En enda rad med «senaste handskakning, för två minuter sedan» ser ut som bevis på ihållande aktivitet och är svagare än så. Den markerar det senaste slutförda nyckelutbytet för en peer, som sker enligt en fast nyckelrotations-timer medan trafiken flödar och upphör när peeren tystnar. Om den tiden kopplar en person till något beror på identifierarna som lagras bredvid och på båda systemens klockor. Här är hur posten beter sig i de två vanligaste staplarna, och var läsningen av den går fel.

Två poster, två olika betydelser

WireGuard håller en handskaknings-tidsstämpel per peer, ersatt vid varje nyckelrotation, plus byträknare i varje riktning. OpenVPN registrerar vanligtvis en sessionsstart, en frånkoppling och allt den konfigurerade detaljrikedomen lägger till, vilket gör postens enhet till en session snarare än ett nyckelutbyte.

Den skillnaden avgör vad en frånvaro betyder:

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

Varför en handskakning inte är ihållande användning

WireGuard roterar nycklar ungefär varannan minut så länge det finns data att skydda, och en peer som blir inaktiv slutar helt enkelt. En inaktuell handskakning kan därför betyda att laptopen sover, att användaren slutade arbeta eller att nätverket tappade paketen som skulle ha utlöst nästa utbyte. Tidsstämpeln är en undre gräns för aktivitet, inte en spårare av uppmärksamhet.

Det omvända misstaget är lika lätt. Ihållande keepalive-trafik håller tunneln varm på en inaktiv enhet, så en färsk handskakning kan dyka upp på en maskin som ingen har rört på en timme. Byträknare hjälper här, eftersom de skiljer en peer som skickar riktig data från en som bara utbyter keepalives, och de berättar också vilken riktning som bar volymen. Inget av detta avslöjar en destination, en sida eller en fråga.

Identifierare reser med tidsstämpeln

En tid utan konto, publik nyckel eller källadress är ett hittebarn. Para tidsstämpeln med peerens identitet och observationen blir länkbar: en publik nyckel består över adressbyten, medan en källadress kan delas av många abonnenter bakom leverantörens adressöversättning.

Den asymmetrin är det de flesta integritetsdiskussioner missar. Adressen ser anonym ut eftersom den delas, och nyckeln ser teknisk ut eftersom den är lång, men nyckeln är den stabila identifieraren. Att behålla ett fält och släppa det andra ändrar korrelationsrisken utan att ändra den skenbara precisionen.

Korrelationen i sig är den dokumenterade oron. Att koppla en anslutningstid till en leverantörs inloggningshändelse, ett supportärende eller en betalningspost kan koppla en identitet till aktivitet även när ingen destination någonsin skrevs ned, och därför betyder parningen mer än formateringen.

Korrelation mellan system kräver klokomtanke

Två system som rapporterar samma ögonblick är sällan överens till sekunden. Det ena kan tillämpa en tidszonsförskjutning i sin utdata, det andra kan gå på en klocka som är flera sekunder fel, och en virtuell maskin kan driva efter en avstängning.

Innan du drar slutsatsen att två händelser inträffade tillsammans, konvertera båda till samma zon och kontrollera förskjutningen i den råa posten i stället för i visningen. Om gapet du mäter är mindre än den sannolika avvikelsen har du ingen ordning alls.

Den praktiska regeln är att behålla den precision som felsökningsuppgiften behöver och inte mer. Ett antal sessioner per timme svarar på en tillgänglighetsfråga utan att föra historik per konto, och ett aggregat kan bevaras mycket längre än de råa raderna det kom från.

Läs posten med kommandon, inte fantasi

Skriv ut fälten du ska resonera om, i de enheter verktyget lagrar och inte de en instrumentpanel visar.

Dessa två rader visar handskakningens ålder och byträknarna för varje WireGuard-peer, och sedan samma slags material från en OpenVPN-statusfil:

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

Jämför åldern med nyckelrotationsintervallet innan du drar en slutsats, och läs räknarna tillsammans med den. En peer med färsk handskakning och nästan ingen överföring utbyter keepalives, medan en peer med inaktuell handskakning och stora räknare var upptagen tills den slutade. Ingen av raderna säger vad som gjordes, och att säga det rakt ut är mer exakt än att antyda att tidsstämpeln bevisar ett besök.

Relaterade artiklar