Android VPN eksportavimas: kas iš tikrųjų persikelia į naują telefoną
Android VPN eksportas perduoda nustatymus ir kartais raktą, bet niekada įrenginio autorizaciją. Patikrinkite, kas iš tikrųjų persikelia, prieš ištrindami seną telefoną.
VPN profilio eksportavimas iš Android atrodo kaip atsarginės kopijos žingsnis, o meniu, kuris tai siūlo, nieko nedaro, kad šis įspūdis būtų pataisytas. Jums lieka parserio įvestis, raktas, kurio operacinė sistema gali niekada negrąžinti, ir autorizacija, išduota būtent tam telefonui. Atskirkite šiuos tris ir atsiras naudingas klausimas: kurios dalies naujame įrenginyje dar trūksta?
Failas yra lengvoji dalis. Kitos dvi lemia, ar migracija veiks.
Ką iš tikrųjų sudaro eksportuotas profilis
Atidarykite failą teksto redaktoriuje prieš juo pasitikėdami. OpenVPN profilis yra maža konfigūracijos kalba: remote, proto, data-ciphers ir dažnai įterpti <ca>, <cert>, <key> arba <tls-crypt> blokai, kuriuos klientas perduoda savo TLS stekui. WireGuard konfigūracija yra plokštesnė: [Interface] laiko PrivateKey ir Address, tada po vieną [Peer] kiekvienam galiniam taškui su PublicKey, AllowedIPs ir Endpoint. IKEv2 ateina kaip .mobileconfig su naudingosios apkrovos žodynais, o ne raktų blokais.
Nė vienas iš šių tekstų savaime nėra prisijungimo duomuo. Prisijungimo duomuo yra privatusis raktas, ir kiekvienas formatas jį arba įklijuoja viduje, arba nurodo slapyvardį, kuris išsprendžiamas tik to kliento viduje, kuris jį sukūrė.
Kur raktas iš tikrųjų gyvena Android
Android laiko programų duomenis po /data/data/<package>, kuriuos skaityti gali tik tos programos UID. Nėra palaikomo būdo nukopijuoti kitos programos privatų katalogą iš telefono be root, o adb backup nustojo būti bendru atsakymu po to, kai Android 12 jį panaikino ir klientai pradėjo deklaruoti allowBackup="false". Taigi eksportas iš Android kliento reiškia tai, ką tas klientas įgyvendina, o ne failų sistemos kopiją.
Tapatybės sluoksnis yra po programa. Jei klientas importavo jūsų raktą į Android Keystore, medžiaga ten generuojama arba apvyniojama, o vėlesni eksportai gali turėti nuorodą į Keystore slapyvardį, o ne baitus. Techninės įrangos palaikomi raktai sukurti taip, kad net juos turinti programa negali jų perskaityti, kaip aprašo Keystore documentation, todėl profilis, nurodantis tą slapyvardį, švariai importuojamas tame pačiame telefone ir nepavyksta visur kitur.
Tai ne lūžęs eksportas. Tai savybė, kurios buvo paprašyta iš platformos.
Ko profilis negali pernešti
Sulyginkite objektus su tuo, ką priims paskirties vieta:
| Objektas | Persikelia? | Kodėl |
|---|---|---|
| Protokolas ir galinis taškas | Taip, jei paskirties klientas jį palaiko | Paprastas tekstas profilyje |
| CA sertifikatas ir pagrindinio kompiuterio vardo patikra | Paprastai | Vieša medžiaga, bet vardas vis tiek turi atitikti sertifikatą |
| Kliento sertifikatas | Taip, jei jis nesusietas su konkrečiu įrenginiu | Sertifikatai perkeliami; išdavėjas sprendžia, kiek įrenginių gali naudoti vieną |
| Privatusis raktas | Tik jei sugeneruotas už Keystore ribų | Techninės įrangos palaikomi raktai negali būti eksportuojami, tik pakeičiami |
| Paskyra, MFA, SSO sesija | Ne | Žetonai baigiasi ir lieka susieti su įrenginiu, kuris juos gavo |
| Maršrutai, DNS ir programų apimtis | Tik kaip konfigūracijos tekstas | Android juos taiko prisijungdamas per VpnService.Builder |
| Padalinto tunelio programų sąrašas | Retai | Paketų pavadinimai skiriasi tarp įrenginių, o sąrašas yra kliento būsena |
Dvi eilutės sukelia didžiausią painiavą. Įrenginyje sugeneruotas ir neeksportuojamu pažymėtas raktas tikrai dingsta kartu su programos duomenimis, todėl pakaitalas yra naujas raktas ir jam išduotas sertifikatas. Į naują telefoną nukopijuotas sesijos žetonas paprastai miršta per pirmą atnaujinimą, o tai atrodo kaip nepavykęs importas.
Importas yra analizė, o tada sutikimo užklausa
Priimančiojoje pusėje importas yra analizė, po kurios atliekamas įrašymas. Klientas nuskaito konfigūraciją, patikrina, ar egzistuoja kiekvienas nurodytas blokas, tada įrašo tunelio apibrėžimą į savo smėlio dėžę, todėl failas, kurį pasirinkote iš Atsisiuntimų, nėra tai, kas vėliau prisijungia.
Tada ateina autorizacijos žingsnis, kurio negali praleisti joks failas. Android reikalauja, kad programa iškviestų VpnService.prepare() ir gautų jūsų sutikimą prieš sukurdama tunelį, todėl ką tik importuotas profilis vis tiek vieną kartą parodo sistemos dialogą. Tada tunelis kuriamas aiškiai per addAddress, addRoute, addDnsServer ir addAllowedApplication arba addDisallowedApplication maršrutizavimui pagal programas. Nė vienas iš jų nėra numanomas iš galinio taško, todėl tas pats profilis gali duoti skirtingą veiksmingų maršrutų rinkinį dviejuose klientuose.
Sertifikatais pagrįstos konfigūracijos prideda dar vieną šaką. Kai serveris išduoda sertifikatą konkrečiam įrenginiui, kaip tai daro MDM ir SCEP registracija, jo pakartotinis naudojimas antrame telefone arba veikia tol, kol serveris reikalauja vienos sesijos vienai tapatybei, arba nepavyksta TLS rankos paspaudime. Patikrinkite išdavėjo politiką prieš planuodami naudoti pakartotinai.
Patikrinkite naują įrenginį prieš išleisdami senąjį
Laikykite seną telefoną prijungtą, kol naujasis praeis ką nors geresnio nei žalia piktograma. Patvirtinkite išėjimo adresą iš naujo įrenginio ir DNS sprendiklį, kurį jis iš tikrųjų naudojo. Jei split tunneling svarbu, paleiskite programą, kuri turėtų apeiti tunelį, ir vieną, kuri neturėtų, ir pažiūrėkite, kuri pasiekia jūsų tiekėją.
Vienas patikrinimas išsprendžia išėjimo adresą. Atidarykite https://ifconfig.me telefono naršyklėje, tada paleiskite curl -s https://ifconfig.me iš nešiojamojo kompiuterio tame pačiame Wi-Fi ir palyginkite abu atsakymus su adresu, kurį priskyrė jūsų tiekėjas.
Tik tada išleiskite seną tapatybę, ir darykite tai per išdavėją: atšaukite sertifikatą arba pašalinkite įrenginį iš paskyros. Failo ištrynimas iš Atsisiuntimų nieko nepabaigia, nes du įrenginiai su tuo pačiu sertifikatu serverio žurnale atrodo vienodai.
Jei eksportas pasirodo neperkeliamas, sprendimas yra nauja registracija, o ne viešas konfigūracijos paketas. Paprašykite antro įrenginio profilio arba sugeneruokite raktų porą naujame telefone ir pateikite CSR; lėčiau, ir tai yra kelias, kurį palaiko išdavėjas.
Pereikite kontrolinį sąrašą prieš ką nors trindami: naujas įrenginys prisijungia, išėjimo adresas ir DNS sutampa, apimtis pagal programas yra tokia, kaip norėjote, sena tapatybė atšaukta, o bet koks išsaugotas konfigūracijos failas yra šifruotoje saugykloje.