Kill switch setiap aplikasi berbanding kunci seluruh peranti: apa yang berubah
Putuskan berdasarkan set terlindung, bukan label: apa yang berhenti untuk aplikasi yang dikecualikan, pembantu latar belakang dan sambungan baharu, dan cara menguji setiap kes.
Kill switch setiap aplikasi kedengaran seperti pilihan yang berhati-hati: hanya klien kerja kehilangan rangkaiannya apabila terowong jatuh, dan segala-galanya terus berfungsi. Kemudian seseorang menyedari bahawa pelayar peribadi tetap memuatkan halaman, pembantu penyegerakan yang disertakan dengan suite yang sama terus mencuba, dan nama yang dicache masih diselesaikan kepada alamat yang tidak pernah menyentuh terowong. Label pada ciri dan set sambungan yang benar-benar dilindunginya ialah dua perkara berbeza. Tentukan set terlindung dahulu, kerana set itulah yang menentukan sama ada penguatkuasaan setiap aplikasi atau kunci seluruh peranti ialah penerangan yang jujur.
Mulakan dengan set, bukan label
Dasar setiap aplikasi melindungi aplikasi terpilih. Kunci peranti menyasarkan sempadan rangkaian yang lebih luas, biasanya dengan pengecualian terdokumen untuk percetakan tempatan, trafik pengurusan atau portal captive. Tiada label yang lengkap sehingga anda boleh menjawab tiga soalan: apa yang berlaku kepada aplikasi yang dikecualikan, apa yang berlaku kepada pembantu yang dimulakan oleh aplikasi itu, dan apa yang berlaku kepada sambungan yang dibuka semasa perlindungan tidak tersedia.
Tulis jawapan itu sebelum anda menyentuh mana-mana tetapan klien. Jika keperluannya ialah "klien gaji ini tidak boleh bercakap dengan internet di luar terowong, dan pelayar saya boleh", set itu kecil dan penguatkuasaan setiap aplikasi sesuai. Jika keperluannya ialah "tiada apa-apa pada peranti ini mencapai internet tanpa perlindungan, kecuali perkhidmatan kemas kini", tiada dasar setiap aplikasi akan menghasilkannya, kerana aplikasi yang tidak anda namakan itulah masalahnya.
Penguatkuasaan setiap aplikasi memadankan pengecam, bukan nama program
Android menyediakan VPN setiap aplikasi melalui pakej, dan dokumentasi VpnService-nya menerangkan cara ia berinteraksi dengan operasi sentiasa hidup dan penyekatan. iOS mengkonfigurasi VPN setiap aplikasi melalui profil pengurusan dan memadankan mengikut aplikasi atau mengikut domain. Windows dan Linux langsung tiada laluan setiap proses, jadi idea yang sama dihampiri dengan peraturan tembok api terhad kepada program atau peraturan yang sepadan dengan pengguna pemilik.
Sempadan ialah pengecam, dan pengecam mudah dielakkan. Aplikasi yang menyerahkan URL kepada pelayar sistem, atau membuka dokumen dalam pemapar, bergerak ke proses yang tidak pernah dinamakan oleh dasar anda. Pilihan tamat-semasa-jatuh juga bukan penapis paket: ia membunuh aplikasi yang anda konfigurasikan, manakala proses anak, pekerja baris gilir atau tab pelayar boleh mengekalkan soket sedia ada hidup.
Kunci meliputi apa yang dasar setiap aplikasi tidak dapat lihat
Kunci seluruh peranti membuang pilihan. Setiap paket keluar yang bukan milik terowong digugurkan, termasuk trafik daripada proses yang tidak pernah diketahui oleh dasar aplikasi anda. Pada Android itu ialah VPN sentiasa hidup digabungkan dengan tetapan menyekat sambungan, dan penguatkuasaan berlaku dalam sistem, bukan dalam tetingkap klien. Pada desktop ia ialah peraturan tembok api berterusan atau laluan lalai yang menuju ke gerbang yang tidak boleh dicapai.
Kosnya ialah segala-galanya berhenti, jadi pengecualian menjadi bahagian reka bentuk dan bukan fikiran kemudian. Pencetak tempatan, penemuan perkhidmatan, log masuk portal captive, ejen pengurusan dan kemas kini OS masing-masing memerlukan lubang terdokumen, kerana setiap satunya ialah laluan yang kekal terbuka apabila terowong mati. Kunci hanya sekuat entri terpendek dalam senarai itu.
DNS, IPv6 dan pembantu latar belakang menyembunyikan kebocoran
Kegagalan aplikasi terlindung menyelesaikan nama tidak membuktikan jawapan cache atau trafik IP terus disekat. Jika penyelesai masih boleh dicapai di luar terowong, nama diselesaikan dan sambungan gagal, yang kelihatan seperti kill switch yang berfungsi dan sebenarnya bukan. Lebih teruk, rekod cache boleh menunjuk ke alamat yang tidak dibawa oleh terowong, jadi sambungan keluar terus sementara aplikasi melaporkan ralat VPN.
IPv6 memerlukan peraturannya sendiri pada setiap platform yang menjalankannya, kerana peraturan gugur untuk v4 tidak meliputi laluan v6. Pada mudah alih, tetapan DNS peribadi boleh memindahkan penyelesaian ke saluran disulitkan yang tidak diperiksa oleh dasar peranti. Dan pembantu latar belakang ialah pesalah biasa pada desktop: proses pengemas kini atau penyegerakan dalam dulang bermula sebelum klien VPN dan mengekalkan sambungannya sendiri, jadi ia tidak pernah melihat laluan yang berubah.
Uji tiga aplikasi dan dua peralihan
| Test | What it proves |
|---|---|
| Included app, by name and by direct IP | the policy is applied, not just the resolver |
| Excluded app, same checks | the exclusion is intentional and documented |
| Helper or updater process | nothing inherited an older route |
| Tunnel drop, then Wi-Fi to cellular | the block survives the transition |
Jalankan setiap baris dua kali, sekali dengan nama hos dan sekali dengan alamat literal, dan sekali lagi melalui IPv6 jika rangkaian menawarkannya. Lulus bermakna aplikasi yang disertakan berhenti, aplikasi yang dikecualikan berkelakuan seperti yang anda tulis, dan pembantu tidak terlepas keluar. Catat tingkah laku terus yang anda putuskan boleh diterima, supaya pentadbir seterusnya boleh membezakan pengecualian yang disengajakan daripada kegagalan.
Kemudian huraikan hasilnya dalam satu ayat yang menamakan aplikasi dan syaratnya, contohnya: klien gaji tiada laluan di luar terowong, pelayar terus mengikut reka bentuk, dan segala-galanya berhenti apabila terowong mati. Jika ayat itu sukar ditulis, dasar itu masih dua dasar yang saling bergelut.