Android VPN-eksport: hva som faktisk overføres til en ny telefon
En Android VPN-eksport sender innstillinger og av og til en nøkkel, men aldri enhetsautorisasjonen. Sjekk hva som faktisk flyttes før du sletter den gamle telefonen.
Å eksportere en VPN-profil fra Android føles som et trinn i en sikkerhetskopi, og menyen som tilbyr det gjør ingenting for å rette opp det inntrykket. Det du sitter igjen med, er en inndata til en parser, en nøkkel som operativsystemet kanskje aldri gir tilbake, og en autorisasjon som er utstedt til nettopp denne telefonen. Skiller du de tre, dukker det nyttige spørsmålet opp: hvilken del mangler fortsatt på den nye enheten?
Selve filen er den enkle delen. De to andre avgjør om flyttingen lykkes.
Hva en eksportert profil faktisk inneholder
Åpne filen i en teksteditor før du stoler på den. En OpenVPN-profil er et lite konfigurasjonsspråk: remote, proto, data-ciphers og ofte innebygde blokker <ca>, <cert>, <key> eller <tls-crypt> som klienten gir videre til TLS-stakken. En WireGuard-konfigurasjon er enklere bygget: [Interface] inneholder PrivateKey og Address, deretter én [Peer] per endepunkt med PublicKey, AllowedIPs og Endpoint. IKEv2 kommer som en .mobileconfig med nyttelastordbøker i stedet for nøkkelblokker.
Ingen av disse tekstene er i seg selv et innloggingsbevis. Innloggingsbeviset er den private nøkkelen, og hvert format enten limer den inn eller peker til et alias som bare løses inne i klienten som laget det.
Hvor nøkkelen faktisk ligger på Android
Android lagrer appdata under /data/data/<package>, som bare kan leses av UID-en til den aktuelle appen. Det finnes ingen støttet måte å kopiere en annen apps private mappe fra en telefon uten root, og adb backup sluttet å være et allment svar etter at Android 12 fjernet det og klientene begynte å erklære allowBackup="false". En eksport fra en Android-klient betyr derfor det klienten selv implementerer, ikke en kopi av filsystemet.
Identitetslaget ligger under appen. Hvis en klient har importert nøkkelen din til Android Keystore, blir materialet generert eller pakket inn der, og senere eksporter kan inneholde en referanse til et Keystore-alias i stedet for selve bytene. Maskinvarestøttede nøkler er laget slik at selv appen som eier dem ikke kan lese dem ut, slik Keystore documentation beskriver, og en profil som peker på dette aliaset importeres derfor rent på samme telefon, men feiler overalt ellers.
Dette er ikke en ødelagt eksport. Det er egenskapen plattformen ble bedt om å levere.
Hva en profil ikke kan ta med seg
Sammenlign objektene med det en mottaker vil godta:
| Objekt | Overføres det? | Hvorfor |
|---|---|---|
| Protokoll og endepunkt | Ja, dersom mottakerklienten støtter det | Klartekst i profilen |
| CA-sertifikat og kontroll av vertsnavn | Vanligvis | Offentlig materiale, men vertsnavnet må fortsatt samsvare med sertifikatet |
| Klientsertifikat | Ja, med mindre det er bundet til hver enhet | Sertifikater kan flyttes; utstederen bestemmer hvor mange enheter som kan bruke ett |
| Privat nøkkel | Bare dersom den er generert utenfor Keystore | Maskinvarestøttede nøkler kan ikke eksporteres, bare byttes ut |
| Konto, MFA, SSO-økt | Nei | Tokener utløper og forblir knyttet til enheten som skaffet dem |
| Ruter, DNS og app-omfang | Kun som konfigurasjonstekst | Android anvender dem ved tilkobling gjennom VpnService.Builder |
| Appliste for delt tunnel | Sjelden | Pakkenavn varierer mellom enheter, og listen er klienttilstand |
To rader står for mesteparten av forvirringen. En nøkkel som genereres på enheten og merkes som ikke-eksporterbar, er faktisk borte sammen med appdataene, og erstatningen er en ny nøkkel pluss et sertifikat utstedt til den. Et sesjonstoken som kopieres til en ny telefon, dør vanligvis ved første oppdatering, noe som fremstår som en mislykket import.
Import er først en parsing, deretter en forespørsel om samtykke
På mottakersiden er import en parsing som etterfølges av en commit. Klienten leser konfigurasjonen, kontrollerer at hver refererte blokk finnes, og skriver deretter tunneldefinisjonen inn i sin egen sandkasse, og det er derfor filen du valgte fra Nedlastinger ikke er det som kobles til etterpå.
Deretter kommer et autorisasjonstrinn som ingen fil kan hoppe over. Android krever at appen kaller VpnService.prepare() og mottar samtykket ditt før den kan opprette en tunnel, så en nylig importert profil viser fortsatt systemdialogen én gang. Deretter bygges tunnelen eksplisitt gjennom addAddress, addRoute, addDnsServer og addAllowedApplication eller addDisallowedApplication for ruting per app. Ingenting av dette følger av et endepunkt, så den samme profilen kan gi et annet effektivt rutesett i to klienter.
Oppsett basert på sertifikater legger til en ekstra forgrening. Når serveren utsteder et sertifikat til en bestemt enhet, slik MDM og SCEP-registrering gjør, virker gjenbruk på en annen telefon enten helt til serveren krever én økt per identitet, eller det feiler i TLS-håndtrykket. Kontroller utstederens retningslinjer før du planlegger gjenbruk.
Verifiser den nye enheten før du avvikler den gamle
La den gamle telefonen være tilkoblet til den nye har bestått noe bedre enn et grønt ikon. Bekreft utgangsadressen fra den nye enheten og DNS-oppløseren den faktisk brukte. Hvis split tunneling er viktig, start en app som skal omgå tunnelen og en som ikke skal, og se hvilken som når leverandøren din.
Én kontroll avgjør utgangsadressen. Åpne https://ifconfig.me i telefonens nettleser, og kjør deretter curl -s https://ifconfig.me fra en bærbar PC på samme Wi-Fi, og sammenlign begge svarene med adressen leverandøren din tildelte.
Først da avvikler du den gamle identiteten, og du gjør det gjennom utstederen: tilbakekall sertifikatet eller fjern enheten fra kontoen. Å slette en fil fra Nedlastinger avslutter ingenting, fordi to enheter med det samme sertifikatet ser identiske ut i serverloggen.
Hvis eksporten viser seg å være ikke-flyttbar, er løsningen en ny registrering, ikke en offentlig konfigurasjonspakke. Be om en profil for en ekstra enhet, eller generer nøkkelparet på den nye telefonen og send inn CSR-en; det er langsommere, og det er veien utstederen støtter.
Gå gjennom sjekklisten før du sletter noe: ny enhet kobler til, utgangsadresse og DNS stemmer, app-omfanget er som tenkt, gammel identitet er tilbakekalt, og enhver konfigurasjonsfil du har tatt vare på, ligger i kryptert lagring.