Android سے VPN پروفائل ایکسپورٹ کرنا بیک اپ مرحلے جیسا لگتا ہے، اور جو مینو یہ پیش کرتا ہے وہ اس تاثر کو درست کرنے کے لیے کچھ نہیں کرتا۔ آپ کے پاس جو رہتا ہے وہ parser ان پٹ، ایک چابی جو آپریٹنگ سسٹم شاید کبھی واپس نہ دے، اور اسی فون کے لیے جاری کردہ اجازت ہے۔ ان تینوں کو الگ کریں اور مفید سوال سامنے آتا ہے: نئی ڈیوائس پر ابھی کون سا حصہ غائب ہے؟

فائل آسان حصہ ہے۔ باقی دو طے کرتے ہیں کہ منتقلی کام کرے گی یا نہیں۔

ایکسپورٹ شدہ پروفائل میں واقعی کیا ہوتا ہے

بھروسہ کرنے سے پہلے فائل کو ٹیکسٹ ایڈیٹر میں کھولیں۔ OpenVPN پروفائل ایک چھوٹی کنفیگریشن زبان ہے: remote، proto، data-ciphers، اور اکثر ان لائن <ca>، <cert>، <key> یا <tls-crypt> بلاک جو کلائنٹ اپنے TLS اسٹیک کو دیتا ہے۔ WireGuard کنفگ زیادہ ہموار ہے: [Interface] میں PrivateKey اور Address ہوتے ہیں، پھر ہر اینڈ پوائنٹ کے لیے ایک [Peer] جو PublicKey، AllowedIPs اور Endpoint لے کر جاتا ہے۔ IKEv2 چابی بلاکس کی جگہ پے لوڈ ڈکشنریوں کے ساتھ .mobileconfig کے طور پر آتا ہے۔

ان میں سے کوئی بھی متن بذات خود اسناد نہیں ہے۔ اسناد نجی چابی ہیں، اور ہر فارمیٹ انہیں اندر چپکاتا ہے یا ایسے عرف کی طرف اشارہ کرتا ہے جو صرف اسی کلائنٹ کے اندر حل ہوتا ہے جس نے اسے بنایا۔

Android میں چابی واقعی کہاں رہتی ہے

Android ایپ ڈیٹا کو /data/data/<package> کے تحت رکھتا ہے، جسے صرف اسی ایپ کا UID پڑھ سکتا ہے۔ root نہ کیے گئے فون سے کسی دوسری ایپ کی نجی ڈائریکٹری کاپی کرنے کا کوئی معاون طریقہ نہیں ہے، اور Android 12 کے اسے ختم کرنے اور کلائنٹس کے allowBackup="false" اعلان کرنا شروع کرنے کے بعد adb backup عام جواب رہنا ختم ہو گیا۔ لہٰذا Android کلائنٹ سے ایکسپورٹ کا مطلب وہ ہے جو وہ کلائنٹ نافذ کرتا ہے، فائل سسٹم کی کاپی نہیں۔

شناخت کی پرت ایپ کے نیچے ہے۔ اگر کسی کلائنٹ نے آپ کی چابی Android Keystore میں درآمد کی ہے تو مواد وہیں پیدا یا لپیٹا جاتا ہے، اور بعد کی ایکسپورٹس بائٹس کی بجائے Keystore عرف کا حوالہ لے جا سکتی ہیں۔ ہارڈویئر کی معاونت والی چابیاں اس طرح بنائی گئی ہیں کہ مالک ایپ بھی انہیں نہیں پڑھ سکتی، جیسا کہ Keystore documentation بیان کرتا ہے، اس لیے اس عرف کی طرف اشارہ کرنے والا پروفائل اسی فون پر صاف درآمد ہوتا ہے اور باقی ہر جگہ ناکام ہوتا ہے۔

یہ ٹوٹی ہوئی ایکسپورٹ نہیں ہے۔ یہ وہ خصوصیت ہے جو پلیٹ فارم سے مانگی گئی تھی۔

پروفائل کیا منتقل نہیں کر سکتا

اشیاء کا موازنہ اس سے کریں جو منزل قبول کرے گی:

شےمنتقل ہوتی ہے؟کیوں
پروٹوکول اور اینڈ پوائنٹہاں، اگر منزل کا کلائنٹ سمجھتا ہوپروفائل میں سادہ متن
CA سرٹیفکیٹ اور ہوسٹ نام کی جانچعام طور پرعوامی مواد، لیکن ہوسٹ نام کو پھر بھی سرٹیفکیٹ سے میل کھانا چاہیے
کلائنٹ سرٹیفکیٹہاں، جب تک یہ ہر ڈیوائس سے بندھا نہ ہوسرٹیفکیٹ منتقل ہو سکتے ہیں؛ ایک کو کتنی ڈیوائسز استعمال کر سکتی ہیں یہ جاری کنندہ طے کرتا ہے
نجی چابیصرف اگر Keystore سے باہر بنائی گئی ہوہارڈویئر کی معاونت والی چابیاں ایکسپورٹ نہیں ہو سکتیں، صرف بدلی جا سکتی ہیں
اکاؤنٹ، MFA، SSO سیشننہیںٹوکن کی مدت ختم ہوتی ہے اور وہ اسی ڈیوائس سے بندھے رہتے ہیں جس نے حاصل کیے
راستے، DNS اور ایپ کا دائرہصرف کنفیگریشن متن کے طور پرAndroid انہیں منسلک ہوتے وقت VpnService.Builder کے ذریعے لاگو کرتا ہے
منقسم ٹنل کی ایپ فہرستشاذ و نادرپیکج نام ڈیوائسز میں مختلف ہوتے ہیں، اور فہرست کلائنٹ کی حالت ہے

