Å eksportere ein VPN-profil frå Android kjennest som eit steg i ein sikkerheitskopi, og menyen som byr på det gjer ingen ting for å rette på det inntrykket. Det du sit att med er ei parser-inndata, ein nøkkel som operativsystemet kanskje aldri gjev tilbake, og ein autorisasjon som er skriven ut til nettopp den telefonen. Skil desse tre og det nyttige spørsmålet kjem fram: kva del manglar framleis på den nye eininga?

Fila er den enkle delen. Dei to andre avgjer om migreringa verkar.

Kva ein eksportert profil faktisk inneheld

Opne fila i eit tekstdokument før du stolar på ho. Ein OpenVPN-profil er eit lite konfigurasjonsspråk: remote, proto, data-ciphers og ofte innebygde <ca>, <cert>, <key> eller <tls-crypt>-blokker som klienten gjev til TLS-stakken sin. Ei WireGuard-konfigurasjon er flatare: [Interface] held PrivateKey og Address, deretter éin [Peer] per endepunkt med PublicKey, AllowedIPs og Endpoint. IKEv2 kjem som ein .mobileconfig med nyttelast-ordbøker i staden for nøkkelblokker.

Ingen av den teksten er ein legitimasjon i seg sjølv. Legitimasjonen er den private nøkkelen, og kvart format limer han inn eller peikar på eit alias som berre vert løyst opp inne i klienten som laga det.

Kvar nøkkelen faktisk bur på Android

Android oppbevarer appdata under /data/data/<package>, lesbare berre av UID-en til den appen. Det finst ingen støtta måte å kopiere ein annan apps private katalog frå ein telefon utan root, og adb backup slutta å vere eit generelt svar etter at Android 12 la det ned og klientar byrja å erklære allowBackup="false". Så ein eksport frå ein Android-klient tyder det klienten implementerer, ikkje ein kopi av filsystemet.

Identitetslaget ligg under appen. Viss ein klient importerte nøkkelen din til Android Keystore, vert materialet generert eller pakka der, og seinare eksportar kan bere ein referanse til eit Keystore-alias i staden for byta. Maskinvarestøtta nøklar er bygde slik at sjølv eigarappen ikkje kan lese dei ut, som Keystore documentation skildrar, så ein profil som peikar på det aliaset vert importert reint på same telefonen og feilar overalt elles.

Det er ikkje ein øydelagd eksport. Det er eigenskapen plattforma vart beden om å levere.

Kva ein profil ikkje kan føre over

Set objekta opp mot det ein destinasjon godtek:

ObjektVert overført?Kvifor
Protokoll og endepunktJa, viss destinasjonsklienten snakkar detRein tekst i profilen
CA-sertifikat og vertsnamnkontrollVanlegvisOffentleg materiale, men vertsnamnet må framleis stemme med sertifikatet
KlientsertifikatJa, med mindre det er bundt til kvar einingSertifikat er flyttbare; utferdaren avgjer kor mange einingar som kan bruke eitt
Privat nøkkelBerre viss han er generert utanfor KeystoreMaskinvarestøtta nøklar kan ikkje eksporterast, berre bytast ut
Konto, MFA, SSO-øktNeiToken går ut og held seg bundne til eininga som fekk dei
Ruter, DNS og app-omfangBerre som konfigurasjonstekstAndroid brukar dei ved tilkopling via VpnService.Builder
Appliste for delt tunnelSjeldanPakkenamn er ulike mellom einingar, og lista er klienttilstand

To radar skapar mest forvirring. Ein nøkkel som vert generert på eininga og merkt ikkje-eksporterbar, er faktisk borte med appdataa, så erstatninga er ein ny nøkkel pluss eit sertifikat utskrive til han. Eit sesjonstoken kopiert til ein ny telefon døyr vanlegvis ved fyrste oppfrisking, noko som ser ut som ein mislukka import.

Import er ein pars og deretter ei samtykkeførespurnad

På mottakarsida er import ein pars følgd av ein commit. Klienten les konfigurasjonen, kontrollerer at kvar referert blokk finst, og skriv deretter tunneldefinisjonen i si eiga sandkasse, og difor er fila du valde frå Nedlastingar ikkje det som koplar til etterpå.

Så kjem eit autorisasjonstrinn som ingen fil kan hoppe over. Android krev at appen kallar VpnService.prepare() og får samtykket ditt før han kan byggje ein tunnel, så ein nyimportert profil viser framleis systemdialogen éin gong. Deretter vert tunnelen bygd uttrykkeleg gjennom addAddress, addRoute, addDnsServer og addAllowedApplication eller addDisallowedApplication for ruting per app. Ingenting av dette er implisert av eit endepunkt, så same profil kan gje eit anna effektivt rutesett i to klientar.

Sertifikatbaserte oppsett legg til ei ekstra grein. Når tenaren skriv ut eit sertifikat til ei bestemd eining, slik MDM og SCEP-registrering gjer, verkar gjenbruk på ein annan telefon anten til tenaren handhevar éi økt per identitet, eller det feilar ved TLS-handtrykket. Sjekk retningslinjene til utferdaren før du planlegg gjenbruk.

Stadfest den nye eininga før du pensjonerer den gamle

Hald den gamle telefonen tilkopla til den nye har stått gjennom noko betre enn eit grønt ikon. Stadfest utgangsadressa frå den nye eininga og DNS-resolvaren ho faktisk brukte. Viss split tunneling tel, start ein app som skal omgå tunnelen og ein som ikkje skal, og sjå kven som når leverandøren din.

Éin kontroll avgjer utgangsadressa. Opne https://ifconfig.me i nettlesaren på telefonen, køyr deretter curl -s https://ifconfig.me frå ein berbar PC på same Wi-Fi og samanlikn begge svara med adressa leverandøren din tildelte.

Fyrst då pensjonerer du den gamle identiteten, og gjer det gjennom utferdaren: trekk attende sertifikatet eller fjern eininga frå kontoen. Å slette ei fil frå Nedlastingar avsluttar ingen ting, fordi to einingar med same sertifikat ser like ut i tenarloggen.

Viss eksporten viser seg å ikkje kunne flyttast, er løysinga ei ny registrering i staden for ein offentleg konfigurasjonspakke. Be om ein profil for ei ekstra eining, eller generer nøkkelparet på den nye telefonen og send inn CSR-en; tregare, og det er vegen utferdaren støttar.

Køyr sjekklista før du slettar noko: ny eining koplar til, utgangsadresse og DNS stemmer, app-omfanget er som tenkt, gammal identitet er trekt attende, og kvar konfigurasjonsfil du har teke vare på ligg i kryptert lagring.

Relaterte artiklar