Izvoz VPN profila s Androida izgleda kao korak sigurnosne kopije, a izbornik koji ga nudi ne čini ništa da ispravi taj dojam. Ono što nosite sa sobom je ulaz za parser, ključ koji operativni sustav možda nikada neće vratiti i autorizacija izdana upravo tom telefonu. Odvojite to troje i pojavljuje se korisno pitanje: koji dio još nedostaje na novom uređaju?

Datoteka je lagani dio. Ostala dva odlučuju hoće li migracija uspjeti.

Što izvezeni profil zapravo sadrži

Otvorite datoteku u uređivaču teksta prije nego joj povjerujete. OpenVPN profil je mali konfiguracijski jezik: remote, proto, data-ciphers i često ugrađeni blokovi <ca>, <cert>, <key> ili <tls-crypt> koje klijent predaje svom TLS stogu. WireGuard konfiguracija je ravnija, [Interface] drži PrivateKey i Address, zatim po jedan [Peer] za svaku krajnju točku koji nosi PublicKey, AllowedIPs i Endpoint. IKEv2 dolazi kao .mobileconfig s rječnicima korisnog tereta umjesto blokova ključeva.

Ništa od tog teksta nije vjerodajnica samo po sebi. Vjerodajnica je privatni ključ, a svaki ga format ili lijepi unutra ili upućuje na alias koji se razrješava samo unutar klijenta koji ga je stvorio.

Gdje ključ zapravo živi na Androidu

Android čuva podatke aplikacija pod /data/data/<package>, čitljive samo tom UID-u aplikacije. Ne postoji podržan način da kopirate privatni direktorij druge aplikacije s telefona bez roota, a adb backup je prestao biti opći odgovor nakon što ga je Android 12 ukinuo i klijenti počeli deklarirati allowBackup="false". Zato izvoz iz Android klijenta znači ono što taj klijent implementira, a ne kopiju datotečnog sustava.

Sloj identiteta nalazi se ispod aplikacije. Ako je klijent uvezao vaš ključ u Android Keystore, materijal se tamo generira ili zamotava, a kasniji izvozi mogu nositi referencu na Keystore alias umjesto bajtova. Ključevi s hardverskom podrškom napravljeni su tako da ih čak ni aplikacija vlasnik ne može pročitati, kako opisuje Keystore documentation, pa se profil koji upućuje na taj alias čisto uvozi na istom telefonu i ne uspijeva svugdje drugdje.

To nije pokvaren izvoz. To je svojstvo koje je platforma zamoljena pružiti.

Što profil ne može prenijeti

Postavite objekte prema onome što će odredište prihvatiti:

ObjektPrenosi se?Zašto
Protokol i krajnja točkaDa, ako odredišni klijent to podržavaObičan tekst u profilu
CA certifikat i provjera imena hostaObičnoJavni materijal, ali ime hosta i dalje mora odgovarati certifikatu
Klijentski certifikatDa, osim ako nije vezan uz pojedini uređajCertifikati su prenosivi; izdavatelj odlučuje koliko uređaja smije koristiti jedan
Privatni ključSamo ako je generiran izvan KeystoreaKljučevi s hardverskom podrškom ne mogu se izvesti, samo zamijeniti
Račun, MFA, SSO sesijaNeTokeni istječu i ostaju vezani uz uređaj koji ih je dobio
Rute, DNS i obuhvat aplikacijaSamo kao konfiguracijski tekstAndroid ih primjenjuje pri povezivanju kroz VpnService.Builder
Popis aplikacija za split-tunnelRijetkoNazivi paketa razlikuju se među uređajima, a popis je stanje klijenta

Dva retka stvaraju većinu zabune. Ključ generiran na uređaju i označen kao neizvoziv doista nestaje s podacima aplikacije, pa je zamjena novi ključ i certifikat izdan za njega. Sesijski token kopiran na novi telefon obično umire pri prvom osvježavanju, što izgleda kao neuspješan uvoz.

Uvoz je parsiranje, a zatim zahtjev za pristanak

Na strani primatelja uvoz je parsiranje nakon kojeg slijedi upis. Klijent čita konfiguraciju, provjerava postoji li svaki navedeni blok, a zatim upisuje definiciju tunela u svoj sandbox, zbog čega datoteka koju ste odabrali iz Preuzimanja nije ono što se zatim povezuje.

Zatim dolazi korak autorizacije koji nijedna datoteka ne može preskočiti. Android zahtijeva da aplikacija pozove VpnService.prepare() i dobije vaš pristanak prije nego što uspostavi tunel, pa svježe uvezeni profil još jednom prikazuje sistemski dijalog. Zatim se tunel izričito gradi kroz addAddress, addRoute, addDnsServer i addAllowedApplication ili addDisallowedApplication za usmjeravanje po aplikacijama. Ništa od toga ne proizlazi iz krajnje točke, pa isti profil može proizvesti različit skup djelotvornih ruta u dva klijenta.

Postavke temeljene na certifikatima dodaju još jedno račvanje. Kad poslužitelj izda certifikat određenom uređaju, kao što to čine MDM i SCEP upis, njegovo ponovno korištenje na drugom telefonu ili radi dok poslužitelj ne nametne jednu sesiju po identitetu ili ne uspije na TLS rukovanju. Provjerite politiku izdavatelja prije nego planirate ponovnu upotrebu.

Provjerite novi uređaj prije nego umirovite stari

Držite stari telefon povezan dok novi ne prođe nešto bolje od zelene ikone. Potvrdite izlaznu adresu s novog uređaja i DNS resolver koji je zaista koristio. Ako je split tunneling važan, pokrenite aplikaciju koja treba zaobići tunel i onu koja ne treba, pa pogledajte koja dolazi do vašeg ISP-a.

Jedna provjera rješava izlaznu adresu. Otvorite https://ifconfig.me u pregledniku telefona, zatim pokrenite curl -s https://ifconfig.me s prijenosnog računala na istoj Wi-Fi mreži i usporedite oba odgovora s adresom koju je dodijelio vaš pružatelj.

Tek tada umirovite stari identitet i to kroz izdavatelja: opozovite certifikat ili uklonite uređaj s računa. Brisanje datoteke iz Preuzimanja ništa ne završava, jer dva uređaja s istim certifikatom izgledaju jednako u poslužiteljskom dnevniku.

Ako se izvoz pokaže neprenosivim, rješenje je nova registracija, a ne javni konfiguracijski paket. Zatražite profil za drugi uređaj ili generirajte par ključeva na novom telefonu i pošaljite CSR; sporije je i to je put koji izdavatelj podržava.

Prođite kontrolni popis prije nego bilo što izbrišete: novi uređaj se povezuje, izlazna adresa i DNS se podudaraju, obuhvat po aplikacijama je onakav kakav ste namjeravali, stari identitet je opozvan, a svaka konfiguracijska datoteka koju ste zadržali nalazi se u šifriranom spremištu.

Povezani članci