Export VPN pe Android: ce trece de fapt pe un telefon nou
Un export VPN pe Android trimite setări și uneori o cheie, dar niciodată autorizarea dispozitivului. Verificați ce trece de fapt înainte de a șterge telefonul vechi.
Exportarea unui profil VPN din Android pare un pas de copiere de siguranță, iar meniul care îl oferă nu face nimic pentru a corecta această impresie. Ce rămâne cu dumneavoastră este o intrare pentru parser, o cheie pe care sistemul de operare poate nu o va returna niciodată și o autorizare emisă exact pentru acel telefon. Separați cele trei și apare întrebarea utilă: ce parte lipsește încă pe dispozitivul nou?
Fișierul este partea ușoară. Celelalte două decid dacă migrarea funcționează.
Ce conține de fapt un profil exportat
Deschideți fișierul într-un editor de text înainte de a avea încredere în el. Un profil OpenVPN este un mic limbaj de configurare: remote, proto, data-ciphers și adesea blocuri <ca>, <cert>, <key> sau <tls-crypt> inline pe care clientul le predă stivei sale TLS. O configurație WireGuard este mai plată: [Interface] conține PrivateKey și Address, apoi un [Peer] pentru fiecare punct final cu PublicKey, AllowedIPs și Endpoint. IKEv2 vine ca .mobileconfig cu dicționare de payload în loc de blocuri de chei.
Niciunul dintre aceste texte nu este o acreditare în sine. Acreditarea este cheia privată, iar fiecare format o lipește inline sau indică un alias care se rezolvă doar în interiorul clientului care a creat-o.
Unde locuiește de fapt cheia pe Android
Android păstrează datele aplicațiilor sub /data/data/<package>, lizibile doar de UID-ul acelei aplicații. Nu există o modalitate acceptată de a copia directorul privat al altei aplicații de pe un telefon fără root, iar adb backup a încetat să fie un răspuns general după ce Android 12 l-a scos din uz și clienții au început să declare allowBackup="false". Deci un export dintr-un client Android înseamnă ceea ce implementează acel client, nu o copie a sistemului de fișiere.
Stratul de identitate se află sub aplicație. Dacă un client a importat cheia dumneavoastră în Android Keystore, materialul este generat sau învelit acolo, iar exporturile ulterioare pot purta o referință către un alias Keystore în loc de octeți. Cheile cu suport hardware sunt construite astfel încât nici aplicația proprietară nu le poate citi, cum descrie Keystore documentation, așa că un profil care indică acel alias se importă curat pe același telefon și eșuează oriunde altundeva.
Acesta nu este un export defect. Este proprietatea pe care platforma a fost rugată să o ofere.
Ce nu poate transporta un profil
Comparați obiectele cu ceea ce va accepta o destinație:
| Obiect | Trece? | De ce |
|---|---|---|
| Protocol și punct final | Da, dacă clientul destinație îl acceptă | Text simplu în profil |
| Certificat CA și verificarea numelui de gazdă | De obicei | Material public, dar numele de gazdă trebuie să corespundă certificatului |
| Certificat de client | Da, dacă nu este legat de un anumit dispozitiv | Certificatele sunt portabile; emitentul decide câte dispozitive pot folosi unul |
| Cheie privată | Doar dacă a fost generată în afara Keystore | Cheile cu suport hardware nu pot fi exportate, doar înlocuite |
| Cont, MFA, sesiune SSO | Nu | Tokenii expiră și rămân legați de dispozitivul care i-a obținut |
| Rute, DNS și sfera aplicațiilor | Doar ca text de configurare | Android le aplică la conectare prin VpnService.Builder |
| Listă de aplicații pentru tunel divizat | Rar | Numele pachetelor diferă între dispozitive, iar lista este stare a clientului |
Două rânduri provoacă cea mai mare confuzie. O cheie generată pe dispozitiv și marcată neexportabilă dispare cu adevărat împreună cu datele aplicației, așa că înlocuirea este o cheie nouă plus un certificat emis pentru ea. Un token de sesiune copiat pe un telefon nou moare de obicei la prima reîmprospătare, ceea ce arată ca un import eșuat.
Importul este o parsare, apoi o cerere de consimțământ
Pe partea de recepție, importul este o parsare urmată de o confirmare. Clientul citește configurația, verifică dacă există fiecare bloc referit, apoi scrie definiția tunelului în propria cutie de nisip, motiv pentru care fișierul ales din Descărcări nu este ceea ce se conectează după aceea.
Apoi vine un pas de autorizare pe care niciun fișier nu îl poate sări. Android cere aplicației să apeleze VpnService.prepare() și să primească consimțământul dumneavoastră înainte de a putea stabili un tunel, așa că un profil proaspăt importat afișează totuși o dată dialogul de sistem. Apoi tunelul este construit explicit prin addAddress, addRoute, addDnsServer și addAllowedApplication sau addDisallowedApplication pentru rutare pe aplicație. Nimic din toate acestea nu este implicit de la un punct final, așa că același profil poate produce un set de rute efective diferit în doi clienți.
Configurațiile bazate pe certificate adaugă încă o ramificație. Când serverul emite un certificat pentru un anumit dispozitiv, cum fac MDM și înregistrarea SCEP, reutilizarea lui pe un al doilea telefon fie funcționează până când serverul impune o sesiune pe identitate, fie eșuează la strângerea de mână TLS. Verificați politica emitentului înainte de a planifica reutilizarea.
Verificați dispozitivul nou înainte de a-l retrage pe cel vechi
Țineți telefonul vechi conectat până când cel nou trece de ceva mai bun decât o pictogramă verde. Confirmați adresa de ieșire de pe dispozitivul nou și resolverul DNS pe care l-a folosit efectiv. Dacă split tunneling contează, lansați o aplicație care ar trebui să ocolească tunelul și una care nu ar trebui, apoi vedeți care ajunge la furnizorul dumneavoastră.
O verificare lămurește adresa de ieșire. Deschideți https://ifconfig.me în browserul telefonului, apoi rulați curl -s https://ifconfig.me de pe un laptop în aceeași rețea Wi-Fi și comparați ambele răspunsuri cu adresa atribuită de furnizor.
Abia apoi retrageți identitatea veche, și faceți-o prin emitent: revocați certificatul sau eliminați dispozitivul din cont. Ștergerea unui fișier din Descărcări nu încheie nimic, pentru că două dispozitive cu același certificat arată identic în jurnalul serverului.
Dacă exportul se dovedește neportabil, soluția este o înregistrare nouă, nu un pachet public de configurare. Cereți un profil pentru un al doilea dispozitiv sau generați perechea de chei pe telefonul nou și trimiteți CSR-ul; mai lent, și este calea pe care emitentul o susține.
Parcurgeți lista de verificare înainte de a șterge ceva: dispozitivul nou se conectează, adresa de ieșire și DNS coincid, sfera pe aplicație este cea dorită, identitatea veche este revocată, iar orice fișier de configurare păstrat se află în stocare criptată.