Dua dialog Android terus-menerus dicampuradukkan: permintaan persetujuan VPN dan permintaan izin yang diajukan aplikasi untuk data Anda. Yang pertama menyerahkan posisi jaringan, titik tempat paket dapat dibaca dan ditulis ulang. Yang kedua menyerahkan konten tersimpan yang dijaga Android aplikasi demi aplikasi. Memperlakukan keduanya sebagai satu hal entah membesar-besarkan apa yang bisa dilihat terowongan, atau sangat meremehkan apa yang akan diminta aplikasi gigih berikutnya.

Apa yang sebenarnya diserahkan dialog persetujuan

Aplikasi yang mengimplementasikan VpnService dan mendeklarasikan BIND_VPN_SERVICE meminta sistem menjadi VPN perangkat. Setelah disetujui, kerangka kerja membuat antarmuka tun dan memberi aplikasi deskriptor berkas untuknya. Semua yang dilakukan aplikasi sesudahnya mengalir melalui deskriptor itu: ia membaca paket IP keluar, memutuskan apa yang harus dilakukan dengannya, dan menulis paket kembali masuk.

Cakupan antarmuka itu jelas. Rute menentukan tujuan mana yang ditangkap, dan addAllowedApplication atau addDisallowedApplication menentukan aplikasi mana yang mengalirkannya. VPN per aplikasi yang mencantumkan dua aplikasi tidak melihat sisa perangkat.

Itu pemberian di tingkat paket, bukan di tingkat data. Layanan melihat bita yang diserahkan aplikasi ke tumpukan jaringan, dialamatkan ke suatu tujuan. Ia tidak memperoleh pegangan pada penyimpanan privat aplikasi pengirim, berkas basis datanya, atau memorinya yang sudah didekripsi. Berkas yang disimpan aplikasi di dalam kotak pasirnya sendiri tetap sama sulitnya untuk dibaca seperti sebelumnya.

Di mana pandangan atas paket berhenti

TLS tetap menjalankan tugasnya di dalam terowongan, karena jabat tangan berlangsung antara aplikasi dan server, bukan antara aplikasi dan VPN. VPN meneruskan teks tersandi yang tidak dapat didekripsinya tanpa kunci sesi. Karena itulah terowongan saja tidak mengungkap isi halaman HTTPS atau sesi surel yang terlindungi.

Metadata di sekitar teks tersandi adalah cerita lain, dan di sinilah sebagian besar klaim yang percaya diri berantakan. IP tujuan, port, ukuran paket, dan waktu semuanya terlihat, ditambah nama server di TLS ClientHello, yang biasanya dikirim terbuka bahkan di bawah TLS 1.3. Encrypted Client Hello mengubahnya, tetapi tidak universal. DNS biasa membocorkan nama sama mudahnya ketika kueri keluar tanpa enkripsi.

Protokol yang lebih tua atau salah konfigurasi menyerahkan lebih banyak. HTTP biasa, IMAP tanpa TLS, dan sejumlah protokol permainan serta IoT memaparkan muatannya kepada apa pun yang memegang deskriptor tun.

Izin yang tidak pernah menyertainya

Menyetujui VPN bukan menyetujui kontak, SMS, foto, atau penyimpanan media. Itu pemberian waktu jalan yang terpisah, masing-masing dengan dialognya sendiri dan jalur pencabutannya sendiri di halaman pengaturan aplikasi. Klien VPN yang menginginkan log panggilan Anda harus memintanya seperti aplikasi lain, dan Anda dapat menolak sambil mempertahankan terowongan.

Pemasangan sertifikat adalah yang perlu diperhatikan, karena tampak seperti bagian dari penyiapan VPN padahal bukan. Memasang CA pengguna ke penyimpanan kredensial mengubah sertifikat mana yang akan diterima Android, dan sejak Android 7.0 aplikasi yang menargetkan API 24 atau lebih baru mengabaikan CA yang ditambahkan pengguna kecuali konfigurasi keamanan jaringannya memilihnya dengan jangkar kepercayaan pengguna. Klien yang bersikeras pada CA mungkin melakukan intersepsi perusahaan yang sah, atau mungkin meminta sesuatu yang tidak pernah disebut dialog VPN.

Akses aksesibilitas berada lebih jauh lagi. Layanan dengan aksesibilitas aktif dapat membaca konten layar aplikasi lain, yang tidak diberikan oleh posisi mana pun di tingkat paket.

Penyaring lokal atau gerbang jauh

API yang sama mencakup dua produk yang pantas mendapat tingkat kepercayaan berbeda. Tembok api atau pemblokir iklan di perangkat mengambil deskriptor tun dan menjawab lalu lintas secara lokal, tanpa pernah mengirimnya ke server yang ia jalankan sendiri. Terowongan sungguhan meneruskan paket itu ke gerbang di tempat lain, dan operator itu melihat metadata yang sama dari ujung lain sekaligus memutuskan apa yang kembali.

Cara praktis membedakannya adalah memeriksa alamat publik Anda dengan VPN menyala dan mati, lalu melihat apakah notifikasinya menyebut titik akhir jauh. Jika alamatnya tidak pernah berubah, lalu lintasnya kemungkinan berputar di perangkat itu sendiri.

Kedua kasus tetap merupakan posisi paket. Bedanya adalah siapa lagi yang berdiri di pintu keluar.

Audit apa yang Anda setujui

Buka Setelan, lalu Jaringan dan internet, lalu VPN, dan bacalah entrinya, bukan ikon di bilah status. VPN selalu aktif dan Blokir koneksi tanpa VPN adalah setelan perangkat yang menjaga antarmuka tetap hidup dan memotong kebocoran; keduanya tidak memperluas apa pun. Dari layar yang sama Anda dapat melupakan profil dan mencabut pemberian itu.

Lalu telusuri izin lainnya. Info aplikasi menunjukkan pemberian waktu jalan mana yang dipegang klien, dan setelan Keamanan menunjukkan apakah sertifikat pengguna dipasang pada saat yang sama. Keduanya dapat dihapus secara terpisah.

Pertanyaan yang layak dijawab itu sempit: paket mana yang masuk ke layanan ini, ke mana perginya, dan apa yang disimpan implementasinya. Sisanya di dialog itu hanya kebisingan. Referensi VpnService adalah daftar otoritatif tentang apa yang dipaparkan antarmuka.

Artikel terkait