Mengeksport profil VPN daripada Android terasa seperti langkah sandaran, dan menu yang menawarkannya tidak melakukan apa-apa untuk membetulkan tanggapan itu. Yang anda bawa pergi ialah input penghurai, kunci yang mungkin tidak dikembalikan oleh sistem pengendalian, dan kebenaran yang dikeluarkan untuk telefon itu. Pisahkan ketiga-tiganya dan soalan berguna muncul: bahagian mana yang masih hilang pada peranti baharu?

Fail ialah bahagian yang mudah. Dua lagi menentukan sama ada pemindahan berjaya.

Apa yang sebenarnya terkandung dalam profil yang dieksport

Buka fail dalam editor teks sebelum mempercayainya. Profil OpenVPN ialah bahasa konfigurasi kecil: remote, proto, data-ciphers, dan selalunya blok <ca>, <cert>, <key> atau <tls-crypt> sebaris yang diserahkan klien kepada tindanan TLSnya. Konfigurasi WireGuard lebih rata: [Interface] memegang PrivateKey dan Address, kemudian satu [Peer] bagi setiap titik akhir dengan PublicKey, AllowedIPs dan Endpoint. IKEv2 datang sebagai .mobileconfig dengan kamus muatan dan bukan blok kunci.

Tiada satu pun teks itu ialah kelayakan dengan sendirinya. Kelayakannya ialah kunci peribadi, dan setiap format sama ada menampalnya sebaris atau menunjuk kepada alias yang hanya diselesaikan di dalam klien yang menciptanya.

Di mana kunci sebenarnya tinggal pada Android

Android menyimpan data aplikasi di bawah /data/data/<package>, boleh dibaca hanya oleh UID aplikasi itu. Tiada cara yang disokong untuk menyalin direktori peribadi aplikasi lain daripada telefon tanpa root, dan adb backup berhenti menjadi jawapan umum selepas Android 12 menghentikannya dan klien mula mengisytiharkan allowBackup="false". Jadi eksport daripada klien Android bermaksud apa yang dilaksanakan oleh klien itu, bukan salinan sistem fail.

Lapisan identiti terletak di bawah aplikasi. Jika klien mengimport kunci anda ke Android Keystore, bahan itu dijana atau dibalut di sana, dan eksport kemudian boleh membawa rujukan kepada alias Keystore dan bukan bait. Kunci yang disokong perkakasan dibina supaya aplikasi pemilik pun tidak dapat membacanya, seperti yang diterangkan Keystore documentation, jadi profil yang menunjuk kepada alias itu diimport dengan bersih pada telefon yang sama dan gagal di tempat lain.

Itu bukan eksport yang rosak. Itulah sifat yang diminta daripada platform.

Apa yang profil tidak boleh bawa

Sejajarkan objek dengan apa yang akan diterima destinasi:

ObjekBerpindah?Mengapa
Protokol dan titik akhirYa, jika klien destinasi menyokongnyaTeks biasa dalam profil
Sijil CA dan pemeriksaan nama hosBiasanyaBahan awam, tetapi nama hos masih perlu sepadan dengan sijil
Sijil klienYa, kecuali ia terikat pada setiap perantiSijil boleh dibawa; pengeluar menentukan berapa banyak peranti boleh menggunakan satu
Kunci peribadiHanya jika dijana di luar KeystoreKunci yang disokong perkakasan tidak boleh dieksport, hanya diganti
Akaun, MFA, sesi SSOTidakToken tamat tempoh dan kekal terikat pada peranti yang memperolehnya
Laluan, DNS dan skop aplikasiHanya sebagai teks konfigurasiAndroid menerapkannya semasa menyambung melalui VpnService.Builder
Senarai aplikasi terowong berpecahJarangNama pakej berbeza antara peranti, dan senarai itu ialah keadaan klien

Dua baris menyebabkan sebahagian besar kekeliruan. Kunci yang dijana pada peranti dan ditanda tidak boleh dieksport benar-benar hilang bersama data aplikasi, jadi penggantinya ialah kunci baharu serta sijil yang dikeluarkan untuknya. Token sesi yang disalin ke telefon baharu biasanya mati pada muat semula pertama, yang kelihatan seperti import yang gagal.

Import ialah penghuraian, kemudian permintaan persetujuan

Di sisi penerima, import ialah penghuraian yang diikuti komit. Klien membaca konfigurasi, menyemak bahawa setiap blok yang dirujuk wujud, kemudian menulis definisi terowong ke dalam kotak pasirnya sendiri, sebab itulah fail yang anda pilih daripada Muat Turun bukan yang bersambung selepas itu.

Kemudian datang langkah kebenaran yang tidak boleh dilangkau oleh mana-mana fail. Android mewajibkan aplikasi memanggil VpnService.prepare() dan menerima persetujuan anda sebelum ia boleh mewujudkan terowong, jadi profil yang baru diimport masih memaparkan dialog sistem sekali. Terowong kemudian dibina secara eksplisit melalui addAddress, addRoute, addDnsServer, dan addAllowedApplication atau addDisallowedApplication untuk penghalaan setiap aplikasi. Tiada satu pun daripada itu tersirat oleh titik akhir, jadi profil yang sama boleh menghasilkan set laluan berkesan yang berbeza dalam dua klien.

Persediaan berasaskan sijil menambah satu lagi cabang. Apabila pelayan mengeluarkan sijil kepada peranti tertentu, seperti yang dilakukan MDM dan pendaftaran SCEP, penggunaan semula pada telefon kedua sama ada berfungsi sehingga pelayan menguatkuasakan satu sesi bagi setiap identiti atau gagal pada jabat tangan TLS. Semak dasar pengeluar sebelum merancang penggunaan semula.

Sahkan peranti baharu sebelum menamatkan perkhidmatan yang lama

Biarkan telefon lama bersambung sehingga yang baharu lulus sesuatu yang lebih baik daripada ikon hijau. Sahkan alamat keluar daripada peranti baharu dan penyelesai DNS yang benar-benar digunakan. Jika split tunneling penting, lancarkan aplikasi yang sepatutnya memintas terowong dan satu yang tidak, kemudian lihat mana yang sampai kepada penyedia anda.

Satu semakan menyelesaikan alamat keluar. Buka https://ifconfig.me dalam pelayar telefon, kemudian jalankan curl -s https://ifconfig.me daripada komputer riba pada Wi-Fi yang sama dan bandingkan kedua-dua jawapan dengan alamat yang diperuntukkan oleh penyedia anda.

Hanya selepas itu tamatkan identiti lama, dan lakukan melalui pengeluar: batalkan sijil atau keluarkan peranti daripada akaun. Memadam fail daripada Muat Turun tidak menamatkan apa-apa, kerana dua peranti yang memegang sijil yang sama kelihatan serupa dalam log pelayan.

Jika eksport ternyata tidak boleh dibawa, penyelesaiannya ialah pendaftaran baharu dan bukan berkas konfigurasi awam. Minta profil peranti kedua, atau jana pasangan kunci pada telefon baharu dan serahkan CSR; lebih perlahan, dan itulah laluan yang disokong pengeluar.

Jalankan senarai semak sebelum memadam apa-apa: peranti baharu bersambung, alamat keluar dan DNS sepadan, skop setiap aplikasi seperti yang dimaksudkan, identiti lama dibatalkan, dan mana-mana fail konfigurasi yang disimpan berada dalam storan disulitkan.

Artikel berkaitan