Penanda VPN di perangkat atau alamat keluar: mana membuktikan apa?
Penanda jaringan yang dibaca di perangkat dan alamat yang dilihat server adalah bukti yang berbeda. Tentukan mana yang dibutuhkan pertanyaan Anda.
Aplikasi ponsel dan server jauh mulai dari fakta yang berbeda, dan tak satu pun bisa meminjam fakta yang lain. Aplikasi bisa menanyakan sistem operasi tentang jaringan yang dipakainya, sementara server hanya tahu apa yang tiba melalui koneksi. Menjalankan titik akhir sendiri menulis ulang yang kedua dan membiarkan yang pertama tak tersentuh. Mana di antara keduanya yang menjawab pertanyaan Anda bergantung pada pertanyaan itu sendiri.
Dua titik pengamatan, dua jenis bukti
Bukti lokal menggambarkan perangkat. Ini mencakup antarmuka yang membawa lalu lintas, transport yang dilaporkan platform, dan apa yang boleh ditanyakan aplikasi pemanggil. Bukti jauh menggambarkan koneksi: alamat sumber, protokol, waktu, dan apa pun yang dipilih aplikasi untuk dikirim. Tidak ada titik pengamatan yang menjadi superset dari yang lain.
Mencampur keduanya menghasilkan klaim yang terdengar tepat dan tidak bisa diperiksa. Penanda membuktikan sesuatu tentang objek jaringan di perangkat, bukan tentang bagaimana layanan jauh mengklasifikasikan permintaan.
Sebelum berdebat soal deteksi, tuliskan titik mana yang dimaksud pertanyaan. Apakah masalahnya apakah aplikasi tertentu bisa mengetahui bahwa terowongan aktif, atau apakah layanan bisa menyimpulkan dari mana permintaan datang? Itu penyelidikan terpisah, dan jawaban atas yang satu tidak mengatakan apa pun tentang yang lain.
Apa yang bisa dilaporkan antarmuka platform lokal
Android menawarkan penanda khusus. Objek NetworkCapabilities dapat melaporkan TRANSPORT_VPN, dan hasTransport menguji apakah transport itu ada pada objek tersebut. Aplikasi mendapatkan objek dari layanan konektivitas dan membacanya, tunduk pada izin status jaringan.
Hasilnya adalah informasi platform lokal, bukan pencarian pada rentang alamat penyedia. Ini menggambarkan jaringan yang dipakai aplikasi pemanggil.
Dua batas penting. Aturan split-tunnel yang mengecualikan aplikasi bisa memberi jawaban berbeda di ponsel yang sama daripada yang dilihat rekan kerja, karena aplikasi mungkin terikat di tempat lain. Penanda juga ada karena sistem operasi memodelkan antarmuka VPN, bukan karena aplikasi tertentu mengumpulkannya. Apakah aplikasi membaca bidang itu, meneruskannya, atau mengabaikannya adalah sifat aplikasi tersebut. Manifes dan dokumentasinya adalah satu-satunya sumber tepercaya untuk pertanyaan itu.
adb shell dumpsys connectivity | grep -i -m5 vpn
Apa yang bisa dilihat layanan jauh
Server melihat alamat sumber koneksi, transport, dan waktu, dan dapat memperkaya alamat dengan data registri atau perutean. Server juga dapat menerima apa pun yang dikirim aplikasi, termasuk lokasi saat aplikasi memintanya dan pengguna menyetujuinya. Kanal-kanal itu terpisah, dan hanya satu yang menyerupai pencarian alamat.
Alamat yang terdaftar pada penyedia hosting menunjukkan terowongan, sedangkan yang terdaftar pada jaringan residensial menunjukkan koneksi rumah. Keduanya petunjuk statistik, bukan fakta tentang perangkat.
Alamat residensial tidak menempatkan orang di alamat itu, dan alamat hosting tidak menyebut operator atau negaranya. Layanan yang memperlakukan inferensi sebagai kepastian kadang akan salah tanpa bisa mendeteksinya. Jika yang dibutuhkan adalah keandalan dan bukan heuristik, data alamat tidak dapat menyediakannya, dan desain yang mengatakan itu lebih jujur daripada yang menyembunyikan tebakannya.
| Bukti | Apa yang dijawabnya | Apa yang tidak bisa ditunjukkannya |
|---|---|---|
| Penanda transport lokal | Apakah objek jaringan ini VPN | Siapa yang mengoperasikan keluar atau di mana perangkatnya |
| Alamat sumber jauh | Alamat mana yang mencapai layanan | Apakah perangkat juga membawa terowongan |
| Muatan aplikasi | Apa yang dipilih aplikasi untuk dikirim | Apa pun yang tidak dikirim aplikasi |
Mengapa keluar yang dihosting sendiri hanya mengubah satu sisi
Menjalankan titik akhir sendiri mengubah alamat sumber yang dilihat layanan jauh, yang dapat memindahkannya ke luar rentang yang diasosiasikan layanan itu dengan penyedia komersial. Ini tidak mengubah apa pun dalam model jaringan lokal, karena terowongan tetap terowongan dan sistem operasi masih melaporkannya.
Satu sisi bukti bergerak; sisi lain tetap. Celah di antara keduanya adalah tempat harapan patah.
Peramban adalah kasus ketiga dengan antarmuka dan batasannya sendiri. Konten web tidak dapat membaca objek kapabilitas asli, dan memperlakukan fitur sistem operasi seluler sebagai tersedia bagi halaman web adalah kesalahan kategori. Jika pertanyaannya menyangkut situs web, pelajari apa yang benar-benar bisa didapat situs web alih-alih menyalin API platform secara harfiah.
Putuskan dengan pertanyaan yang Anda ajukan
Jika pertanyaannya apakah aplikasi tertentu bisa mengamati status terowongan, antarmuka platform adalah tempat yang tepat untuk dilihat, dan jawabannya ada di kode dan izin aplikasi itu. Jika pertanyaannya apa yang bisa disimpulkan layanan, metadata koneksi adalah buktinya. Pertanyaan hukum atau kontraktual tidak diselesaikan oleh keduanya.
Namai pertanyaannya dalam satu kalimat sebelum mengumpulkan apa pun. Kalimat itu menentukan titik pengamatan mana yang penting dan menjaga penyelidikan agar tidak melenceng ke perdebatan lain.
Beri label setiap pengamatan menurut sumbernya saat Anda melaporkannya, karena klaim tanpa label tidak dapat ditinjau. Penanda lokal dan inferensi alamat keduanya berguna dan tak satu pun konklusif, karena itu menyatukan keduanya menjadi satu putusan adalah kesalahan.
Ketika layanan menolak koneksi yang sah, gunakan jalur peninjauan yang didukungnya alih-alih mengubah pengaturan lokal untuk menyembunyikan sinyal. Menghapus satu pengamatan tidak pernah membuktikan bahwa yang lain lenyap.