Seseorang telah membuat otomatisasi yang menyalakan VPN saat tab incognito muncul, dan itu tidak bekerja dengan andal. Ada alasan struktural untuk itu, dan penting untuk memahaminya sebelum menyetel otomatisasi. Aturan VPN per aplikasi Android memilih paket aplikasi, dan incognito adalah status di dalam satu paket, sehingga aturan tidak dapat membedakan keduanya. Notifikasi muncul setelah browser sudah mulai bekerja, sehingga bahkan pemicu yang benar pun datang terlambat. Jalankan pemeriksaan di bawah ini secara berurutan; kegagalan pada pemeriksaan keempat berarti pendekatannya, bukan konfigurasinya, yang perlu diubah.

Pemeriksaan satu: pastikan apa yang bisa dipilih aturan per aplikasi

Aplikasi VPN Android membangun terowongannya dengan daftar aplikasi yang diizinkan atau ditolak, dan daftar itu memakai nama paket. Chrome dalam mode normal dan Chrome dalam mode incognito adalah paket yang sama, dengan id pengguna dan izin jaringan yang sama, sehingga aturan yang menyertakan atau mengecualikan Chrome berlaku sama untuk keduanya. Tidak ada identitas yang terikat tab untuk dicocokkan oleh platform.

Itu bukan cacat yang harus diakali; itu adalah tingkat perincian yang ditawarkan API. Jika kebutuhan Anda adalah lalu lintas Chrome melalui terowongan dan sisanya di luar, aturan per aplikasi menyatakannya dengan tepat. Jika kebutuhan Anda hanya tab privat melalui terowongan sementara tab biasa langsung, tidak ada aturan per aplikasi yang dapat menyatakannya, dan tidak ada banyak logika notifikasi yang akan menambahkan pemilih yang tidak dimiliki platform.

Waspadai jebakan identitas paket saat memeriksa. Versi beta atau build vendor adalah paket berbeda dari browser stabil, sehingga aturan yang mencakup satu akan diam-diam melewatkan yang lain:

adb shell pm list packages | grep -i chrome

Pemeriksaan dua: uji apakah pemicu bisa pernah cukup awal

Pendengar notifikasi mengamati notifikasi yang diizinkan untuk dilihatnya. Pengamatan bukan penyadapan: browser sudah menyelesaikan nama dan membuka koneksi pada saat notifikasi ada, dan tidak ada apa pun di jalur itu yang menunggu otomatisasi Anda selesai. Tugas yang kemudian meluncurkan klien VPN harus menunggu antarmuka klien, permintaan persetujuan, dan jabat tangan terowongan, yang diukur dalam detik sementara permintaan pertama diukur dalam milidetik.

Deteksi itu sendiri rapuh karena alasan kedua. Teks notifikasi berubah antar versi dan lokalisasi, sehingga pola yang cocok dengan satu rilis berhenti cocok setelah pembaruan, dan kegagalannya senyap. Notifikasi yang hilang bukan bukti bahwa penjelajahan privat tidak ada; itu hanya mungkin berarti string berubah atau saluran dibisukan.

Ada versi sah dari alur kerja ini, dan urutannya bukan reaktif: hubungkan VPN yang disetujui lebih dulu, pastikan sinyal kesiapan yang benar-benar membuktikan terowongan membawa lalu lintas, lalu buka sesi incognito melalui kontrol browser yang didukung, dan berhenti jika pemeriksaan kesiapan gagal. Itu melindungi sesi yang akan Anda mulai tanpa berpura-pura melindungi sesi yang sudah berjalan.

Pemeriksaan tiga: audit izin yang akan Anda berikan

Akses notifikasi adalah pemberian sensitif yang memungkinkan layanan membaca notifikasi dari setiap aplikasi, bukan hanya browser. Memberikannya kepada alat otomatisasi yang tidak dikenal untuk mengawasi satu status browser adalah pertukaran buruk, dan akses tetap ada setelah eksperimen berakhir. Ketukan yang digerakkan aksesibilitas lebih buruk: itu lapisan skrip di atas antarmuka, bukan antarmuka kontrol VPN yang didukung, dan rusak pada setiap perubahan tata letak.

Sebelum memberikan apa pun, tanyakan apakah hasil yang sama dapat dicapai dengan mekanisme yang didukung. Jika jawabannya persyaratan kebijakan, biasanya ya: platform dapat menegakkan terowongan untuk aplikasi atau profil tanpa layanan pendengar sama sekali.

Pemeriksaan empat: gunakan selalu aktif dan pemblokiran saat persyaratannya penegakan

Jika browser tidak boleh pernah berkomunikasi di luar terowongan, penegakan ada di pengaturan platform, bukan di makro. Android mendukung VPN selalu aktif dengan mode pemblokiran yang mencegah lalu lintas saat terowongan tidak terbentuk, dan perangkat terkelola dapat menerimanya melalui kebijakan. Pastikan apa yang dimiliki perangkat sekarang alih-alih mengasumsikan:

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

Nilai aplikasi bukan nol berarti paket dikonfigurasi sebagai selalu aktif, dan nilai pemblokiran 1 berarti koneksi di luar terowongan diblokir. Pasangan itulah yang mengubah kebiasaan upaya terbaik menjadi jaminan, dan itu juga menghapus balapan sepenuhnya, karena terowongan dibentuk sebelum lalu lintas aplikasi diizinkan.

Dua batas patut disebutkan di sini. Profil kerja membawa konfigurasi VPN sendiri, jadi aturan yang diverifikasi di profil pribadi tidak mengatakan apa pun tentang profil kerja. Dan browser yang dipasang terpisah, tab kustom yang dibuka aplikasi lain, atau webview dalam aplikasi adalah paket atau konteks berbeda dengan peruteannya sendiri, jadi verifikasi paket sebenarnya alih-alih mengasumsikan jendela dengan gaya berbeda adalah domain terpisah.

Pemeriksaan lima: tuliskan alur kerja dan uji jalur kegagalan

Apa pun yang Anda pilih, dokumentasikan urutan dan kondisi penghentian. Untuk alur kenyamanan itu berarti: terowongan naik, kesiapan terbukti, incognito dibuka, dan penghentian keras jika kesiapan gagal. Untuk jalur penegakan itu berarti: aplikasi selalu aktif dikonfigurasi, pemblokiran diaktifkan, dan perilaku yang diharapkan saat terowongan tidak dapat naik sama sekali, yaitu tidak ada lalu lintas alih-alih lalu lintas tanpa perlindungan.

Lalu uji kegagalannya, bukan hanya keberhasilannya. Putuskan terowongan selama sesi dan lihat apa yang dilakukan browser; blokir proses aplikasi VPN dan pastikan tidak ada yang bocor. Terakhir, pisahkan dua model privasi dalam dokumentasi pengguna: incognito mengendalikan status browser sementara dan tidak menyembunyikan lalu lintas dari jaringan, sedangkan VPN membawa lalu lintas tetapi tidak menghapus login atau apa pun yang dikirim di dalam sesi privat.

Artikel terkait