Android-VPN-vienti: mikä todella siirtyy uuteen puhelimeen
Android-VPN-vienti lähettää asetukset ja joskus avaimen, mutta ei koskaan laitteen valtuutusta. Tarkista, mikä todella siirtyy, ennen kuin pyyhit vanhan puhelimen.
VPN-profiilin vienti Androidista tuntuu varmuuskopiointivaiheelta, eikä sen tarjoava valikko tee mitään tämän vaikutelman korjaamiseksi. Mukaan jää parserin syöte, avain, jota käyttöjärjestelmä ei ehkä koskaan palauta, ja juuri sille puhelimelle myönnetty valtuutus. Erottele nämä kolme, niin hyödyllinen kysymys ilmestyy: mikä osa uudesta laitteesta vielä puuttuu?
Tiedosto on helppo osa. Kaksi muuta ratkaisevat, toimiiko siirto.
Mitä viety profiili todella sisältää
Avaa tiedosto tekstieditorissa ennen kuin luotat siihen. OpenVPN-profiili on pieni konfigurointikieli: remote, proto, data-ciphers ja usein rivinsisäiset <ca>, <cert>, <key> tai <tls-crypt>-lohkot, jotka asiakas antaa TLS-pinolleen. WireGuard-kokoonpano on litteämpi: [Interface] sisältää PrivateKey ja Address, sitten yksi [Peer] jokaista päätepistettä kohden, joka kuljettaa PublicKey, AllowedIPs ja Endpoint. IKEv2 saapuu .mobileconfig-muodossa, jossa on avainlohkojen sijaan hyötykuormasanakirjat.
Mikään tuosta tekstistä ei ole itsessään tunniste. Tunniste on yksityinen avain, ja jokainen muoto joko liittää sen sisään tai osoittaa aliakseen, joka ratkeaa vain sen luoneen asiakkaan sisällä.
Missä avain todella asuu Androidissa
Android pitää sovellusten tiedot hakemistossa /data/data/<package>, ja niitä voi lukea vain kyseisen sovelluksen UID. Juurittamattomasta puhelimesta ei ole tuettua tapaa kopioida toisen sovelluksen yksityistä hakemistoa, ja adb backup lakkasi olemasta yleinen vastaus sen jälkeen, kun Android 12 poisti sen ja asiakkaat alkoivat ilmoittaa allowBackup="false". Niinpä vienti Android-asiakkaasta tarkoittaa sitä, mitä kyseinen asiakas toteuttaa, ei tiedostojärjestelmän kopiota.
Identiteettikerros on sovelluksen alla. Jos asiakas on tuonut avaimesi Android Keystoreen, materiaali luodaan tai kääritään siellä, ja myöhemmät vientitiedostot voivat sisältää viittauksen Keystore-aliaaseen tavujen sijaan. Laitteistopohjaiset avaimet on rakennettu niin, ettei edes omistava sovellus voi lukea niitä, kuten Keystore documentation kuvaa, joten siihen aliaaseen osoittava profiili tuontuu puhtaasti samaan puhelimeen ja epäonnistuu kaikkialla muualla.
Se ei ole rikkinäinen vienti. Se on ominaisuus, jota alustalta pyydettiin.
Mitä profiili ei voi siirtää
Aseta objektit vastakkain sen kanssa, mitä kohde hyväksyy:
| Objekti | Siirtyykö? | Miksi |
|---|---|---|
| Protokolla ja päätepiste | Kyllä, jos kohdeasiakas tukee sitä | Pelkkä teksti profiilissa |
| CA-varmenne ja isäntänimen tarkistus | Yleensä | Julkinen materiaali, mutta isäntänimen on yhä vastattava varmennetta |
| Asiakasvarmenne | Kyllä, ellei se ole sidottu laitekohtaisesti | Varmenteet ovat siirrettäviä; myöntäjä päättää, kuinka moni laite voi käyttää yhtä |
| Yksityinen avain | Vain jos se on luotu Keystoren ulkopuolella | Laitteistopohjaisia avaimia ei voi viedä, vain korvata |
| Tili, MFA, SSO-istunto | Ei | Tokenit vanhenevat ja pysyvät sidottuina laitteeseen, joka ne hankki |
| Reitit, DNS ja sovelluslaajuus | Vain kokoonpanotekstinä | Android soveltaa niitä yhdistäessään VpnService.Builderin kautta |
| Jaetun tunnelin sovellusluettelo | Harvoin | Pakettien nimet eroavat laitteiden välillä, ja luettelo on asiakkaan tila |
Kaksi riviä aiheuttavat suurimman osan sekaannuksesta. Laitteessa luotu ja ei-vietäväksi merkitty avain todella katoaa sovelluksen tietojen mukana, joten korvaava ratkaisu on uusi avain ja sille myönnetty varmenne. Uuteen puhelimeen kopioitu istuntotunniste kuolee yleensä ensimmäisessä päivityksessä, mikä näyttää epäonnistuneelta tuonnilta.
Tuonti on jäsennys ja sitten suostumuspyyntö
Vastaanottavalla puolella tuonti on jäsennys, jota seuraa tallennus. Asiakas lukee kokoonpanon, tarkistaa, että jokainen viitattu lohko on olemassa, ja kirjoittaa sitten tunnelin määritelmän omaan hiekkalaatikkoonsa, minkä vuoksi Latauksista valittu tiedosto ei ole se, mikä myöhemmin yhdistää.
Sitten tulee valtuutusvaihe, jota mikään tiedosto ei voi ohittaa. Android edellyttää, että sovellus kutsuu VpnService.prepare() ja saa suostumuksesi ennen kuin se voi muodostaa tunnelin, joten juuri tuotu profiili näyttää järjestelmän valintaikkunan vielä kerran. Sen jälkeen tunneli rakennetaan nimenomaisesti addAddress, addRoute, addDnsServer sekä addAllowedApplication tai addDisallowedApplication kautta sovelluskohtaista reititystä varten. Mikään näistä ei seuraa päätepisteestä, joten sama profiili voi tuottaa erilaisen tehokkaiden reittien joukon kahdessa asiakkaassa.
Varmenneperusteiset kokoonpanot lisäävät vielä yhden haarautuman. Kun palvelin myöntää varmenteen tietylle laitteelle, kuten MDM ja SCEP-rekisteröinti tekevät, sen uudelleenkäyttö toisessa puhelimessa joko toimii, kunnes palvelin vaatii yhden istunnon identiteettiä kohden, tai epäonnistuu TLS-kättelyssä. Tarkista myöntäjän käytäntö ennen uudelleenkäytön suunnittelua.
Varmista uusi laite ennen kuin poistat vanhan käytöstä
Pidä vanha puhelin yhdistettynä, kunnes uusi on läpäissyt jotain vihreää kuvaketta parempaa. Vahvista lähtöosoite uudesta laitteesta ja DNS-resolveri, jota se todella käytti. Jos split tunneling on tärkeä, käynnistä sovellus, jonka pitäisi ohittaa tunneli, ja yksi, jonka ei pitäisi, ja katso kumpi tavoittaa palveluntarjoajasi.
Yksi tarkistus ratkaisee lähtöosoitteen. Avaa https://ifconfig.me puhelimen selaimessa, aja sitten curl -s https://ifconfig.me samassa Wi-Fi-verkossa olevasta kannettavasta ja vertaa molempia vastauksia palveluntarjoajasi antamaan osoitteeseen.
Vasta sitten poista vanha identiteetti käytöstä, ja tee se myöntäjän kautta: peruuta varmenne tai poista laite tililtä. Tiedoston poistaminen Latauksista ei lopeta mitään, koska kaksi samaa varmennetta kantavaa laitetta näyttävät palvelimen lokissa identtisiltä.
Jos vienti osoittautuu ei-siirrettäväksi, ratkaisu on uusi rekisteröinti eikä julkinen kokoonpanopaketti. Pyydä profiili toiselle laitteelle tai luo avainpari uudessa puhelimessa ja lähetä CSR; hitaampaa, ja se on polku, jota myöntäjä tukee.
Käy tarkistuslista läpi ennen kuin poistat mitään: uusi laite yhdistää, lähtöosoite ja DNS täsmäävät, sovelluskohtainen laajuus on tarkoittamasi, vanha identiteetti on peruutettu ja mahdollinen säilytetty kokoonpanotiedosto on salatussa tallennuksessa.