Izvoz VPN profila sa Androida izgleda kao korak sigurnosne kopije, a meni koji ga nudi ne čini ništa da ispravi taj utisak. Ono što dobijete je ulaz za parser, ključ koji operativni sistem možda nikad neće vratiti i autorizacija izdata baš tom telefonu. Razdvojite ta tri dela i pojavljuje se korisno pitanje: koji deo još nedostaje na novom uređaju?

Datoteka je lakši deo. Druga dva odlučuju hoće li migracija uspeti.

Šta izvezeni profil zaista sadrži

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

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

Gde ključ zaista ž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 direktorijum druge aplikacije sa telefona bez roota, a adb backup je prestao biti opšti odgovor nakon što ga je Android 12 ukinuo i klijenti počeli deklarisati allowBackup="false". Zato izvoz iz Android klijenta znači ono što taj klijent implementira, a ne kopiju datotečnog sistema.

Sloj identiteta nalazi se ispod aplikacije. Ako je klijent uvezao vaš ključ u Android Keystore, materijal se tamo generiše ili umotava, a kasniji izvozi mogu nositi referencu na Keystore alias umesto bajtova. Ključevi sa 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 uspeva svuda drugde.

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

Šta profil ne može preneti

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

ObjekatPrenosi se?Zašto
Protokol i krajnja tačkaDa, ako odredišni klijent to podržavaObičan tekst u profilu
CA sertifikat i provera imena hostaObičnoJavni materijal, ali ime hosta i dalje mora odgovarati sertifikatu
Klijentski sertifikatDa, osim ako nije vezan po uređajuSertifikati su prenosivi; izdavalac odlučuje koliko uređaja sme koristiti jedan
Privatni ključSamo ako je generisan izvan KeystoreaKljučevi sa hardverskom podrškom ne mogu se izvesti, samo zameniti
Nalog, MFA, SSO sesijaNeTokeni ističu i ostaju vezani za uređaj koji ih je dobio
Rute, DNS i obuhvat aplikacijaSamo kao konfiguracioni tekstAndroid ih primenjuje pri povezivanju kroz VpnService.Builder
Lista aplikacija za split-tunnelRetkoNazivi paketa razlikuju se između uređaja, a lista je stanje klijenta

Dva reda stvaraju većinu zabune. Ključ generisan na uređaju i označen kao neizvoziv zaista nestaje sa podacima aplikacije, pa je zamena novi ključ plus sertifikat izdat za njega. Sesijski token kopiran na novi telefon obično umire pri prvom osvežavanju, što izgleda kao neuspešan uvoz.

Uvoz je parsiranje, a zatim zahtev za pristanak

Na strani primaoca uvoz je parsiranje nakon kojeg sledi upis. Klijent čita konfiguraciju, proverava da svaki navedeni blok postoji, a zatim upisuje definiciju tunela u svoj sandbox, zbog čega datoteka koju ste izabrali iz Preuzimanja nije ono što se potom povezuje.

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

Postavke zasnovane na sertifikatima dodaju još jedno račvanje. Kada server izda sertifikat određenom uređaju, kao što to čine MDM i SCEP upis, njegovo ponovno korišćenje na drugom telefonu ili radi dok server ne nametne jednu sesiju po identitetu ili ne uspe na TLS rukovanju. Proverite politiku izdavaoca pre nego što planirate ponovnu upotrebu.

Proverite novi uređaj pre nego što umirovite stari

Držite stari telefon povezan dok novi ne prođe nešto bolje od zelene ikone. Potvrdite izlaznu adresu sa 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 provera rešava pitanje izlazne adrese. Otvorite https://ifconfig.me u pregledaču telefona, zatim pokrenite curl -s https://ifconfig.me sa laptopa na istoj Wi-Fi mreži i uporedite oba odgovora sa adresom koju je dodelio vaš provajder.

Tek tada umirovite stari identitet i to kroz izdavaoca: opozovite sertifikat ili uklonite uređaj sa naloga. Brisanje datoteke iz Preuzimanja ništa ne završava, jer dva uređaja sa istim sertifikatom izgledaju identično u serverskom dnevniku.

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

Prođite kontrolnu listu pre nego što bilo šta obrišete: novi uređaj se povezuje, izlazna adresa i DNS se podudaraju, obuhvat po aplikacijama je onakav kakav ste nameravali, stari identitet je opozvan, a svaka konfiguraciona datoteka koju ste zadržali nalazi se u šifrovanom skladištu.

Povezani članci