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:

ObiectTrece?De ce
Protocol și punct finalDa, dacă clientul destinație îl acceptăText simplu în profil
Certificat CA și verificarea numelui de gazdăDe obiceiMaterial public, dar numele de gazdă trebuie să corespundă certificatului
Certificat de clientDa, dacă nu este legat de un anumit dispozitivCertificatele sunt portabile; emitentul decide câte dispozitive pot folosi unul
Cheie privatăDoar dacă a fost generată în afara KeystoreCheile cu suport hardware nu pot fi exportate, doar înlocuite
Cont, MFA, sesiune SSONuTokenii expiră și rămân legați de dispozitivul care i-a obținut
Rute, DNS și sfera aplicațiilorDoar ca text de configurareAndroid le aplică la conectare prin VpnService.Builder
Listă de aplicații pentru tunel divizatRarNumele 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ă.

Articole similare