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

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

Šta izvezeni profil zapravo sadrži

Otvorite datoteku u uređivaču teksta prije nego što 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 tačku koji nosi PublicKey, AllowedIPs i Endpoint. IKEv2 dolazi kao .mobileconfig sa rječnicima tereta umjesto blokova ključeva.

Ništa od tog teksta nije akreditiv samo po sebi. Akreditiv je privatni ključ, a svaki format ga 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 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 generira ili umotava, 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 svuda drugdje.

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

Šta profil ne može prenijeti

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

ObjektPrenosi se?Zašto
Protokol i krajnja tač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 po uređajuCertifikati su prenosivi; izdavač 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 za uređaj koji ih je dobio
Rute, DNS i obuhvat aplikacijaSamo kao konfiguracijski tekstAndroid ih primjenjuje pri povezivanju kroz VpnService.Builder
Lista aplikacija za split-tunnelRijetkoNazivi paketa razlikuju se između uređaja, a lista je stanje klijenta

Dva reda stvaraju većinu zabune. Ključ generiran na uređaju i označen kao neizvoziv zaista nestaje s podacima aplikacije, pa je zamjena novi ključ plus 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 da svaki navedeni blok postoji, a zatim upisuje definiciju tunela u svoj sandbox, zbog čega datoteka koju ste odabrali iz Preuzimanja nije ono što se potom 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. Tunel se zatim izričito gradi kroz addAddress, addRoute, addDnsServer i addAllowedApplication ili addDisallowedApplication za usmjeravanje 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 certifikatima dodaju još jedno račvanje. Kada server izda certifikat određenom uređaju, kao što to rade MDM i SCEP upis, njegovo ponovno korištenje na drugom telefonu ili radi dok server ne nametne jednu sesiju po identitetu ili ne uspije na TLS rukovanju. Provjerite politiku izdavača prije nego što planirate ponovnu upotrebu.

Provjerite novi uređaj prije nego što 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 pitanje izlazne adrese. Otvorite https://ifconfig.me u pregledniku telefona, zatim pokrenite curl -s https://ifconfig.me s laptopa na istoj Wi-Fi mreži i uporedite oba odgovora s adresom koju je dodijelio vaš provajder.

Tek tada umirovite stari identitet i to kroz izdavača: 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 identično u serverskom 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 izdavač podržava.

Prođite kroz kontrolnu listu prije nego što bilo šta obriš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 pohranjivanju.

Povezani članci