«Oxirgi qo'l berish, ikki daqiqa oldin» degan bitta satr uzluksiz faoliyatning dalilidek ko'rinadi va bundan kuchsizroq. U bitta tengdosh uchun oxirgi tugallangan kalit almashinuvini belgilaydi; bu trafik oqayotganda belgilangan kalit yangilash taymeri bo'yicha sodir bo'ladi va tengdosh jim bo'lganda to'xtaydi. Bu vaqt odamni biror narsa bilan bog'laydimi, uning yonida saqlangan identifikatorlar va ikkala tizimning soatlariga bog'liq. Eng keng tarqalgan ikki stekda yozuv qanday ishlashi va uni o'qish qayerda xato bo'lishi quyida.

Ikki yozuv, ikki xil ma'no

WireGuard har bir tengdosh uchun bitta qo'l berish vaqt tamg'asini saqlaydi, u har kalit yangilashda almashtiriladi, shuningdek har yo'nalishda bayt hisoblagichlari. OpenVPN odatda sessiya boshlanishini, ulanish uzilishini va sozlangan batafsillik qo'shadigan hamma narsani yozadi, bu esa yozuv birligini kalit almashinuvi emas, sessiya qiladi.

Aynan shu farq yo'qlik nimani anglatishini belgilaydi:

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

Nega qo'l berish uzluksiz foydalanish emas

WireGuard himoya qilinadigan ma'lumot bor ekan, taxminan har ikki daqiqada kalitlarni yangilaydi va bo'sh qolgan tengdosh shunchaki to'xtaydi. Shuning uchun eski qo'l berish noutbuk uxlayotganini, foydalanuvchi ishni to'xtatganini yoki tarmoq keyingi almashinuvni boshlaydigan paketlarni tashlab yuborganini bildirishi mumkin. Vaqt tamg'asi faoliyatning pastki chegarasi, diqqatning kuzatuvchisi emas.

Teskari xato ham xuddi shunday oson. Doimiy keepalive trafigi bo'sh qurilmada tunnelni issiq ushlab turadi, shuning uchun bir soat davomida hech kim tegmagan mashinada ham yaqinda bo'lgan qo'l berish ko'rinishi mumkin. Bu yerda bayt hisoblagichlari yordam beradi, chunki ular haqiqiy ma'lumot yuborayotgan tengdoshni faqat keepalive almashayotgan tengdoshdan ajratadi va hajm qaysi yo'nalishda o'tganini ham aytadi. Bularning hech biri manzilni, sahifani yoki so'rovni oshkor qilmaydi.

Identifikatorlar vaqt tamg'asi bilan birga sayohat qiladi

Akkaunt, ochiq kalit yoki manba manzilisiz vaqt yetimdir. Vaqt tamg'asini tengdoshning shaxsi bilan juftlang va kuzatuv bog'lanishi mumkin bo'ladi: ochiq kalit manzillar o'zgarganda ham saqlanadi, manba manzili esa operatorning manzil tarjimasi ortida ko'p abonentlar tomonidan bo'lishilishi mumkin.

Bu asimmetriya maxfiylik muhokamalarining ko'pchiligi o'tkazib yuboradigan narsadir. Manzil bo'lishilgani uchun anonim ko'rinadi, kalit uzun bo'lgani uchun texnik ko'rinadi, lekin barqaror identifikator — kalit. Bir maydonni saqlab, ikkinchisini tashlash ko'rinadigan aniqlikni o'zgartirmasdan korrelyatsiya xavfini o'zgartiradi.

Korrelyatsiyaning o'zi — hujjatlashtirilgan tashvish. Ulanish vaqtini provayderning kirish hodisasi, qo'llab-quvvatlash chiptasi yoki to'lov yozuvi bilan birlashtirish, hech qanday manzil hech qachon yozilmagan bo'lsa ham, shaxsni faoliyat bilan bog'lashi mumkin, shuning uchun juftlashtirish formatlashdan muhimroq.

Tizimlararo korrelyatsiya soatlarga e'tibor talab qiladi

Bir xil lahzani xabar qiladigan ikki tizim soniyagacha kelishishi kamdan-kam. Biri chiqishida vaqt mintaqasi siljishini qo'llashi mumkin, boshqasi bir necha soniya xato soatda ishlashi mumkin, virtual mashina esa to'xtatilgandan keyin chetlashishi mumkin.

Ikki voqea birga sodir bo'lgan degan xulosaga kelishdan oldin ikkalasini bir mintaqaga o'giring va siljishni displeyda emas, xom yozuvda tekshiring. Agar o'lchayotgan bo'shliq ehtimoliy chetlanishdan kichik bo'lsa, sizda umuman tartib yo'q.

Amaliy qoida — nosozlikni bartaraf etish vazifasiga kerak bo'lgan aniqlikni saqlash, ortiq emas. Soatiga sessiyalar soni har bir akkaunt bo'yicha tarix saqlamasdan mavjudlik savoliga javob beradi, yig'indi esa u kelgan xom satrlardan ancha uzoq saqlanishi mumkin.

Yozuvni buyruqlar bilan o'qing, tasavvur bilan emas

Muhokama qilmoqchi bo'lgan maydonlarni asbob saqlaydigan birliklarda chop eting, dashboard ko'rsatadigan birliklarda emas.

Bu ikki satr har bir WireGuard tengdoshi uchun qo'l berish yoshini va bayt hisoblagichlarini, so'ngra OpenVPN holat faylidan xuddi shunday materialni ko'rsatadi:

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

Xulosa chiqarishdan oldin yoshni kalit yangilash oralig'i bilan solishtiring va hisoblagichlarni ham u bilan birga o'qing. Yaqinda qo'l berish bo'lgan va deyarli uzatish bo'lmagan tengdosh keepalive almashmoqda, eski qo'l berish va katta hisoblagichlarga ega tengdosh esa to'xtaguncha band edi. Hech bir satr nima qilinganini aytmaydi va buni ochiq aytish vaqt tamg'asi tashrifni isbotlaydi degan ishoradan aniqroq.

O'xshash maqolalar