Android VPN nasuprot dopuštenjima aplikacija: što znači upozorenje
Androidov dijalog za pristanak na VPN daje poziciju na razini paketa, a ne pristup vašoj e-pošti, fotografijama ili kontaktima. Evo gdje ta granica zapravo stoji.
Dva se Androida dijaloga stalno miješaju: upit za pristanak na VPN i zahtjevi za dopuštenjima koje aplikacija traži za vaše podatke. Prvi predaje mrežnu poziciju, mjesto na kojem se paketi mogu čitati i prepisivati. Drugi predaje pohranjeni sadržaj koji Android čuva aplikaciju po aplikaciju. Ako ih tretirate kao jednu stvar, ili preuveličavate što tunel može vidjeti, ili ozbiljno podcjenjujete što će odlučna aplikacija tražiti sljedeće.
Što dijalog za pristanak zapravo predaje
Aplikacija koja implementira VpnService i deklarira BIND_VPN_SERVICE traži od sustava da postane VPN uređaja. Nakon odobrenja okvir stvara tun sučelje i daje aplikaciji datotečni deskriptor za njega. Sve što aplikacija nakon toga radi prolazi kroz taj deskriptor: čita IP pakete iz njega, odlučuje što će s njima i upisuje pakete natrag.
Opseg tog sučelja je eksplicitan. Rute odlučuju koja se odredišta hvataju, a addAllowedApplication ili addDisallowedApplication odlučuje koje ga aplikacije hrane. VPN po aplikaciji koji navodi dvije aplikacije ne vidi ostatak uređaja.
To je dopuštenje na razini paketa, ne na razini podataka. Usluga vidi bajtove koje aplikacija predaje mrežnom stogu, adresirane na odredište. Ne dobiva pristup privatnom spremištu aplikacije koja šalje, njezinim datotekama baze podataka ni njezinoj dešifriranoj memoriji. Datoteke koje aplikacija spremi u vlastiti sandbox ostaju jednako teške za čitanje kao i prije.
Gdje se pogled na pakete zaustavlja
TLS i dalje radi svoj posao unutar tunela, jer rukovanje teče između aplikacije i poslužitelja, a ne između aplikacije i VPN-a. VPN prosljeđuje šifrirani tekst koji ne može dešifrirati bez sesijskih ključeva. Zato tunel sam po sebi ne otkriva sadržaj HTTPS stranice ili zaštićene mail sesije.
Metapodaci oko šifriranog teksta druga su priča i tu se većina samouvjerenih tvrdnji raspada. Odredišni IP, port, veličine paketa i vrijeme sve su vidljivi, plus ime poslužitelja u TLS ClientHello, koje se obično šalje otvoreno čak i pod TLS 1.3. Encrypted Client Hello to mijenja, ali nije univerzalno. Obični DNS jednako lako odaje imena kada upiti izlaze nešifrirani.
Stariji ili loše konfigurirani protokoli predaju više. Obični HTTP, IMAP bez TLS-a i niz igraćih i IoT protokola izlažu svoj teret svemu što drži tun deskriptor.
Dopuštenja koja nikada ne dolaze s tim
Odobravanje VPN-a ne odobrava kontakte, SMS, fotografije ni medijsku pohranu. To su odvojena dopuštenja u vrijeme izvršavanja, svako sa svojim dijalogom i svojim putem opoziva na stranici postavki aplikacije. VPN klijent koji želi vaš dnevnik poziva mora ga tražiti kao i svaka druga aplikacija, a vi možete odbiti i zadržati tunel.
Instalacija certifikata je ona na koju treba paziti, jer izgleda kao dio VPN postavljanja, a nije. Instalacija korisničkog CA u spremište vjerodajnica mijenja koje će certifikate Android prihvatiti, a od Androida 7.0 aplikacija koja cilja API 24 ili noviji zanemaruje korisnički dodane CA osim ako se njezina mrežna sigurnosna konfiguracija uključi s korisničkim sidrom povjerenja. Klijent koji inzistira na CA možda radi legitimno korporativno presretanje, a možda traži nešto što dijalog VPN-a nikada nije spomenuo.
Pristup pristupačnosti stoji još dalje. Usluga s uključenom pristupačnošću može čitati sadržaj zaslona drugih aplikacija, što nikakva pozicija na razini paketa ne daje.
Lokalni filtar ili udaljeni gateway
Isti API pokriva dva proizvoda koja zaslužuju različite razine povjerenja. Vatrozid ili blokator oglasa na uređaju uzima tun deskriptor i odgovara na promet lokalno, nikada ga ne šaljući poslužitelju kojim upravlja. Pravi tunel prosljeđuje te pakete gatewayu negdje drugdje, a taj operater vidi iste metapodatke s druge strane i pritom odlučuje što se vraća.
Praktičan način da ih razlikujete jest provjeriti svoju javnu adresu s uključenim i isključenim VPN-om i pogledati navodi li obavijest udaljenu krajnju točku. Ako se adresa nikada ne mijenja, promet se vjerojatno vrti unutar uređaja.
Oba su slučaja i dalje pozicija na razini paketa. Razlika je ko još stoji na izlazu.
Provjerite što ste odobrili
Otvorite Postavke, zatim Mreža i internet, zatim VPN, i čitajte stavku, a ne ikonu u statusnoj traci. VPN uvijek uključen i Blokiraj veze bez VPN-a postavke su uređaja koje drže sučelje živim i presijecaju curenja; one ništa ne proširuju. S istog zaslona možete zaboraviti profil i opozvati dopuštenje.
Zatim prođite kroz ostala dopuštenja. Informacije o aplikaciji pokazuju koja dopuštenja u vrijeme izvršavanja klijent ima, a sigurnosne postavke pokazuju je li istodobno instaliran korisnički certifikat. Bilo koje od njih može se ukloniti neovisno.
Pitanje na koje vrijedi odgovoriti usko je: koji paketi ulaze u ovu uslugu, kamo idu i što implementacija zadržava. Sve ostalo u dijalogu je šum. Referenca za VpnService autoritativan je popis onoga što sučelje izlaže.