Apa yang sebenarnya diberitahu oleh cap masa jabat tangan WireGuard
Masa jabat tangan bukan sejarah pelayaran, tetapi ia menghubungkan akaun dengan peristiwa. Bandingkan apa yang direkodkan WireGuard dan OpenVPN, serta apa yang disembunyikan oleh ketepatan.
Satu baris yang berbunyi «jabat tangan terakhir, dua minit lalu» kelihatan seperti bukti aktiviti berterusan dan lebih lemah daripada itu. Ia menandakan pertukaran kunci terakhir yang selesai untuk satu rakan, yang berlaku mengikut pemasa pembaharuan kunci tetap selagi trafik mengalir dan berhenti apabila rakan menjadi senyap. Sama ada masa itu menghubungkan seseorang dengan apa-apa bergantung pada pengecam yang disimpan di sebelahnya dan jam kedua-dua sistem. Berikut ialah cara rekod itu berkelakuan dalam dua tindanan paling biasa, dan di mana pembacaannya tersilap.
Dua rekod, dua makna berbeza
WireGuard menyimpan satu cap masa jabat tangan bagi setiap rakan, diganti pada setiap pembaharuan kunci, serta pembilang bait dalam setiap arah. OpenVPN biasanya merekodkan permulaan sesi, pemutusan sambungan dan apa sahaja yang ditambah oleh kerincian yang dikonfigurasikan, yang menjadikan unit rekod itu sesi dan bukan pertukaran kunci.
Perbezaan itulah yang menentukan maksud ketiadaan:
| 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 |
Mengapa jabat tangan bukan penggunaan berterusan
WireGuard memperbaharui kunci kira-kira setiap dua minit selagi ada data untuk dilindungi, dan rakan yang menjadi melahu hanya berhenti. Jadi jabat tangan yang basi boleh bermakna komputer riba tidur, pengguna berhenti bekerja, atau rangkaian menggugurkan paket yang sepatutnya mencetuskan pertukaran seterusnya. Cap masa ialah had bawah aktiviti, bukan penjejak perhatian.
Kesilapan sebaliknya sama mudah. Trafik keepalive berterusan mengekalkan terowong hangat pada peranti melahu, jadi jabat tangan terkini boleh muncul pada mesin yang tiada siapa menyentuhnya selama sejam. Pembilang bait membantu di sini, kerana ia membezakan rakan yang menghantar data sebenar daripada yang hanya bertukar keepalive, dan ia juga memberitahu arah mana yang membawa isipadu. Tiada satu pun daripada itu mendedahkan destinasi, halaman atau pertanyaan.
Pengecam bergerak bersama cap masa
Masa tanpa akaun, kunci awam atau alamat sumber ialah yatim piatu. Pasangkan cap masa dengan identiti rakan dan pemerhatian menjadi boleh dipautkan: kunci awam kekal merentasi perubahan alamat, manakala alamat sumber mungkin dikongsi oleh ramai pelanggan di belakang terjemahan alamat pengendali.
Asimetri itulah yang terlepas pandang dalam kebanyakan perbincangan privasi. Alamat kelihatan tanpa nama kerana ia dikongsi, dan kunci kelihatan teknikal kerana ia panjang, tetapi kunci ialah pengecam yang stabil. Mengekalkan satu medan dan membuang yang lain mengubah risiko korelasi tanpa mengubah ketepatan yang nyata.
Korelasi itu sendiri ialah kebimbangan yang didokumenkan. Menggabungkan masa sambungan dengan peristiwa log masuk penyedia, tiket sokongan atau rekod pembayaran boleh mengaitkan identiti dengan aktiviti walaupun tiada destinasi pernah dicatat, dan itulah sebabnya pasangan lebih penting daripada pemformatan.
Korelasi antara sistem memerlukan penjagaan jam
Dua sistem yang melaporkan detik yang sama jarang bersetuju hingga ke saat. Satu mungkin menggunakan offset zon waktu dalam outputnya, yang lain mungkin berjalan pada jam yang tersasar beberapa saat, dan mesin maya boleh hanyut selepas digantung.
Sebelum membuat kesimpulan bahawa dua peristiwa berlaku bersama, tukar kedua-duanya ke zon yang sama dan periksa offset dalam rekod mentah dan bukan dalam paparan. Jika jurang yang anda ukur lebih kecil daripada sisihan yang mungkin, anda tidak mempunyai sebarang susunan.
Peraturan praktikal ialah menyimpan ketepatan yang diperlukan oleh tugas penyelesaian masalah dan tidak lebih. Kiraan sesi sejam menjawab soalan ketersediaan tanpa menyimpan sejarah bagi setiap akaun, dan agregat boleh disimpan jauh lebih lama daripada baris mentah asalnya.
Baca rekod dengan arahan, bukan imaginasi
Cetak medan yang anda akan buat penaakulan, dalam unit yang disimpan oleh alat dan bukan yang dipaparkan oleh papan pemuka.
Dua baris ini menunjukkan usia jabat tangan dan pembilang bait bagi setiap rakan WireGuard, kemudian bahan sejenis daripada fail status OpenVPN:
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusBandingkan usia dengan selang pembaharuan kunci sebelum membuat kesimpulan, dan baca pembilang bersamanya. Rakan dengan jabat tangan terkini dan hampir tiada pemindahan sedang bertukar keepalive, manakala rakan dengan jabat tangan basi dan pembilang besar sibuk sehingga ia berhenti. Tiada satu pun baris itu menyatakan apa yang dilakukan, dan menyatakannya secara terus lebih tepat daripada membayangkan cap masa membuktikan lawatan.