Android VPN verzus povolenia aplikácií: čo znamená upozornenie
Súhlasný dialóg VPN v Androide udeľuje pozíciu na úrovni paketov, nie prístup k e-mailu, fotkám alebo kontaktom. Tu tá hranica skutočne leží.
Dva dialógy v Androide sa neustále zamieňajú: výzva na súhlas s VPN a žiadosti o povolenia, ktoré aplikácia vznáša na vaše údaje. Prvá odovzdáva sieťovú pozíciu, miesto, kde možno pakety čítať a prepisovať. Druhá odovzdáva uložený obsah, ktorý Android chráni aplikáciu po aplikácii. Ak ich považujeme za jednu vec, buď preháňame, čo tunel môže vidieť, alebo hrubo podceňujeme, čo si odhodlaná aplikácia vyžiada nabudúce.
Čo súhlasný dialóg skutočne odovzdáva
Aplikácia, ktorá implementuje VpnService a deklaruje BIND_VPN_SERVICE, žiada systém, aby sa stal VPN zariadenia. Po schválení rámec vytvorí rozhranie tun a dá aplikácii deskriptor súboru preň. Všetko, čo aplikácia potom robí, prechádza týmto deskriptorom: číta z neho IP pakety, rozhoduje, čo s nimi urobí, a zapisuje pakety späť dovnútra.
Rozsah tohto rozhrania je výslovný. Trasy rozhodujú, ktoré ciele sa zachytia, a addAllowedApplication alebo addDisallowedApplication rozhoduje, ktoré aplikácie ho napĺňajú. VPN pre jednotlivé aplikácie, ktorá uvádza dve aplikácie, nevidí zvyšok zariadenia.
Je to povolenie na úrovni paketov, nie na úrovni údajov. Služba vidí bajty, ktoré aplikácia odovzdá sieťovému zásobníku, adresované na cieľ. Nedostane prístup k súkromnému úložisku odosielajúcej aplikácie, k jej databázovým súborom ani k jej dešifrovanej pamäti. Súbory, ktoré aplikácia uložila vo svojom vlastnom sandboxe, zostávajú presne rovnako ťažko čitateľné ako predtým.
Kde sa pohľad na pakety končí
TLS stále robí svoju prácu vnútri tunela, pretože handshake prebieha medzi aplikáciou a serverom, nie medzi aplikáciou a VPN. VPN preposiela šifrovaný text, ktorý bez kľúčov relácie nedokáže dešifrovať. Preto tunel sám o sebe neodhalí obsah stránky HTTPS ani chránenej e-mailovej relácie.
Metadáta okolo šifrovaného textu sú iný príbeh a práve tu sa rozpadá väčšina sebavedomých tvrdení. Cieľová IP adresa, port, veľkosti paketov a časovanie sú viditeľné, plus názov servera v TLS ClientHello, ktorý sa zvyčajne posiela otvorene aj pod TLS 1.3. Encrypted Client Hello to mení, ale nie je univerzálne. Obyčajný DNS prezrádza názvy rovnako ľahko, keď dopyt odchádza nešifrovaný.
Staršie alebo nesprávne nakonfigurované protokoly odovzdávajú viac. Obyčajný HTTP, IMAP bez TLS a rada herných a IoT protokolov vystavuje svoje užitočné zaťaženie všetkému, čo drží deskriptor tun.
Povolenia, ktoré nikdy neprichádzajú spolu s tým
Schválenie VPN neschvaľuje kontakty, SMS, fotky ani mediálne úložisko. To sú samostatné povolenia za behu, každé s vlastným dialógom a vlastnou cestou odvolania na stránke nastavení aplikácie. Klient VPN, ktorý chce váš zoznam hovorov, oň musí požiadať ako ktorákoľvek iná aplikácia, a vy môžete odmietnuť a tunel si ponechať.
Inštalácia certifikátu je tá, na ktorú treba dávať pozor, pretože vyzerá ako súčasť nastavenia VPN, ale nie je. Inštalácia používateľskej CA do úložiska poverení mení, ktoré certifikáty Android prijme, a od Androidu 7.0 aplikácia cieliaca na API 24 alebo novšie ignoruje používateľom pridané CA, ak sa jej konfigurácia zabezpečenia siete neprihlási s používateľskou kotvou dôvery. Klient, ktorý na CA trvá, môže vykonávať legitímne podnikové odpočúvanie, alebo môže žiadať niečo, čo dialóg VPN nikdy nespomenul.
Prístup k zjednodušeniu ovládania stojí ešte ďalej. Služba s povoleným zjednodušením ovládania môže čítať obsah obrazovky iných aplikácií, čo žiadna pozícia na úrovni paketov neposkytuje.
Lokálny filter alebo vzdialená brána
To isté API pokrýva dva produkty, ktoré si zaslúžia rôznu mieru dôvery. Firewall alebo blokovač reklám v zariadení vezme deskriptor tun a odpovedá na prevádzku lokálne, pričom ju nikdy neodošle na server, ktorý sám prevádzkuje. Skutočný tunel preposiela tie pakety bráne niekde inde a tento operátor vidí rovnaké metadáta z druhého konca a zároveň rozhoduje, čo sa vráti.
Praktický spôsob, ako ich rozlíšiť, je skontrolovať svoju verejnú adresu so zapnutou a vypnutou VPN a pozrieť sa, či oznámenie menuje vzdialený koncový bod. Ak sa adresa nikdy nemení, prevádzka sa pravdepodobne krúti na samotnom zariadení.
Oba prípady sú stále pozíciou na úrovni paketov. Rozdiel je v tom, kto ďalší stojí pri východe.
Preverte, čo ste schválili
Otvorte Nastavenia, potom Sieť a internet, potom VPN, a čítajte položku, nie ikonu v stavovom riadku. Trvalá VPN a Blokovať pripojenia bez VPN sú nastavenia zariadenia, ktoré držia rozhranie nažive a odrezávajú úniky; nič nerozširujú. Z tej istej obrazovky môžete profil zabudnúť a povolenie odvolať.
Potom prejdite ostatné povolenia. Informácie o aplikácii ukazujú, ktoré povolenia za behu klient má, a nastavenia Zabezpečenia ukazujú, či bol súčasne nainštalovaný používateľský certifikát. Ktorékoľvek z nich možno odstrániť nezávisle.
Otázka, na ktorú sa oplatí odpovedať, je úzka: ktoré pakety vstupujú do tejto služby, kam idú a čo implementácia uchováva. Všetko ostatné v dialógu je šum. Referencia VpnService je autoritatívny zoznam toho, čo rozhranie zverejňuje.