Mitä WireGuard-kättelyn aikaleima todella kertoo sinulle
Kättelyn aika ei ole selaushistoria, mutta se yhdistää tilin tapahtumaan. Vertaa, mitä WireGuard ja OpenVPN tallentavat, ja mitä tarkkuus kätkee.
Yksi rivi, jossa lukee «viimeisin kättely, kaksi minuuttia sitten», näyttää todisteelta jatkuvasta toiminnasta ja on sitä heikompi. Se merkitsee viimeisimmän valmiiksi saadun avaintenvaihdon yhdelle vertaiselle, mikä tapahtuu kiinteällä avainten uusimisen ajastimella, kun liikennettä virtaa, ja lakkaa, kun vertainen vaikenee. Se, yhdistääkö tuo aika henkilön johonkin, riippuu sen viereen tallennetuista tunnisteista ja molempien järjestelmien kelloista. Näin tallenne käyttäytyy kahdessa yleisimmässä pinossa ja missä sen lukeminen menee pieleen.
Kaksi tallennetta, kaksi eri merkitystä
WireGuard pitää yhtä kättelyn aikaleimaa vertaista kohden, joka korvataan joka avainten uusimisella, sekä tavulaskurit kumpaankin suuntaan. OpenVPN tallentaa tyypillisesti istunnon alun, yhteyden katkeamisen ja kaiken, mitä asetettu yksityiskohtaisuus lisää, mikä tekee tallenteen yksiköksi istunnon eikä avaintenvaihdon.
Tuo ero ratkaisee, mitä poissaolo tarkoittaa:
| 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 |
Miksi kättely ei ole jatkuvaa käyttöä
WireGuard uusii avaimet suunnilleen kahden minuutin välein, kun suojattavaa dataa on, ja joutilas vertainen yksinkertaisesti lopettaa. Vanhentunut kättely voi siis tarkoittaa, että kannettava nukkuu, käyttäjä lopetti työskentelyn tai verkko pudotti paketit, jotka olisivat käynnistäneet seuraavan vaihdon. Aikaleima on toiminnan alaraja, ei huomion jäljittäjä.
Päinvastainen virhe on yhtä helppo. Jatkuva keepalive-liikenne pitää tunnelin lämpimänä joutilaalla laitteella, joten tuore kättely voi näkyä koneella, johon kukaan ei ole koskenut tuntiin. Tavulaskurit auttavat tässä, koska ne erottavat oikeaa dataa lähettävän vertaisen siitä, joka vaihtaa vain keepalive-viestejä, ja ne kertovat myös, kumpi suunta kuljetti volyymin. Mikään tästä ei paljasta kohdetta, sivua tai kyselyä.
Tunnisteet matkustavat aikaleiman mukana
Aika ilman tiliä, julkista avainta tai lähdeosoitetta on orpo. Yhdistä aikaleima vertaisen identiteettiin, ja havainnosta tulee yhdistettävä: julkinen avain säilyy osoitteenmuutosten yli, kun taas lähdeosoite voi olla monen tilaajan jakama operaattorin osoitteenmuunnoksen takana.
Tämä epäsymmetria on se, minkä useimmat yksityisyyskeskustelut ohittavat. Osoite näyttää anonyymilta, koska se on jaettu, ja avain näyttää tekniseltä, koska se on pitkä, mutta vakaa tunniste on avain. Yhden kentän säilyttäminen ja toisen hylkääminen muuttaa korrelaatioriskiä muuttamatta näennäistä tarkkuutta.
Itse korrelaatio on dokumentoitu huoli. Yhteysajan yhdistäminen palveluntarjoajan kirjautumistapahtumaan, tukipyyntöön tai maksutietueeseen voi yhdistää identiteetin toimintaan, vaikka kohdetta ei olisi koskaan kirjattu, ja siksi paritus merkitsee enemmän kuin muotoilu.
Järjestelmienvälinen korrelaatio vaatii kellojen huomioimista
Kaksi saman hetken raportoivaa järjestelmää harvoin ovat samaa mieltä sekunnin tarkkuudella. Toinen voi soveltaa aikavyöhykkeen siirtymää tulosteessaan, toinen voi käydä kelloa, joka on useita sekunteja väärässä, ja virtuaalikone voi ajautua keskeytyksen jälkeen.
Ennen kuin päättelet kahden tapahtuman tapahtuneen yhdessä, muunna molemmat samaan vyöhykkeeseen ja tarkista siirtymä raakatallenteesta eikä näytöstä. Jos mittaamasi väli on pienempi kuin todennäköinen poikkeama, sinulla ei ole lainkaan järjestystä.
Käytännön sääntö on säilyttää tarkkuus, jonka vianmääritystehtävä tarvitsee, eikä enempää. Istuntojen määrä tunnissa vastaa saatavuuskysymykseen pitämättä historiaa tiliä kohden, ja kooste voidaan säilyttää paljon kauemmin kuin raakarivit, joista se syntyi.
Lue tallennetta komennoilla, älä mielikuvituksella
Tulosta kentät, joista aiot päätellä, yksiköissä, joita työkalu tallentaa, eikä niissä, joita hallintapaneeli näyttää.
Nämä kaksi riviä näyttävät kättelyn iän ja tavulaskurit jokaiselle WireGuard-vertaiselle ja sitten samanlaista aineistoa OpenVPN-tilatiedostosta:
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusVertaa ikää avainten uusimisväliin ennen johtopäätöstä ja lue laskurit sen kanssa. Tuoreen kättelyn ja lähes olemattoman siirron vertainen vaihtaa keepalive-viestejä, kun taas vanhentuneen kättelyn ja suurten laskurien vertainen oli kiireinen, kunnes lopetti. Kumpikaan rivi ei kerro, mitä tehtiin, ja sen suoraan sanominen on tarkempaa kuin vihjata, että aikaleima todistaa vierailun.