Android VPN बनाम ऐप अनुमतियाँ: चेतावनी का वास्तव में क्या अर्थ है
Android का VPN सहमति संवाद आपको पैकेट-स्तर की स्थिति देता है, आपके ईमेल, फ़ोटो या संपर्कों तक पहुँच नहीं। वह सीमा वास्तव में यहीं है।
Android में दो संवाद लगातार आपस में मिला दिए जाते हैं: VPN सहमति का संकेत और वे अनुमति-अनुरोध जो कोई ऐप आपके डेटा के लिए करता है। पहला नेटवर्क में एक स्थिति सौंपता है, वह जगह जहाँ पैकेट पढ़े और फिर से लिखे जा सकते हैं। दूसरा संग्रहीत सामग्री सौंपता है जिसे Android ऐप-दर-ऐप सुरक्षित रखता है। इन दोनों को एक ही चीज़ मानने पर या तो टनल जो देख सकता है उसे बढ़ा-चढ़ाकर कहा जाता है, या फिर यह गंभीर रूप से कम आँका जाता है कि कोई दृढ़ ऐप आगे क्या माँगेगा।
सहमति संवाद वास्तव में क्या सौंपता है
जो ऐप VpnService लागू करता है और BIND_VPN_SERVICE घोषित करता है, वह सिस्टम से कहता है कि वह डिवाइस का VPN बने। अनुमोदन के बाद ढाँचा एक tun इंटरफ़ेस बनाता है और ऐप को उसके लिए एक फ़ाइल डिस्क्रिप्टर देता है। इसके बाद ऐप जो कुछ करता है वह उसी डिस्क्रिप्टर से गुज़रता है: वह उसमें से IP पैकेट पढ़ता है, तय करता है कि उनका क्या करना है, और पैकेट वापस अंदर लिखता है।
उस इंटरफ़ेस का दायरा स्पष्ट है। रूट तय करते हैं कि कौन-से गंतव्य पकड़े जाएँगे, और addAllowedApplication या addDisallowedApplication तय करता है कि कौन-से ऐप इसे डेटा देते हैं। दो ऐप सूचीबद्ध करने वाला प्रति-ऐप VPN डिवाइस के बाकी हिस्से को नहीं देखता।
यह पैकेट-स्तर का अनुदान है, डेटा-स्तर का नहीं। सेवा वे बाइट देखती है जो ऐप नेटवर्क स्टैक को सौंपता है, जो किसी गंतव्य को संबोधित होते हैं। उसे भेजने वाले ऐप के निजी भंडारण, उसकी डेटाबेस फ़ाइलों या उसकी डिक्रिप्ट की गई मेमोरी तक कोई पहुँच नहीं मिलती। ऐप ने अपने ही सैंडबॉक्स में जो फ़ाइलें सहेजी हैं, वे पहले जितनी ही मुश्किल से पढ़ी जा सकती हैं।
पैकेट-दृश्य कहाँ रुकता है
TLS अब भी टनल के भीतर अपना काम करता है, क्योंकि हैंडशेक ऐप और सर्वर के बीच होता है, ऐप और VPN के बीच नहीं। VPN ऐसा साइफ़रटेक्स्ट आगे भेजता है जिसे वह सत्र कुंजियों के बिना डिक्रिप्ट नहीं कर सकता। इसीलिए अकेला टनल किसी HTTPS पृष्ठ या सुरक्षित मेल सत्र की सामग्री प्रकट नहीं करता।
साइफ़रटेक्स्ट के आसपास का मेटाडेटा दूसरी कहानी है, और यहीं अधिकांश आत्मविश्वासी दावे बिखर जाते हैं। गंतव्य IP, पोर्ट, पैकेट का आकार और समय — सब दिखाई देते हैं, साथ ही TLS ClientHello में सर्वर का नाम, जो सामान्यतः TLS 1.3 के अंतर्गत भी खुले रूप में भेजा जाता है। Encrypted Client Hello इसे बदलता है, पर वह सार्वभौमिक नहीं है। सादा DNS भी नामों को उतनी ही आसानी से लीक करता है जब क्वेरी बिना एन्क्रिप्शन के बाहर जाती हैं।
पुराने या गलत तरीके से कॉन्फ़िगर किए गए प्रोटोकॉल अधिक सौंपते हैं। सादा HTTP, बिना TLS वाला IMAP और कई गेम तथा IoT प्रोटोकॉल अपना पेलोड उस हर चीज़ के सामने उजागर करते हैं जिसके पास tun डिस्क्रिप्टर है।
वे अनुमतियाँ जो कभी साथ नहीं आतीं
VPN को मंज़ूर करना संपर्कों, SMS, फ़ोटो या मीडिया स्टोर को मंज़ूर करना नहीं है। वे अलग रनटाइम अनुदान हैं, हर एक का अपना संवाद और ऐप की सेटिंग्स पृष्ठ पर अपना निरसन मार्ग है। जो VPN क्लाइंट आपका कॉल लॉग चाहता है, उसे किसी भी अन्य ऐप की तरह माँगना होगा, और आप टनल रखते हुए मना कर सकते हैं।
सर्टिफ़िकेट इंस्टॉलेशन ही वह चीज़ है जिस पर ध्यान देना चाहिए, क्योंकि वह VPN सेटअप का हिस्सा लगती है और है नहीं। क्रेडेंशियल स्टोर में उपयोगकर्ता CA इंस्टॉल करने से बदल जाता है कि Android किन सर्टिफ़िकेट को स्वीकार करेगा, और Android 7.0 से API 24 या उससे नए को लक्षित ऐप उपयोगकर्ता द्वारा जोड़े गए CA को अनदेखा करता है, जब तक कि उसका नेटवर्क सुरक्षा कॉन्फ़िग उपयोगकर्ता ट्रस्ट एंकर के साथ इसे न चुनता हो। जो क्लाइंट CA पर ज़ोर देता है, वह वैध उद्यम इंटरसेप्शन कर रहा हो सकता है, या ऐसी चीज़ माँग रहा हो जिसका VPN संवाद ने कभी उल्लेख नहीं किया।
एक्सेसिबिलिटी पहुँच और भी बाहर बैठती है। एक्सेसिबिलिटी सक्षम वाली सेवा अन्य ऐप के स्क्रीन की सामग्री पढ़ सकती है, जो कोई भी पैकेट-स्तरीय स्थिति प्रदान नहीं करती।
स्थानीय फ़िल्टर या दूरस्थ गेटवे
यही API दो उत्पादों को कवर करता है जो अलग-अलग स्तर के भरोसे के हक़दार हैं। डिवाइस पर रहने वाला फ़ायरवॉल या विज्ञापन ब्लॉकर tun डिस्क्रिप्टर लेता है और ट्रैफ़िक का उत्तर स्थानीय रूप से देता है, उसे कभी अपने ही संचालित सर्वर पर नहीं भेजता। असली टनल उन पैकेटों को कहीं और स्थित गेटवे तक भेजता है, और वह संचालक दूसरे छोर से वही मेटाडेटा देखता है और साथ ही यह भी तय करता है कि क्या वापस आएगा।
इन्हें अलग पहचानने का व्यावहारिक तरीका यह है कि VPN चालू और बंद रखकर अपना सार्वजनिक पता जाँचें, और देखें कि अधिसूचना किसी दूरस्थ एंडपॉइंट का नाम लेती है या नहीं। यदि पता कभी नहीं बदलता, तो ट्रैफ़िक संभवतः डिवाइस पर ही घूम रहा है।
दोनों ही स्थितियाँ अब भी पैकेट स्थिति हैं। अंतर यह है कि बाहर निकलने पर और कौन खड़ा है।
आपने जो मंज़ूर किया उसका ऑडिट करें
Settings खोलें, फिर Network and internet, फिर VPN, और स्टेटस बार के आइकन की जगह प्रविष्टि पढ़ें। Always-on VPN और Block connections without VPN डिवाइस सेटिंग्स हैं जो इंटरफ़ेस को जीवित रखती हैं और लीक काटती हैं; वे कुछ भी चौड़ा नहीं करतीं। उसी स्क्रीन से आप प्रोफ़ाइल भूल सकते हैं और अनुदान रद्द कर सकते हैं।
फिर बाकी अनुमतियाँ देखें। App info दिखाता है कि क्लाइंट के पास कौन-से रनटाइम अनुदान हैं, और Security सेटिंग्स दिखाती हैं कि उसी समय कोई उपयोगकर्ता सर्टिफ़िकेट इंस्टॉल हुआ था या नहीं। इनमें से कोई भी अलग से हटाया जा सकता है।
जिस प्रश्न का उत्तर देना सार्थक है वह सीमित है: कौन-से पैकेट इस सेवा में प्रवेश करते हैं, वे कहाँ जाते हैं, और कार्यान्वयन क्या रखता है। संवाद में बाकी सब शोर है। VpnService संदर्भ इस बात की आधिकारिक सूची है कि इंटरफ़ेस क्या उजागर करता है।