Én linje med «seneste håndtryk, for to minutter siden» ligner bevis på vedvarende aktivitet og er svagere end det. Den markerer den sidste fuldførte nøgleudveksling for én peer, som sker på en fast nøglerotations-timer, mens trafikken løber, og stopper, når peeren bliver tavs. Om det tidspunkt knytter en person til noget, afhænger af de identifikatorer, der er gemt ved siden af, og af begge systemers ure. Her er, hvordan posten opfører sig i de to mest almindelige stakke, og hvor læsningen af den går galt.

To poster, to forskellige betydninger

WireGuard holder ét håndtryks-tidsstempel for hver peer, udskiftet ved hver nøglerotation, plus byttetællere i hver retning. OpenVPN registrerer typisk en sessionsstart, en afbrydelse og hvad den konfigurerede detaljeringsgrad tilføjer, hvilket gør postens enhed til en session snarere end en nøgleudveksling.

Den forskel afgør, hvad en fraværenhed 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

Hvorfor et håndtryk ikke er vedvarende brug

WireGuard roterer nøgler omtrent hvert andet minut, mens der er data at beskytte, og en peer, der går i tomgang, stopper simpelthen. Så et forældet håndtryk kan betyde, at laptoppen sover, at brugeren stoppede med at arbejde, eller at netværket tabte de pakker, der ville have udløst den næste udveksling. Tidsstemplet er en nedre grænse for aktivitet, ikke en sporer af opmærksomhed.

Den omvendte fejl er lige så nem. Vedvarende keepalive-trafik holder tunnelen varm på en inaktiv enhed, så et nyligt håndtryk kan dukke op på en maskine, som ingen har rørt i en time. Byttetællere hjælper her, fordi de skelner en peer, der sender rigtige data, fra en der kun udveksler keepalives, og de fortæller også, hvilken retning der bar volumen. Intet af det afslører en destination, en side eller en forespørgsel.

Identifikatorer rejser med tidsstemplet

Et tidspunkt uden en konto, en offentlig nøgle eller en kildeadresse er et hittebarn. Par tidsstemplet med peerens identitet, og observationen bliver sammenkædelig: en offentlig nøgle består på tværs af adresseændringer, mens en kildeadresse kan deles af mange abonnenter bag udbyderens adresseoversættelse.

Den asymmetri er det, de fleste privatlivsdiskussioner overser. Adressen ser anonym ud, fordi den er delt, og nøglen ser teknisk ud, fordi den er lang, men nøglen er den stabile identifikator. At beholde ét felt og droppe det andet ændrer korrelationsrisikoen uden at ændre den tilsyneladende præcision.

Korrelationen selv er den dokumenterede bekymring. At knytte et forbindelsestidspunkt til en udbyders login-hændelse, en supportbillet eller en betalingspost kan forbinde en identitet med aktivitet, selv når ingen destination nogensinde er blevet skrevet ned, og derfor betyder parringen mere end formateringen.

Korrelation på tværs af systemer kræver omhu med ure

To systemer, der rapporterer samme øjeblik, er sjældent enige til sekundet. Det ene kan anvende en tidszoneforskydning i sit output, det andet kan køre på et ur, der er flere sekunder forkert, og en virtuel maskine kan drive efter en suspendering.

Før du konkluderer, at to hændelser skete sammen, skal du omregne begge til samme zone og kontrollere forskydningen i den rå post i stedet for i visningen. Hvis hullet, du måler, er mindre end den sandsynlige skævhed, har du slet ingen rækkefølge.

Den praktiske regel er at beholde den præcision, fejlsøgningsopgaven har brug for, og ikke mere. Et antal sessioner i timen besvarer et tilgængelighedsspørgsmål uden at føre en historik per konto, og et aggregat kan opbevares meget længere end de rå rækker, det kom fra.

Læs posten med kommandoer, ikke fantasi

Udskriv de felter, du er ved at ræsonnere om, i de enheder værktøjet gemmer, og ikke dem et dashboard gengiver.

Disse to linjer viser håndtrykkets alder og byttetællere for hver WireGuard-peer og derefter samme slags materiale fra en OpenVPN-statusfil:

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

Sammenlign alderen med nøglerotationsintervallet, før du drager en konklusion, og læs tællerne sammen med den. En peer med et nyligt håndtryk og næsten ingen overførsel udveksler keepalives, mens en peer med et forældet håndtryk og store tællere var travl, indtil den stoppede. Ingen af linjerne siger, hvad der blev gjort, og at sige det rent ud er mere præcist end at antyde, at tidsstemplet beviser et besøg.

Relaterede artikler