دو قطاریں زیادہ تر الجھن پیدا کرتی ہیں۔ ڈیوائس پر بنائی گئی اور ناقابلِ ایکسپورٹ نشان زد چابی واقعی ایپ ڈیٹا کے ساتھ چلی جاتی ہے، اس لیے متبادل نئی چابی اور اس کے لیے جاری سرٹیفکیٹ ہے۔ نئے فون پر کاپی کیا گیا سیشن ٹوکن عام طور پر پہلی تجدید پر ہی مر جاتا ہے، جو ناکام درآمد جیسا لگتا ہے۔

درآمد ایک پارس ہے، پھر رضامندی کی درخواست

وصول کرنے والے کی طرف، درآمد ایک پارس ہے جس کے بعد اندراج ہوتا ہے۔ کلائنٹ کنفگ پڑھتا ہے، جانچتا ہے کہ ہر حوالہ شدہ بلاک موجود ہے، پھر ٹنل کی تعریف اپنے سینڈ باکس میں لکھتا ہے، اسی لیے ڈاؤن لوڈز سے منتخب کی گئی فائل وہ نہیں جو بعد میں منسلک ہوتی ہے۔

پھر وہ اجازت کا مرحلہ آتا ہے جسے کوئی فائل نہیں چھوڑ سکتی۔ ٹنل قائم کرنے سے پہلے Android چاہتا ہے کہ ایپ VpnService.prepare() کو کال کرے اور آپ کی رضامندی لے، اس لیے ابھی درآمد شدہ پروفائل بھی ایک بار سسٹم ڈائیلاگ دکھاتا ہے۔ پھر ٹنل واضح طور پر addAddress، addRoute، addDnsServer، اور ہر ایپ راؤٹنگ کے لیے addAllowedApplication یا addDisallowedApplication کے ذریعے بنایا جاتا ہے۔ ان میں سے کوئی بھی اینڈ پوائنٹ سے مترتب نہیں ہوتا، اس لیے وہی پروفائل دو کلائنٹس میں مختلف مؤثر راستوں کا مجموعہ بنا سکتا ہے۔

سرٹیفکیٹ پر مبنی سیٹ اپ ایک اور شاخ جوڑتے ہیں۔ جب سرور کسی مخصوص ڈیوائس کو سرٹیفکیٹ جاری کرتا ہے، جیسا کہ MDM اور SCEP اندراج کرتے ہیں، تو دوسرے فون پر اس کا دوبارہ استعمال یا تو اس وقت تک کام کرتا ہے جب تک سرور ہر شناخت کے لیے ایک سیشن نافذ نہ کرے، یا TLS مصافحے پر ناکام ہو جاتا ہے۔ دوبارہ استعمال کی منصوبہ بندی سے پہلے جاری کنندہ کی پالیسی دیکھیں۔

پرانے کو ریٹائر کرنے سے پہلے نئی ڈیوائس کی تصدیق کریں

پرانے فون کو منسلک رکھیں جب تک نیا فون سبز آئیکن سے بہتر کچھ پاس نہ کر لے۔ نئی ڈیوائس سے ایگریس پتہ اور وہ DNS حل کنندہ جو اس نے واقعی استعمال کیا تصدیق کریں۔ اگر split tunneling اہم ہے تو ایسی ایپ چلائیں جسے ٹنل سے بچنا چاہیے اور ایک جسے نہیں، پھر دیکھیں کون سی آپ کے ISP تک پہنچتی ہے۔

ایک جانچ ایگریس پتہ طے کرتی ہے۔ فون براؤزر میں https://ifconfig.me کھولیں، پھر اسی Wi-Fi پر لیپ ٹاپ سے curl -s https://ifconfig.me چلائیں اور دونوں جوابات کا موازنہ اس پتے سے کریں جو آپ کے فراہم کنندہ نے دیا۔

تب ہی پرانی شناخت ریٹائر کریں، اور یہ جاری کنندہ کے ذریعے کریں: سرٹیفکیٹ منسوخ کریں یا ڈیوائس کو اکاؤنٹ سے ہٹائیں۔ ڈاؤن لوڈز سے فائل مٹانے سے کچھ ختم نہیں ہوتا، کیونکہ ایک ہی سرٹیفکیٹ والی دو ڈیوائسز سرور لاگ میں یکساں نظر آتی ہیں۔

اگر ایکسپورٹ ناقابلِ منتقلی نکلے تو حل عوامی کنفیگریشن بنڈل نہیں بلکہ نیا اندراج ہے۔ دوسری ڈیوائس کے لیے پروفائل مانگیں، یا نئے فون پر چابی جوڑی بنا کر CSR جمع کریں؛ سست ہے، اور یہی وہ راستہ ہے جس کی جاری کنندہ معاونت کرتا ہے۔

کچھ بھی مٹانے سے پہلے چیک لسٹ چلائیں: نئی ڈیوائس منسلک ہوتی ہے، ایگریس پتہ اور DNS میل کھاتے ہیں، ہر ایپ کا دائرہ ویسا ہی ہے جیسا آپ نے چاہا، پرانی شناخت منسوخ ہے، اور رکھی گئی کوئی بھی کنفگ فائل خفیہ شدہ اسٹوریج میں ہے۔

متعلقہ مضامین