Export VPN na Androide: čo sa naozaj prenesie do nového telefónu
Export VPN na Androide prenáša nastavenia a niekedy kľúč, ale nikdy autorizáciu zariadenia. Skontrolujte, čo sa naozaj prenesie, skôr než vymažete starý telefón.
Export profilu VPN z Androidu pôsobí ako krok zálohy a ponuka, ktorá ho ponúka, s týmto dojmom nič nerobí. Zostane vám vstup pre parser, kľúč, ktorý operačný systém možno nikdy nevráti, a autorizácia vydaná práve tomuto telefónu. Oddeľte tieto tri veci a objaví sa užitočná otázka: ktorá časť na novom zariadení ešte chýba?
Súbor je tá ľahšia časť. Ďalšie dve rozhodujú, či migrácia bude fungovať.
Čo exportovaný profil skutočne obsahuje
Skôr než mu uveríte, otvorte súbor v textovom editore. Profil OpenVPN je malý konfiguračný jazyk: remote, proto, data-ciphers a často vložené bloky <ca>, <cert>, <key> alebo <tls-crypt>, ktoré klient odovzdáva svojmu TLS zásobníku. Konfigurácia WireGuard je plochejšia: [Interface] drží PrivateKey a Address, potom jeden [Peer] pre každý koncový bod s PublicKey, AllowedIPs a Endpoint. IKEv2 prichádza ako .mobileconfig so slovníkmi užitočného zaťaženia namiesto blokov kľúčov.
Žiadny z týchto textov nie je sám osebe poverením. Poverením je súkromný kľúč a každý formát ho buď vloží dovnútra, alebo ukazuje na alias, ktorý sa vyrieši len v klientovi, ktorý ho vytvoril.
Kde kľúč na Androide skutočne žije
Android uchováva dáta aplikácií pod /data/data/<package>, čítať ich môže len UID danej aplikácie. Neexistuje podporovaný spôsob, ako z telefónu bez rootu skopírovať súkromný adresár inej aplikácie, a adb backup prestal byť všeobecnou odpoveďou po tom, čo ho Android 12 zrušil a klienti začali deklarovať allowBackup="false". Export z androidového klienta teda znamená to, čo daný klient implementuje, nie kópiu súborového systému.
Vrstva identity leží pod aplikáciou. Ak klient importoval váš kľúč do Android Keystore, materiál sa tam generuje alebo zabalí, a neskoršie exporty môžu niesť odkaz na alias v Keystore namiesto bajtov. Kľúče s hardvérovou podporou sú navrhnuté tak, že ich nedokáže prečítať ani vlastniaca aplikácia, ako popisuje Keystore documentation, takže profil odkazujúci na tento alias sa na tom istom telefóne importuje čisto a všade inde zlyhá.
To nie je pokazený export. To je vlastnosť, ktorú mala platforma poskytnúť.
Čo profil nedokáže preniesť
Postavte objekty proti tomu, čo cieľové zariadenie prijme:
| Objekt | Prenesie sa? | Prečo |
|---|---|---|
| Protokol a koncový bod | Áno, ak mu cieľový klient rozumie | Prostý text v profile |
| CA certifikát a kontrola názvu hostiteľa | Zvyčajne | Verejný materiál, ale názov hostiteľa musí stále zodpovedať certifikátu |
| Klientsky certifikát | Áno, ak nie je viazaný na zariadenie | Certifikáty sú prenosné; vydavateľ rozhoduje, koľko zariadení smie jeden používať |
| Súkromný kľúč | Len ak bol vygenerovaný mimo Keystore | Kľúče s hardvérovou podporou nemožno exportovať, len nahradiť |
| Účet, MFA, relácia SSO | Nie | Tokeny vypršia a zostanú viazané na zariadenie, ktoré ich získalo |
| Trasy, DNS a rozsah aplikácií | Iba ako konfiguračný text | Android ich uplatní pri pripojení cez VpnService.Builder |
| Zoznam aplikácií pre rozdelený tunel | Zriedka | Názvy balíkov sa medzi zariadeniami líšia a zoznam je stav klienta |
Dva riadky spôsobujú väčšinu zmätku. Kľúč vygenerovaný v zariadení a označený ako neexportovateľný skutočne zmizne s dátami aplikácie, takže náhradou je nový kľúč a certifikát preň vydaný. Relačný token skopírovaný do nového telefónu zvyčajne zomrie pri prvom obnovení, čo vyzerá ako neúspešný import.
Import je parsovanie a potom žiadosť o súhlas
Na prijímajúcej strane je import parsovanie nasledované zápisom. Klient prečíta konfiguráciu, overí, že každý odkazovaný blok existuje, a potom zapíše definíciu tunela do svojho sandboxu, a preto súbor, ktorý ste vybrali zo Stiahnutých súborov, nie je to, čo sa potom pripojí.
Potom prichádza autorizačný krok, ktorý žiadny súbor nemôže preskočiť. Android vyžaduje, aby aplikácia zavolala VpnService.prepare() a získala váš súhlas, kým môže vytvoriť tunel, takže čerstvo importovaný profil ešte raz zobrazí systémový dialóg. Tunel sa potom vytvára explicitne pomocou addAddress, addRoute, addDnsServer a addAllowedApplication alebo addDisallowedApplication na smerovanie podľa aplikácií. Nič z toho nevyplýva z koncového bodu, takže ten istý profil môže v dvoch klientoch vytvoriť inú sadu efektívnych trás.
Nastavenia založené na certifikátoch pridávajú ešte jedno rozvetvenie. Keď server vydá certifikát konkrétnemu zariadeniu, ako to robí MDM a zápis SCEP, jeho opätovné použitie na druhom telefóne buď funguje, kým server nevynúti jednu reláciu na identitu, alebo zlyhá pri TLS handshake. Pred plánovaním opätovného použitia skontrolujte zásady vydavateľa.
Overte nové zariadenie, kým to staré vyradíte
Nechajte starý telefón pripojený, kým nový neprejde niečím lepším než zelená ikona. Overte výstupnú adresu z nového zariadenia a DNS resolver, ktorý skutočne použilo. Ak záleží na split tunneling, spustite aplikáciu, ktorá má tunel obísť, a jednu, ktorá nemá, a pozrite sa, ktorá dosiahne vášho poskytovateľa.
Jedna kontrola rozhodne o výstupnej adrese. Otvorte https://ifconfig.me v prehliadači telefónu, potom spustite curl -s https://ifconfig.me z notebooku v tej istej Wi-Fi a obe odpovede porovnajte s adresou, ktorú vám pridelil poskytovateľ.
Až potom vyraďte starú identitu, a to prostredníctvom vydavateľa: odvolajte certifikát alebo odstráňte zariadenie z účtu. Zmazanie súboru zo Stiahnutých súborov nič neukončí, pretože dve zariadenia s rovnakým certifikátom vyzerajú v protokole servera rovnako.
Ak sa export ukáže ako neprenosný, riešením je nová registrácia, nie verejný konfiguračný balík. Požiadajte o profil pre druhé zariadenie alebo vygenerujte pár kľúčov v novom telefóne a odošlite CSR; je to pomalšie a je to cesta, ktorú vydavateľ podporuje.
Prejdite kontrolný zoznam, kým čokoľvek zmažete: nové zariadenie sa pripojí, výstupná adresa a DNS zodpovedajú, rozsah podľa aplikácií je taký, ako ste zamýšľali, stará identita je odvolaná a každý konfiguračný súbor, ktorý ste si nechali, je v šifrovanom úložisku.