Androidi VPN-i eksport: mis tegelikult uude telefoni üle kandub
Androidi VPN-i eksport saadab seaded ja mõnikord võtme, kuid mitte kunagi seadme autoriseerimist. Kontrollige, mis tegelikult üle läheb, enne kui vana telefoni kustutate.
VPN-profiili eksportimine Androidist tundub varukoopia sammuna ja menüü, mis seda pakub, ei tee midagi selle mulje parandamiseks. Kaasa saate parseri sisendi, võtme, mida operatsioonisüsteem ei pruugi kunagi tagasi anda, ja autoriseerimise, mis on välja antud just sellele telefonile. Eraldage need kolm ja ilmub kasulik küsimus: milline osa on uuel seadmel veel puudu?
Fail on lihtne osa. Ülejäänud kaks otsustavad, kas migratsioon õnnestub.
Mida eksporditud profiil tegelikult sisaldab
Avage fail tekstiredaktoris, enne kui seda usaldate. OpenVPN-i profiil on väike konfiguratsioonikeel: remote, proto, data-ciphers ja sageli reasisene <ca>, <cert>, <key> või <tls-crypt> plokk, mille klient annab oma TLS-pinule. WireGuard konfiguratsioon on lamedam: [Interface] hoiab PrivateKey ja Address, seejärel üks [Peer] iga lõpp-punkti kohta, mis kannab PublicKey, AllowedIPs ja Endpoint. IKEv2 saabub .mobileconfig-na, milles on võtmeblokkide asemel kasuliku koormuse sõnastikud.
Ükski sellest tekstist ei ole iseenesest mandaat. Mandaat on privaatvõti ja iga vorm kas kleebib selle sisse või osutab aliasele, mis lahendatakse ainult selle kliendi sees, mis selle lõi.
Kus võti Androidis tegelikult elab
Android hoiab rakenduse andmeid /data/data/<package> all, mida saab lugeda ainult selle rakenduse UID. Juurimata telefonist teise rakenduse privaatkataloogi kopeerimiseks puudub toetatud viis ja adb backup lakkas olemast üldine vastus pärast seda, kui Android 12 selle keelustas ja kliendid hakkasid deklareerima allowBackup="false". Nii et eksport Androidi kliendist tähendab seda, mida see klient rakendab, mitte failisüsteemi koopiat.
Identiteedikiht asub rakenduse all. Kui klient importis teie võtme Android Keystore'i, genereeritakse või mähitakse materjal seal ja hilisemad ekspordid võivad kanda viidet Keystore'i aliasele, mitte baitidele. Riistvaratoega võtmed on ehitatud nii, et isegi omav rakendus ei saa neid välja lugeda, nagu kirjeldab Keystore documentation, seega sellele aliasele osutav profiil imporditakse samas telefonis puhtalt ja ebaõnnestub kõikjal mujal.
See ei ole katkine eksport. See on omadus, mida platvormilt paluti pakkuda.
Mida profiil üle kanda ei saa
Seadke objektid selle kõrvale, mida sihtkoht vastu võtab:
| Objekt | Kas kandub üle? | Miks |
|---|---|---|
| Protokoll ja lõpp-punkt | Jah, kui sihtkliendi klient seda toetab | Lihttekst profiilis |
| CA-sertifikaat ja hostinime kontroll | Tavaliselt | Avalik materjal, kuid hostinimi peab ikka sertifikaadiga sobima |
| Kliendisertifikaat | Jah, kui see ei ole seadmepõhiselt seotud | Sertifikaadid on teisaldatavad; väljaandja otsustab, kui palju seadmeid ühte kasutada tohib |
| Privaatvõti | Ainult kui see loodi väljaspool Keystore'i | Riistvaratoega võtmeid ei saa eksportida, neid saab ainult asendada |
| Konto, MFA, SSO-seanss | Ei | Märgised aeguvad ja jäävad seotuks seadmega, mis need sai |
| Marsruudid, DNS ja rakenduste ulatus | Ainult konfiguratsioonitekstina | Android rakendab neid ühendamisel VpnService.Builderi kaudu |
| Jagatud tunneliga rakenduste loend | Harva | Pakettide nimed erinevad seadmete vahel ja loend on kliendi olek |
Kaks rida põhjustavad suurema osa segadusest. Seadmes loodud ja mitteeksporditavaks märgitud võti kaob tõesti rakenduse andmetega, seega asendus on uus võti pluss sellele välja antud sertifikaat. Uude telefoni kopeeritud seansi märgis sureb tavaliselt esimesel värskendusel, mis näib ebaõnnestunud importimisena.
Import on parsimine ja seejärel nõusoleku küsimine
Vastuvõtva poole jaoks on import parsimine, millele järgneb kinnitamine. Klient loeb konfiguratsiooni, kontrollib, et iga viidatud plokk on olemas, ja kirjutab seejärel tunneli definitsiooni oma liivakasti, mistõttu Allalaaditutest valitud fail ei ole see, mis hiljem ühendub.
Siis tuleb autoriseerimissamm, millest ükski fail mööda ei saa. Android nõuab, et rakendus kutsuks VpnService.prepare() ja saaks teie nõusoleku, enne kui see võib tunneli luua, seega värskelt imporditud profiil näitab süsteemidialoogi ikka korra. Seejärel ehitatakse tunnel selgesõnaliselt addAddress, addRoute, addDnsServer ning addAllowedApplication või addDisallowedApplication kaudu rakendusepõhise marsruutimise jaoks. Ükski neist ei tulene lõpp-punktist, seega sama profiil võib kahes kliendis anda erineva tegelike marsruutide komplekti.
Sertifikaadipõhised seadistused lisavad veel ühe hargnemise. Kui server annab sertifikaadi konkreetsele seadmele, nagu teevad MDM ja SCEP-i registreerimine, siis selle uuesti kasutamine teises telefonis kas töötab seni, kuni server nõuab ühte seanssi identiteedi kohta, või ebaõnnestub TLS-i käepigistuses. Kontrollige väljaandja poliitikat, enne kui kavatsete seda uuesti kasutada.
Kontrollige uut seadet enne, kui vana kõrvale panete
Hoidke vana telefon ühendatud, kuni uus on läbinud midagi rohelisest ikoonist paremat. Kinnitage uue seadme väljumisaadress ja DNS-resolver, mida see tegelikult kasutas. Kui split tunneling on oluline, käivitage rakendus, mis peaks tunnelist mööda minema, ja üks, mis ei peaks, ning vaadake, kumb jõuab teie teenusepakkujani.
Üks kontroll lahendab väljumisaadressi. Avage telefonis brauseris https://ifconfig.me, seejärel käivitage curl -s https://ifconfig.me samas Wi-Fi-võrgus sülearvutist ja võrrelge mõlemat vastust teie teenusepakkuja määratud aadressiga.
Alles siis panete vana identiteedi kõrvale ja tehke seda väljaandja kaudu: tühistage sertifikaat või eemaldage seade kontolt. Faili kustutamine Allalaaditutest ei lõpeta midagi, sest kaks sama sertifikaati hoidvat seadet näevad serveri logis identsed välja.
Kui eksport osutub mittekaasaskantavaks, on lahendus uus registreerimine, mitte avalik konfiguratsioonipakett. Küsige teise seadme profiili või genereerige võtmepaar uues telefonis ja esitage CSR; aeglasem, ja see on tee, mida väljaandja toetab.
Käige kontroll-loend läbi enne, kui midagi kustutate: uus seade ühendub, väljumisaadress ja DNS ühtivad, rakendusepõhine ulatus on nii nagu kavatsesite, vana identiteet on tühistatud ja iga alles jäetud konfiguratsioonifail asub krüpteeritud hoiustus.