Izraz ugrađeni VPN na Androidu pokriva dvije nepovezane stvari: implementaciju protokola koju platforma pokreće u vaše ime i onaj oblik postavki koji je proizvođač odlučio izložiti. To nije isti objekt i nijedno od toga ne jamči da tunel pripada korisniku čijim aplikacijama treba. Postavljanje se događa u određenom korisniku s određenim paketom koji poziva, a sve što slijedi nasljeđuje taj kontekst. Pročitajte lanac vlasništva prije nego pročitate ekran postavki.

Šta platforma gradi za vas

Od Androida 11 platforma izlaže postavljanje VPN-a kroz VpnManager. Odobrena aplikacija opisuje IKEv2 profil, a platforma sama izvodi IPsec i IKE razmjenu, pa aplikacija nikada ne dira pakete. To je bitna razlika u odnosu na vlastitu VPN aplikaciju, koja implementira VpnService i gradi tunel u vlastitom procesu.

val profile = Ikev2VpnProfile.Builder(serverAddress, identity)
    .setAuthUsernamePassword(user, secret, rootCa)
    .build()
getSystemService(VpnManager::class.java).provisionVpnProfile(profile)

Gornji poziv je skica oblika, a ne blok za kopiranje: graditelj ima nekoliko varijanti autentifikacije, one se razlikuju po razini API-ja, a profil nosi i materijal povjerenja za certifikat poslužitelja. Za pitanje vlasništva bitno je uže od sintakse.

Iz ovog dizajna slijede dva svojstva. Profil je podatak, pa ga može postaviti administrator umjesto da se ručno upisuje. I tunel je mreža platforme, pa se aplikacijama prikazuje kao mreža s VPN transportom, a ne kao utičnica druge aplikacije.

Vlasništvo je prvo korisnik, zatim paket

Višekorisnički rad na Androidu je stvarno razdvajanje, a ne oznaka. Radni profil je zaseban korisnik s vlastitim instaliranim paketima, vlastitim podacima aplikacija, vlastitim keystoreom i vlastitim sidrima povjerenja. Isti proizvod instaliran na oba mjesta dvije su instance s različitim korisničkim identifikatorima, čak i kada su ikone u pokretaču i nazivi proizvoda identični.

Postavljanje se bilježi uz paket koji poziva u tom korisniku. Zato aplikacija za postavljanje koja radi u osobnom profilu stvara osobni tunel, a radne aplikacije u radnom profilu ne vide ništa od njega. Obrnuto je također istina, i zato je tunel radnog profila nevidljiv osobnim aplikacijama bez izričite politike koja govori drukčije.

Kontroler politike uređaja može postavljati u ime upravljanog profila, i to objašnjava unos koji se nitko u uredu ne sjeća da je stvorio. Ako revidirate telefon, to je vjerojatni vlasnik posivjelog profila, i nije na vama da ga izbrišete kao eksperiment.

Tri kapije prije nego se paket pomakne

Prva kapija je ovlast: upravljanje mora uopće dopustiti VPN, a neka uvođenja ograničavaju i vrstu, ne samo postojanje. Druga je identitet: klijentski certifikat ili vjerodajnice moraju biti dostupni u korisniku koji posjeduje profil, jer certifikat uvezen u osobni keystore nije vidljiv radnom profilu.

Treća je privola i politika. Korisnik obično odobri vezu pri prvoj uporabi, a administrator je može dodatno prikvačiti kao uvijek uključenu, po želji sa zaključavanjem tako da promet ne može izaći izvan tunela. Te postavke odlučuju što se događa kad tunel padne, a to je dio koji korisnici primijete.

Opseg je mjesto gdje se sve tri sastaju. Profil određuje pristupnik i identitet, dok sloj politike odlučuje koje aplikacije smiju koristiti tunel i je li promet prisilno usmjeren kroz njega. Dva telefona s identičnim adresama pristupnika zato se mogu ponašati vrlo različito.

Zašto osobna veza ne pokriva radne aplikacije

Promet iz radne aplikacije nastaje u radnom korisniku, a mrežna politika koja se primjenjuje je ona u tom korisniku. Tunel uspostavljen u osobnom profilu ne prenosi ga, koliko god indikator izgledao zdravo. Ta jedna činjenica objašnjava većinu prijava u kojima korisnik tvrdi da je VPN spojen, a jedna određena aplikacija ipak ne doseže internu uslugu.

Razrješavanje imena slijedi istu granicu. Privatni DNS sufiksi i sidra povjerenja postavljaju se po korisniku, pa interno ime hosta koje se razrješava u osobnom profilu može pasti u radnom profilu čak i uz naizgled jednak tunel, jer su politika razrješivača i spremište CA različiti objekti.

Provjerite na stvarnoj prijavi, ne na laboratorijskom telefonu

Na uređaju najprije utvrdite vlasnika unosa: koji korisnik, koji paket i je li profil došao od platformskog postavljača ili od aplikacije koja implementira vlastitu VPN uslugu. Zatim potvrdite da je identitet koji profil očekuje doista prisutan u keystoreu tog korisnika.

Testirajte životni ciklus, ne samo vezu. Prijavite se, otključajte spremište vjerodajnica, pustite radni profil da pauzira za večer, pa ga vratite i provjerite vraća li se tunel bez ručnog dodira. Radni profil koji se isključi nakon radnog vremena nosi tunel sa sobom, i to je očekivano ponašanje, a ne kvar, pod uvjetom da je očekivano nedostupno stanje zapisano.

Na kraju testirajte samu radnu aplikaciju prema poznatoj internoj završnoj točki i usporedite s rezultatom osobnog profila. Njih se dvoje smije razlikovati; ono što se ne smije razlikovati jest model vlasništva. Ako tunel pripada pogrešnom korisniku, ponovno izdavanje certifikata ništa ne popravlja.

Ne forsirajte stvar pokretanjem skrivenih aktivnosti postavki da otkrijete izbornik i ne kopirajte privatne ključeve između profila da bi se veza pojavila. Referenca VpnManager dokumentira što pozivatelj smije postaviti; ako odobreni put ne uključuje vaš slučaj, to je odluka za administratora, a ne problem s postavkama.

Povezani članci