Seseorang telah membina automasi yang menghidupkan VPN apabila tab incognito muncul, dan ia tidak berfungsi dengan pasti. Terdapat sebab struktur untuk itu, dan ia wajar difahami sebelum menala automasi. Peraturan VPN setiap aplikasi Android memilih pakej aplikasi, dan incognito ialah keadaan di dalam satu pakej, jadi peraturan tidak dapat membezakan kedua-duanya. Pemberitahuan dicetuskan selepas pelayar sudah mula bekerja, jadi walaupun pencetus yang betul tiba lewat. Lalui semakan di bawah mengikut urutan; kegagalan pada semakan keempat bermakna pendekatan, bukan konfigurasi, yang perlu diubah.

Semakan satu: sahkan apa yang boleh dipilih oleh peraturan setiap aplikasi

Aplikasi VPN Android membina terowongnya dengan senarai aplikasi dibenarkan atau dilarang, dan senarai itu mengambil nama pakej. Chrome dalam mod biasa dan Chrome dalam mod incognito ialah pakej yang sama, dengan id pengguna dan kebenaran rangkaian yang sama, jadi peraturan yang memasukkan atau mengecualikan Chrome terpakai sama pada kedua-duanya. Tiada identiti berasaskan tab untuk platform padankan.

Itu bukan kecacatan untuk dielakkan; itulah kebutiran yang ditawarkan API. Jika keperluan anda ialah trafik Chrome melalui terowong dan semua yang lain di luar, peraturan setiap aplikasi menyatakannya dengan tepat. Jika keperluan anda ialah hanya tab peribadi melalui terowong manakala tab biasa terus, tiada peraturan setiap aplikasi boleh menyatakannya, dan tiada jumlah logik pemberitahuan akan menambah pemilih yang tidak dimiliki platform.

Waspadai perangkap identiti pakej semasa menyemak. Beta atau binaan vendor ialah pakej berbeza daripada pelayar stabil, jadi peraturan yang meliputi satu akan terlepas yang lain secara senyap:

adb shell pm list packages | grep -i chrome

Semakan dua: uji sama ada pencetus boleh pernah cukup awal

Pendengar pemberitahuan memerhati pemberitahuan yang dibenarkan untuk dilihatnya. Pemerhatian bukan pemintasan: pelayar sudah menyelesaikan nama dan membuka sambungan apabila pemberitahuan wujud, dan tiada apa dalam laluan itu menunggu automasi anda selesai. Tugas yang kemudian melancarkan klien VPN perlu menunggu antara muka klien, sebarang gesaan persetujuan dan jabat tangan terowong, yang diukur dalam saat manakala permintaan pertama diukur dalam milisaat.

Pengesanan itu sendiri rapuh atas sebab kedua. Teks pemberitahuan berubah antara versi dan penyetempatan, jadi corak yang sepadan dengan satu keluaran berhenti sepadan selepas kemas kini, dan kegagalan itu senyap. Pemberitahuan yang hilang bukan bukti bahawa pelayaran peribadi tiada; ia mungkin hanya bermakna rentetan berubah atau saluran dibisukan.

Terdapat versi sah aliran kerja ini, dan ia tersusun bukan reaktif: sambungkan VPN yang diluluskan dahulu, sahkan isyarat kesediaan yang benar-benar membuktikan terowong membawa trafik, kemudian buka sesi incognito melalui kawalan pelayar yang disokong, dan berhenti jika semakan kesediaan gagal. Itu melindungi sesi yang akan anda mulakan tanpa berpura-pura melindungi sesi yang sudah berjalan.

Semakan tiga: audit kebenaran yang akan anda berikan

Akses pemberitahuan ialah pemberian sensitif yang membolehkan perkhidmatan membaca pemberitahuan daripada setiap aplikasi, bukan hanya pelayar. Memberikannya kepada alat automasi yang tidak dikenali untuk memerhati satu keadaan pelayar ialah pertukaran yang buruk, dan akses itu kekal selepas eksperimen tamat. Ketikan yang dipacu kebolehcapaian lebih teruk: ia lapisan skrip di atas antara muka, bukan antara muka kawalan VPN yang disokong, dan ia rosak pada setiap perubahan susun atur.

Sebelum memberikan apa-apa, tanya sama ada hasil yang sama boleh dicapai dengan mekanisme yang disokong. Jika jawapannya keperluan dasar, biasanya ya: platform boleh menguatkuasakan terowong untuk aplikasi atau profil tanpa sebarang perkhidmatan mendengar.

Semakan empat: gunakan sentiasa hidup dan penyekatan apabila keperluannya penguatkuasaan

Jika pelayar tidak boleh berkomunikasi di luar terowong, penguatkuasaan terletak pada tetapan platform, bukan dalam makro. Android menyokong VPN sentiasa hidup dengan mod penyekatan yang menghalang trafik apabila terowong tidak ditubuhkan, dan peranti terurus boleh menerimanya melalui dasar. Sahkan apa yang ada pada peranti sekarang dan bukannya menganggap:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

Nilai aplikasi bukan null bermakna pakej dikonfigurasikan sebagai sentiasa hidup, dan nilai penyekatan 1 bermakna sambungan di luar terowong disekat. Pasangan itulah yang menukar tabiat usaha terbaik menjadi jaminan, dan ia juga menghapuskan perlumbaan sepenuhnya, kerana terowong ditubuhkan sebelum trafik aplikasi dibenarkan.

Dua sempadan wajar dinyatakan di sini. Profil kerja membawa konfigurasi VPN sendiri, jadi peraturan yang disahkan dalam profil peribadi tidak mengatakan apa-apa tentang profil kerja. Dan pelayar yang dipasang berasingan, tab tersuai yang dibuka oleh aplikasi lain, atau webview dalam aplikasi ialah pakej atau konteks berbeza dengan penghalaan sendiri, jadi sahkan pakej sebenar dan bukannya menganggap tetingkap bergaya berbeza ialah domain berasingan.

Semakan lima: tuliskan aliran kerja dan uji laluan kegagalan

Apa pun yang anda pilih, dokumenkan urutan dan syarat berhenti. Untuk aliran kerja kemudahan itu bermakna: terowong naik, kesediaan terbukti, incognito dibuka, dan hentian keras jika kesediaan gagal. Untuk laluan penguatkuasaan itu bermakna: aplikasi sentiasa hidup dikonfigurasikan, penyekatan diaktifkan, dan tingkah laku dijangka apabila terowong tidak dapat naik sama sekali, iaitu tiada trafik dan bukannya trafik tidak dilindungi.

Kemudian uji kegagalan, bukan hanya kejayaan. Putuskan terowong semasa sesi dan lihat apa yang dilakukan pelayar; sekat proses aplikasi VPN dan sahkan tiada apa yang bocor. Akhir sekali, kekalkan dua model privasi secara berasingan dalam dokumentasi pengguna: incognito mengawal keadaan pelayar sementara dan tidak menyembunyikan trafik daripada rangkaian, manakala VPN membawa trafik tetapi tidak memadam log masuk atau apa-apa yang dihantar dalam sesi peribadi.

Artikel berkaitan