Izvoz VPN v Androidu: kaj se v resnici prenese v novi telefon
Izvoz VPN v Androidu prenese nastavitve in včasih ključ, nikoli pa avtorizacije naprave. Preden izbrišete stari telefon, preverite, kaj se v resnici prenese.
Izvoz profila VPN iz Androida je videti kot korak varnostnega kopiranja, in meni, ki to ponuja, ne naredi ničesar, da bi ta vtis popravil. Ostane vam vhod za razčlenjevalnik, ključ, ki ga operacijski sistem morda nikoli ne vrne, in avtorizacija, izdana prav temu telefonu. Ločite te tri stvari in pojavi se koristno vprašanje: kateri del na novi napravi še manjka?
Datoteka je lažji del. Drugi dve odločata, ali bo selitev uspela.
Kaj izvoženi profil v resnici vsebuje
Preden mu zaupate, odprite datoteko v urejevalniku besedila. Profil OpenVPN je majhen konfiguracijski jezik: remote, proto, data-ciphers in pogosto vgrajeni bloki <ca>, <cert>, <key> ali <tls-crypt>, ki jih odjemalec preda svojemu skladu TLS. Konfiguracija WireGuard je bolj ploska: [Interface] vsebuje PrivateKey in Address, nato po en [Peer] za vsako končno točko z PublicKey, AllowedIPs in Endpoint. IKEv2 pride kot .mobileconfig s slovarji koristne obremenitve namesto blokov ključev.
Nobeno od teh besedil samo po sebi ni poverilnica. Poverilnica je zasebni ključ in vsaka oblika ga bodisi vstavi znotraj bodisi pokaže na vzdevek, ki se razreši samo znotraj odjemalca, ki ga je ustvaril.
Kje ključ v resnici živi v Androidu
Android hrani podatke aplikacij pod /data/data/<package>, berljive samo za UID te aplikacije. Ni podprtega načina, da bi s telefona brez roota kopirali zasebno mapo druge aplikacije, in adb backup ni bil več splošen odgovor, potem ko ga je Android 12 opustil in so odjemalci začeli deklarirati allowBackup="false". Izvoz iz odjemalca Android torej pomeni, kar ta odjemalec izvaja, ne kopije datotečnega sistema.
Plast identitete je pod aplikacijo. Če je odjemalec uvozil vaš ključ v Android Keystore, se gradivo tam ustvari ali zavije, poznejši izvozi pa lahko nosijo sklic na vzdevek Keystore namesto bajtov. Ključi s strojno podporo so zgrajeni tako, da jih tudi lastniška aplikacija ne more prebrati, kot opisuje Keystore documentation, zato se profil, ki kaže na ta vzdevek, na istem telefonu uvozi čisto, povsod drugje pa ne uspe.
To ni pokvarjen izvoz. To je lastnost, ki je bila od platforme zahtevana.
Česa profil ne more prenesti
Primerjajte objekte s tem, kar bo sprejela ciljna naprava:
| Objekt | Se prenese? | Zakaj |
|---|---|---|
| Protokol in končna točka | Da, če ciljni odjemalec to podpira | Golo besedilo v profilu |
| Potrdilo CA in preverjanje imena gostitelja | Običajno | Javno gradivo, vendar mora ime gostitelja še vedno ustrezati potrdilu |
| Odjemalsko potrdilo | Da, razen če je vezano na napravo | Potrdila so prenosljiva; izdajatelj odloči, koliko naprav jih lahko uporablja eno |
| Zasebni ključ | Samo če je bil ustvarjen zunaj Keystore | Ključev s strojno podporo ni mogoče izvoziti, le zamenjati |
| Račun, MFA, seja SSO | Ne | Žetoni potečejo in ostanejo vezani na napravo, ki jih je pridobila |
| Poti, DNS in obseg aplikacij | Samo kot konfiguracijsko besedilo | Android jih uporabi pri povezovanju prek VpnService.Builder |
| Seznam aplikacij za razdeljen tunel | Redko | Imena paketov se med napravami razlikujejo, seznam pa je stanje odjemalca |
Dve vrstici povzročita večino zmede. Ključ, ustvarjen v napravi in označen kot neizvozljiv, v resnici izgine s podatki aplikacije, zato je zamenjava nov ključ plus potrdilo, izdano zanj. Sejni žeton, kopiran v nov telefon, običajno umre ob prvem osvežitvi, kar je videti kot neuspešen uvoz.
Uvoz je razčlenjevanje in nato zahteva za soglasje
Na sprejemni strani je uvoz razčlenjevanje, ki mu sledi zapis. Odjemalec prebere konfiguracijo, preveri, da vsak navedeni blok obstaja, nato zapiše definicijo tunela v svoj peskovnik, zato datoteka, ki ste jo izbrali v Prenosih, ni tisto, kar se pozneje poveže.
Nato pride korak avtorizacije, ki ga nobena datoteka ne more preskočiti. Android zahteva, da aplikacija pokliče VpnService.prepare() in prejme vaše soglasje, preden lahko vzpostavi tunel, zato na novo uvožen profil še enkrat pokaže sistemsko pogovorno okno. Nato se tunel zgradi izrecno prek addAddress, addRoute, addDnsServer in addAllowedApplication ali addDisallowedApplication za usmerjanje po aplikacijah. Nič od tega ne izhaja iz končne točke, zato lahko isti profil v dveh odjemalcih ustvari drugačen nabor dejanskih poti.
Nastavitve na podlagi potrdil dodajo še eno razvejitev. Ko strežnik izda potrdilo določeni napravi, kot to počneta MDM in vpis SCEP, ponovna uporaba na drugem telefonu bodisi deluje, dokler strežnik ne zahteva ene seje na identiteto, bodisi ne uspe pri rokovanju TLS. Preden načrtujete ponovno uporabo, preverite pravilnik izdajatelja.
Preverite novo napravo, preden staro upokojite
Naj bo stari telefon povezan, dokler novi ne opravi česa boljšega od zelene ikone. Potrdite izhodni naslov iz nove naprave in DNS razreševalnik, ki ga je dejansko uporabila. Če je split tunneling pomemben, zaženite aplikacijo, ki naj bi tunel obšla, in tisto, ki ne bi smela, ter poglejte, katera doseže vašega ponudnika.
En pregled odloči o izhodnem naslovu. Odprite https://ifconfig.me v brskalniku telefona, nato zaženite curl -s https://ifconfig.me s prenosnika v istem omrežju Wi-Fi in oba odgovora primerjajte z naslovom, ki vam ga je dodelil ponudnik.
Šele nato upokojite staro identiteto, in to prek izdajatelja: prekličite potrdilo ali odstranite napravo iz računa. Brisanje datoteke iz Prenosov ne konča ničesar, ker sta dve napravi z istim potrdilom v dnevniku strežnika videti enaki.
Če se izvoz izkaže za neprenosljivega, je rešitev nova registracija, ne javni konfiguracijski paket. Zaprosite za profil za drugo napravo ali ustvarite par ključev v novem telefonu in predložite CSR; počasneje je in to je pot, ki jo izdajatelj podpira.
Pojdite skozi kontrolni seznam, preden karkoli izbrišete: nova naprava se poveže, izhodni naslov in DNS se ujemata, obseg po aplikacijah je tak, kot ste nameravali, stara identiteta je preklicana in vsaka shranjena konfiguracijska datoteka je v šifriranem shrambi.