IKEv2 VPN profili na Androidu su po korisniku, ne po uređaju
Tunel se uspostavlja po korisniku i po paketu koji poziva, pa stavka na telefonu može biti pogrešna. Provjerite vlasništvo prije postavki.
Izraz ugrađeni VPN na Androidu pokriva dvije nepovezane stvari: implementaciju protokola koju platforma pokreće umjesto vas i onaj oblik postavki koji je proizvođač odlučio izložiti. To nije isti objekt i nijedno od toga ne garantuje da tunel pripada korisniku čijim aplikacijama treba. Uspostavljanje se dešava u određenom korisniku s određenim paketom koji poziva, i sve što slijedi nasljeđuje taj kontekst. Pročitajte lanac vlasništva prije ekrana postavki.
Šta platforma gradi za vas
Od Android 11 platforma izlaže uspostavljanje VPN-a kroz VpnManager. Odobrena aplikacija opisuje IKEv2 profil, a platforma sama vodi razmjenu IPsec i IKE, pa aplikacija nikad ne dira pakete. To je suštinska 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)Poziv iznad je skica oblika, a ne blok za kopiranje: konstruktor ima nekoliko varijanti provjere identiteta, razlikuju se po nivou API-ja, a profil nosi i materijal povjerenja za serverski certifikat. Za pitanje vlasništva bitno je uže od sintakse.
Iz ovog dizajna slijede dvije osobine. Profil je podatak, pa ga administrator može uspostaviti umjesto da ga kuca ručno. A tunel je mreža platforme, pa ga aplikacije vide kao mrežu s VPN transportom, a ne kao socket neke druge aplikacije.
Vlasništvo je korisnik, pa paket
Višekorisnički Android je stvarno razdvajanje, a ne oznaka. Radni profil je odvojen korisnik sa svojim instaliranim paketima, svojim podacima aplikacija, svojim spremištem ključeva i svojim sidrima povjerenja. Isti proizvod instaliran na oba mjesta su dvije instance s različitim identifikatorima korisnika, čak i kad su ikone pokretača i nazivi proizvoda identični.
Uspostavljanje se bilježi uz paket koji poziva u tom korisniku. Zato aplikacija za uspostavljanje koja radi u ličnom profilu stvara lični tunel, a radne aplikacije u radnom profilu od njega ne vide ništa. Vrijedi i obrnuto, zato je tunel radnog profila nevidljiv ličnim 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 vjerovatan vlasnik sive stavke i nije vaše da je brišete kao eksperiment.
Tri kapije prije nego paket krene
Prva kapija je ovlaštenje: upravljanje uopće mora dopustiti VPN, a neke implementacije ograničavaju i vrstu i samo postojanje. Druga je identitet: klijentski certifikat ili akreditivi moraju biti dostupni u korisniku koji posjeduje profil, jer certifikat uvezen u lično spremište ključeva nije vidljiv radnom profilu.
Treća je pristanak i politika. Korisnik obično odobri vezu pri prvoj upotrebi, a administrator je može dodatno prikvačiti kao uvijek uključenu, opcionalno sa zaključavanjem da promet ne može izaći izvan tunela. Te postavke odlučuju šta se dešava kad tunel padne, a to je dio koji korisnici primijete.
Obim je mjesto gdje se sve troje sreće. Profil određuje pristupnik i identitet, dok sloj politike odlučuje koje aplikacije smiju koristiti tunel i da li se promet prisilno vodi kroz njega. Zato dva telefona s identičnim adresama pristupnika mogu se ponašati vrlo različito.
Zašto lična 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 ličnom profilu ga ne nosi, koliko god indikator 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 unutrašnje usluge.
Razrješavanje imena slijedi istu granicu. Privatni DNS sufiksi i sidra povjerenja su po korisniku, pa unutrašnje ime hosta koje se razrješava u ličnom profilu može pasti u radnom čak i uz naizgled ekvivalentan tunel, jer su politika razrješivača i spremište CA različiti objekti.
Provjeravajte na stvarnoj prijavi, ne na laboratorijskom telefonu
Na uređaju prvo prepoznajte vlasnika stavke: koji korisnik, koji paket i da li profil dolazi od platformskog uspostavljača ili od aplikacije s vlastitom VPN uslugom. Zatim potvrdite da je identitet koji profil očekuje zaista prisutan u spremištu ključeva tog korisnika.
Testirajte životni ciklus, ne samo povezivanje. Prijavite se, otključajte spremište akreditiva, 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 poslije radnog vremena nosi tunel sa sobom, i to je očekivano ponašanje a ne kvar, pod uslovom da je očekivano nedostupno stanje zapisano.
Na kraju testirajte samu radnu aplikaciju prema poznatoj unutrašnjoj krajnjoj tački i uporedite s rezultatom ličnog profila. Njih dvoje se smiju razlikovati; ono što se ne smije razlikovati je 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 meni, i ne kopirajte privatne ključeve između profila da bi se veza pojavila. Referenca VpnManager dokumentuje šta pozivalac smije uspostaviti; ako odobreni put ne uključuje vaš slučaj, to je odluka za administratora, a ne problem postavki.