Izraz ugrađeni VPN na Androidu obuhvaća dvije nepovezane stvari: implementaciju protokola koju platforma izvršava umjesto vas i onaj oblik postavki koji je proizvođač odlučio izložiti. To nije isti objekt i nijedno od njih ne jamči da tunel pripada korisniku čijim aplikacijama treba. Uspostava se događa u određenom korisniku s određenim paketom koji poziva, i sve što slijedi nasljeđuje taj kontekst. Pročitajte lanac vlasništva prije zaslona postavki.

Što platforma gradi za vas

Od Androida 11 platforma izlaže uspostavu VPN-a kroz VpnManager. Odobrena aplikacija opisuje IKEv2 profil, a platforma sama vodi razmjenu IPsec i IKE, pa aplikacija nikada ne dira pakete. To je bitna razlika prema vlastitoj VPN aplikaciji, 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)

Poziv gore je skica oblika, a ne blok za kopiranje: graditelj ima nekoliko inačica provjere identiteta, razlikuju se po razini API-ja, a profil nosi i materijal povjerenja za poslužiteljev certifikat. Za pitanje vlasništva bitno je uže od sintakse.

Iz ovog dizajna slijede dva svojstva. Profil je podatak, pa ga administrator može uspostaviti umjesto da ga upisuje ručno. A tunel je mreža platforme, pa ga aplikacije vide kao mrežu s VPN prijenosom, a ne kao utičnicu druge aplikacije.

Vlasnik je korisnik, zatim paket

Višekorisnički Android pravo je razdvajanje, a ne oznaka. Radni profil zaseban je korisnik s vlastitim instaliranim paketima, vlastitim podacima aplikacija, vlastitom pohranom ključeva i vlastitim sidrima povjerenja. Isti proizvod instaliran na oba mjesta dvije su instance s različitim identifikatorima korisnika, čak i kad su ikone pokretača i nazivi proizvoda jednaki.

Uspostava se bilježi uz paket koji poziva u tom korisniku. Zato aplikacija za uspostavu u osobnom profilu stvara osobni tunel, a radne aplikacije u radnom profilu od njega ne vide ništa. Vrijedi i obratno, zato je tunel radnog profila nevidljiv osobnim aplikacijama bez izričite politike koja kaže drukčije.

Kontroler politike uređaja može uspostaviti u ime upravljanog profila, što objašnjava stavku za koju se nitko u uredu ne sjeća da ju je stvorio. Ako revidirate telefon, to je vjerojatni vlasnik sive stavke i nije vaše da je brišete kao pokus.

Tri vrata prije nego paket krene

Prva vrata su ovlast: uprava uopće mora dopustiti VPN, a neka uvlačenja ograničavaju i vrstu uz postojanje. Druga su identitet: klijentski certifikat ili vjerodajnice moraju biti dostupni u korisniku koji posjeduje profil, jer certifikat uvezen u osobnu pohranu ključeva nije vidljiv radnom profilu.

Treća su privola i politika. Korisnik obično odobri vezu pri prvoj upotrebi, a administrator je može dodatno prikvačiti kao uvijek uključenu, po želji sa zaključavanjem 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 troje susreće. Profil određuje pristupnik i identitet, dok sloj politike odlučuje koje aplikacije smiju rabiti tunel i je li promet prisilno voden kroz njega. Zato se dva telefona s jednakim adresama pristupnika 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 ona je u tom korisniku. Tunel uspostavljen u osobnom profilu ne nosi ga, koliko god pokazatelj izgledao zdravo. Ta jedna činjenica objašnjava većinu prijava u kojima se korisnik kune da je VPN povezan a jedna aplikacija ipak ne dolazi do unutarnje usluge.

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

Provjeravajte na stvarnoj prijavi, ne na laboratorijskom telefonu

Na uređaju najprije prepoznajte vlasnika stavke: koji korisnik, koji paket i dolazi li profil od platformskog uspostavljača ili od aplikacije s vlastitom VPN uslugom. Zatim potvrdite da je identitet koji profil očekuje doista prisutan u pohrani ključeva tog korisnika.

Testirajte životni ciklus, ne samo povezivanje. Prijavite se, otključajte pohranu vjerodajnica, pustite radni profil da predahne za večer, pa ga vratite i provjerite vraća li se tunel bez ručnog dodira. Radni profil koji se isključi poslije radnoga vremena nosi tunel sa sobom, i to je očekivano ponašanje a ne kvar, uz uvjet da je očekivano nedostupno stanje zapisano.

Naposljetku testirajte samu radnu aplikaciju prema poznatoj unutarnjoj završnoj točki i usporedite s rezultatom osobnog profila. Njih dvoje smiju se razlikovati; ono što se ne smije razlikovati jest model vlasništva. Ako tunel pripada pogrešnom korisniku, nikakvo ponovno izdavanje certifikata to neće popraviti.

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

Povezani članci