VPN Android lwn kebenaran aplikasi: apa maksud amaran itu
Dialog persetujuan VPN Android memberikan kedudukan paket, bukan akses kepada e-mel, foto atau kenalan anda. Di sinilah letaknya sempadan itu sebenarnya.
Dua dialog Android sentiasa dikelirukan: gesaan persetujuan VPN dan permintaan kebenaran yang dibuat oleh aplikasi terhadap data anda. Yang pertama menyerahkan kedudukan rangkaian, titik di mana paket boleh dibaca dan ditulis semula. Yang kedua menyerahkan kandungan tersimpan yang dijaga Android aplikasi demi aplikasi. Menganggap kedua-duanya sebagai satu perkara sama ada membesar-besarkan apa yang boleh dilihat oleh terowong, atau amat meremehkan apa yang akan diminta oleh aplikasi gigih seterusnya.
Apa yang sebenarnya diserahkan oleh dialog persetujuan
Aplikasi yang melaksanakan VpnService dan mengisytiharkan BIND_VPN_SERVICE meminta sistem menjadi VPN peranti. Selepas kelulusan, rangka kerja mencipta antara muka tun dan memberikan aplikasi itu deskriptor fail untuknya. Semua yang aplikasi lakukan selepas itu mengalir melalui deskriptor tersebut: ia membaca paket IP keluar, memutuskan apa yang perlu dilakukan dengannya, dan menulis paket kembali masuk.
Skop antara muka itu jelas. Laluan menentukan destinasi mana yang ditangkap, dan addAllowedApplication atau addDisallowedApplication menentukan aplikasi mana yang memberinya data. VPN per aplikasi yang menyenaraikan dua aplikasi tidak melihat seluruh peranti yang lain.
Itu pemberian pada peringkat paket, bukan pada peringkat data. Perkhidmatan melihat bait yang diserahkan aplikasi kepada tindanan rangkaian, dialamatkan kepada sesuatu destinasi. Ia tidak mendapat akses kepada storan peribadi aplikasi yang menghantar, fail pangkalan datanya atau memori yang telah dinyahsulit. Fail yang disimpan aplikasi dalam kotak pasirnya sendiri kekal sama sukar dibaca seperti sebelum ini.
Di mana pandangan paket berhenti
TLS masih menjalankan tugasnya di dalam terowong, kerana jabat tangan berlaku antara aplikasi dan pelayan, bukan antara aplikasi dan VPN. VPN memajukan teks sifer yang tidak dapat dinyahsulit tanpa kunci sesi. Itulah sebabnya terowong sahaja tidak mendedahkan kandungan halaman HTTPS atau sesi mel yang dilindungi.
Metadata di sekeliling teks sifer adalah kisah lain, dan di sinilah kebanyakan dakwaan yakin runtuh. IP destinasi, port, saiz paket dan masa semuanya kelihatan, ditambah nama pelayan dalam TLS ClientHello, yang biasanya dihantar secara terbuka walaupun di bawah TLS 1.3. Encrypted Client Hello mengubahnya, tetapi ia tidak universal. DNS biasa membocorkan nama sama mudah apabila pertanyaan keluar tanpa penyulitan.
Protokol yang lebih lama atau salah dikonfigurasi menyerahkan lebih banyak. HTTP biasa, IMAP tanpa TLS dan beberapa protokol permainan serta IoT mendedahkan muatannya kepada apa sahaja yang memegang deskriptor tun.
Kebenaran yang tidak pernah datang bersamanya
Meluluskan VPN bukan meluluskan kenalan, SMS, foto atau stor media. Itu pemberian masa jalan yang berasingan, masing-masing dengan dialognya sendiri dan laluan pembatalannya sendiri di halaman tetapan aplikasi. Klien VPN yang mahukan log panggilan anda mesti memintanya seperti mana-mana aplikasi lain, dan anda boleh menolak sambil mengekalkan terowong itu.
Pemasangan sijil ialah perkara yang perlu diberi perhatian, kerana ia kelihatan seperti bahagian persediaan VPN tetapi bukan. Memasang CA pengguna dalam stor kelayakan mengubah sijil mana yang akan diterima Android, dan sejak Android 7.0 aplikasi yang menyasarkan API 24 atau lebih baru mengabaikan CA yang ditambah pengguna melainkan konfigurasi keselamatan rangkaiannya memilihnya dengan sauh kepercayaan pengguna. Klien yang berkeras mahukan CA mungkin menjalankan pemintasan perusahaan yang sah, atau mungkin meminta sesuatu yang tidak pernah disebut oleh dialog VPN.
Akses kebolehcapaian terletak lebih jauh lagi. Perkhidmatan yang mengaktifkan kebolehcapaian boleh membaca kandungan skrin aplikasi lain, yang tidak diberikan oleh mana-mana kedudukan pada peringkat paket.
Penapis setempat atau get laluan jauh
API yang sama merangkumi dua produk yang layak mendapat tahap kepercayaan berbeza. Tembok api atau penyekat iklan pada peranti mengambil deskriptor tun dan menjawab trafik secara setempat, tanpa pernah menghantarnya kepada pelayan yang dikendalikannya sendiri. Terowong sebenar memajukan paket itu ke get laluan di tempat lain, dan pengendali itu melihat metadata yang sama dari hujung yang lain serta memutuskan apa yang kembali.
Cara praktikal untuk membezakannya ialah memeriksa alamat awam anda dengan VPN dihidupkan dan dimatikan, dan melihat sama ada pemberitahuan itu menamakan titik akhir jauh. Jika alamat itu tidak pernah berubah, trafik itu mungkin berpusing semula pada peranti itu sendiri.
Kedua-dua kes masih merupakan kedudukan paket. Bezanya ialah siapa lagi yang berdiri di pintu keluar.
Audit apa yang anda luluskan
Buka Tetapan, kemudian Rangkaian dan internet, kemudian VPN, dan baca entri itu dan bukannya ikon di bar status. VPN sentiasa aktif dan Sekat sambungan tanpa VPN ialah tetapan peranti yang mengekalkan antara muka hidup dan memotong kebocoran; ia tidak meluaskan apa-apa. Dari skrin yang sama anda boleh melupakan profil dan membatalkan pemberian itu.
Kemudian telusuri kebenaran lain. Maklumat aplikasi menunjukkan pemberian masa jalan mana yang dimiliki klien, dan tetapan Keselamatan menunjukkan sama ada sijil pengguna dipasang pada masa yang sama. Kedua-duanya boleh dibuang secara berasingan.
Soalan yang wajar dijawab itu sempit: paket mana yang masuk ke perkhidmatan ini, ke mana ia pergi, dan apa yang disimpan oleh pelaksanaannya. Segala-galanya dalam dialog itu hanya bunyi bising. Rujukan VpnService ialah senarai berwibawa tentang apa yang didedahkan oleh antara muka itu.