Penanda VPN pada peranti atau alamat keluar: yang mana membuktikan apa?
Penanda rangkaian yang dibaca pada peranti dan alamat yang dilihat pelayan ialah bukti yang berbeza. Tentukan yang mana diperlukan oleh soalan anda.
Aplikasi telefon dan pelayan jauh bermula dengan fakta berbeza, dan tiada satu pun boleh meminjam fakta yang lain. Aplikasi boleh bertanya kepada sistem pengendalian tentang rangkaian yang digunakannya, manakala pelayan hanya tahu apa yang tiba melalui sambungan. Menjalankan titik akhir sendiri menulis semula yang kedua dan membiarkan yang pertama tidak tersentuh. Yang mana antara keduanya menjawab soalan anda bergantung pada soalan itu sendiri.
Dua titik pemerhatian, dua jenis bukti
Bukti setempat menerangkan peranti. Ia merangkumi antara muka yang membawa trafik, pengangkutan yang dilaporkan platform, dan apa yang boleh ditanya oleh aplikasi yang memanggil. Bukti jauh menerangkan sambungan: alamat sumber, protokol, masa, dan apa sahaja yang dipilih oleh aplikasi untuk dihantar. Tiada titik pemerhatian yang menjadi superset yang lain.
Mencampurkan kedua-duanya menghasilkan dakwaan yang kedengaran tepat dan tidak dapat diperiksa. Penanda membuktikan sesuatu tentang objek rangkaian pada peranti, bukan tentang bagaimana perkhidmatan jauh mengelaskan permintaan.
Sebelum berbahas tentang pengesanan, tuliskan titik mana yang berkaitan dengan soalan. Adakah soalnya sama ada aplikasi tertentu boleh mengetahui terowong aktif, atau sama ada perkhidmatan boleh menyimpulkan dari mana permintaan datang? Ini penyiasatan berasingan, dan jawapan kepada satu tidak mengatakan apa-apa tentang yang lain.
Apa yang boleh dilaporkan oleh antara muka platform setempat
Android menawarkan penanda tertentu. NetworkCapabilities objek boleh melaporkan TRANSPORT_VPN, dan hasTransport menguji sama ada pengangkutan itu hadir pada objek tersebut. Aplikasi mendapatkan objek itu daripada perkhidmatan kesambungan dan membacanya, tertakluk kepada kebenaran keadaan rangkaian.
Hasilnya ialah maklumat platform setempat, bukan carian dalam julat alamat pembekal. Ia menerangkan rangkaian yang digunakan oleh aplikasi yang memanggil.
Dua had penting. Peraturan terowong berpecah yang mengecualikan aplikasi boleh memberi jawapan berbeza pada telefon yang sama daripada yang dilihat rakan sekerja, kerana aplikasi mungkin terikat di tempat lain. Penanda juga wujud kerana sistem pengendalian memodelkan antara muka VPN, bukan kerana mana-mana aplikasi tertentu mengumpulnya. Sama ada aplikasi membaca medan itu, memanjangkannya atau mengabaikannya ialah sifat aplikasi tersebut. Manifes dan dokumentasinya ialah satu-satunya sumber yang boleh dipercayai untuk soalan itu.
adb shell dumpsys connectivity | grep -i -m5 vpn
Apa yang boleh dilihat oleh perkhidmatan jauh
Pelayan melihat alamat sumber sambungan, pengangkutan dan masa, dan ia boleh memperkaya alamat dengan data daftar atau penghalaan. Ia juga boleh menerima apa sahaja yang dihantar oleh aplikasi, termasuk lokasi apabila aplikasi memintanya dan pengguna bersetuju. Saluran itu berasingan, dan hanya satu menyerupai carian alamat.
Alamat yang didaftarkan pada pembekal pengehosan mencadangkan terowong, manakala yang didaftarkan pada rangkaian kediaman mencadangkan sambungan rumah. Kedua-duanya petunjuk statistik, bukan fakta tentang peranti.
Alamat kediaman tidak meletakkan orang itu di alamat tersebut, dan alamat pengehosan tidak menamakan pengendali atau negara. Perkhidmatan yang menganggap inferens sebagai kepastian kadangkala akan tersilap tanpa dapat mengesannya. Jika keperluan ialah kebolehpercayaan dan bukan heuristik, data alamat tidak dapat menyediakannya, dan reka bentuk yang menyatakannya lebih jujur daripada yang menyembunyikan tekaan.
| Bukti | Apa yang dijawabnya | Apa yang tidak dapat ditunjukkannya |
|---|---|---|
| Penanda pengangkutan setempat | Sama ada objek rangkaian ini VPN | Siapa yang mengendalikan keluar atau di mana peranti berada |
| Alamat sumber jauh | Alamat mana yang sampai ke perkhidmatan | Sama ada peranti juga membawa terowong |
| Muatan aplikasi | Apa yang dipilih aplikasi untuk dihantar | Apa sahaja yang tidak dihantar oleh aplikasi |
Mengapa keluar yang dihos sendiri hanya mengubah satu sisi
Menjalankan titik akhir sendiri mengubah alamat sumber yang dilihat perkhidmatan jauh, yang boleh memindahkannya ke luar julat yang dikaitkan perkhidmatan itu dengan pembekal komersial. Ia tidak mengubah apa-apa dalam model rangkaian setempat, kerana terowong kekal terowong dan sistem pengendalian masih melaporkannya.
Satu sisi bukti bergerak; sisi lain kekal. Jurang antara keduanya ialah tempat jangkaan rosak.
Pelayar ialah kes ketiga dengan antara muka dan kekangannya sendiri. Kandungan web tidak dapat membaca objek keupayaan asli, dan menganggap ciri sistem pengendalian mudah alih tersedia kepada halaman web ialah kesilapan kategori. Jika soalan berkaitan tapak web, kaji apa yang benar-benar boleh diperoleh tapak web dan bukannya menyalin API platform secara literal.
Putuskan dengan soalan yang anda ajukan
Jika soalannya sama ada aplikasi tertentu boleh memerhati keadaan terowong, antara muka platform ialah tempat yang betul untuk dilihat, dan jawapannya ada dalam kod dan kebenaran aplikasi itu. Jika soalannya apa yang boleh disimpulkan perkhidmatan, metadata sambungan ialah buktinya. Soalan undang-undang atau kontrak tidak diselesaikan oleh mana-mana daripadanya.
Namakan soalan itu dalam satu ayat sebelum mengumpul apa-apa. Ayat itu menentukan titik pemerhatian mana yang penting dan menghalang siasatan daripada hanyut ke perbahasan lain.
Labelkan setiap pemerhatian mengikut sumbernya apabila anda melaporkannya, kerana dakwaan tanpa label tidak dapat disemak. Penanda setempat dan inferens alamat kedua-duanya berguna dan tiada satu pun muktamad, sebab itu menggabungkannya menjadi satu keputusan ialah kesilapan.
Apabila perkhidmatan menolak sambungan yang dibenarkan, gunakan laluan semakan yang disokongnya dan bukannya mengubah tetapan setempat untuk menyembunyikan isyarat. Membuang satu pemerhatian tidak pernah membuktikan bahawa yang lain telah hilang.