Един ред „последно ръкостискане, преди две минути“ изглежда като доказателство за непрекъсната активност, а е по-слаб от това. Той отбелязва последния завършен обмен на ключове за един партньор, който се случва по фиксиран таймер за подмяна на ключове, докато тече трафик, и спира, когато партньорът замлъкне. Дали това време свързва човек с нещо, зависи от идентификаторите, съхранени до него, и от часовниците на двете системи. Ето как се държи записът в двата най-разпространени стека и къде четенето му се обърква.

Два записа, две различни значения

WireGuard пази един времеви печат на ръкостискане за всеки партньор, подменян при всяка смяна на ключове, плюс броячи на байтове в двете посоки. OpenVPN обикновено записва начало на сесия, прекъсване на връзката и каквото добави настроената подробност, което прави единицата на записа сесия, а не обмен на ключове.

Тази разлика решава какво означава отсъствието:

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

Защо ръкостискането не е непрекъснато използване

WireGuard сменя ключовете приблизително на всеки две минути, докато има данни за защита, а партньор, който бездейства, просто спира. Затова застоял печат може да значи, че лаптопът спи, че потребителят е спрял работа или че мрежата е изпуснала пакетите, които биха задействали следващия обмен. Времевият печат е долна граница на активността, а не проследяване на вниманието.

Обратната грешка е също толкова лесна. Постоянният keepalive трафик поддържа тунела топъл на бездействащо устройство, така че скорошен печат може да се появи на машина, до която никой не се е докосвал от час. Броячите на байтове помагат тук, защото различават партньор, който изпраща реални данни, от такъв, който обменя само keepalive, и казват и коя посока е носила обема. Нищо от това не разкрива дестинация, страница или заявка.

Идентификаторите пътуват с времевия печат

Време без акаунт, публичен ключ или адрес на източника е сирак. Свържете печата с идентичността на партньора и наблюдението става свързваемо: публичният ключ остава при смяна на адреси, докато адресът на източника може да се споделя от много абонати зад превод на адреси от оператора.

Тази асиметрия е това, което повечето обсъждания на поверителността пропускат. Адресът изглежда анонимен, защото е споделен, а ключът изглежда технически, защото е дълъг, но стабилният идентификатор е ключът. Запазването на едно поле и изхвърлянето на другото променя риска от корелация, без да променя видимата точност.

Самата корелация е документираната тревога. Свързването на време на връзка със събитие за вход при доставчик, със заявка до поддръжката или със запис за плащане може да свърже самоличност с активност, дори когато никога не е била записана дестинация, и затова сдвояването е по-важно от форматирането.

Корелацията между системи изисква внимание към часовниците

Две системи, които съобщават един и същ момент, рядко съвпадат до секундата. Едната може да прилага отместване на часовата зона в изхода си, друга може да работи с часовник, който изостава с няколко секунди, а виртуална машина може да се отклони след спиране.

Преди да заключите, че две събития са се случили заедно, преобразувайте и двете в една зона и проверете отместването в суровия запис, а не в изгледа. Ако разликата, която измервате, е по-малка от вероятното отклонение, нямате никаква подредба.

Практическото правило е да пазите точността, която задачата по отстраняване на неизправности изисква, и нищо повече. Броят сесии на час отговаря на въпрос за наличност, без да пази история за всеки акаунт, а обобщение може да се пази много по-дълго от суровите редове, от които произлиза.

Четете записа с команди, не с въображение

Отпечатайте полетата, за които ще разсъждавате, в единиците, които инструментът съхранява, а не в тези, които показва табло.

Тези два реда показват възрастта на ръкостискането и броячите на байтове за всеки партньор WireGuard, а след това подобен материал от файл за състоянието на OpenVPN:

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

Сравнете възрастта с интервала на смяна на ключове, преди да правите извод, и четете броячите заедно с нея. Партньор с скорошен печат и почти без пренос обменя keepalive, докато партньор със застоял печат и големи броячи е бил зает, докато не е спрял. Нито един от редовете не казва какво е било направено, и да го кажете направо е по-точно, отколкото да внушавате, че печатът доказва посещение.

Подобни статии