डिवाइस पर VPN मार्कर या एग्ज़िट पता: कौन क्या साबित करता है?
डिवाइस पर पढ़ा गया नेटवर्क मार्कर और सर्वर द्वारा देखा गया पता अलग-अलग सबूत हैं। तय करें कि आपके सवाल को कौन चाहिए।
फ़ोन का ऐप और दूर का सर्वर अलग-अलग तथ्यों से शुरू होते हैं, और कोई भी दूसरे के तथ्य उधार नहीं ले सकता। ऐप ऑपरेटिंग सिस्टम से उस नेटवर्क के बारे में पूछ सकता है जिसका वह उपयोग करता है, जबकि सर्वर केवल वह जानता है जो कनेक्शन पर आता है। अपना खुद का एंडपॉइंट चलाने से दूसरा फिर से लिखा जाता है और पहला अछूता रहता है। इनमें से कौन आपके सवाल का जवाब देता है, यह सवाल पर ही निर्भर करता है।
दो अवलोकन बिंदु, दो तरह के सबूत
स्थानीय सबूत डिवाइस का वर्णन करता है। इसमें वह इंटरफ़ेस शामिल है जो ट्रैफ़िक ढोता है, वह ट्रांसपोर्ट जिसकी सूचना प्लेटफ़ॉर्म देता है, और वह जो कॉल करने वाला ऐप पूछ सकता है। दूर का सबूत कनेक्शन का वर्णन करता है: स्रोत पता, प्रोटोकॉल, समय और वह सब जो ऐप भेजने का चुनाव करता है। कोई भी अवलोकन बिंदु दूसरे का पूर्ण सुपरसेट नहीं है।
दोनों को मिलाने से ऐसे दावे बनते हैं जो सटीक सुनाई देते हैं और जाँचे नहीं जा सकते। मार्कर डिवाइस पर मौजूद नेटवर्क ऑब्जेक्ट के बारे में कुछ साबित करता है, इस बारे में नहीं कि कोई दूर की सेवा अनुरोध को कैसे वर्गीकृत करती है।
पहचान पर बहस करने से पहले लिखें कि सवाल किस बिंदु से जुड़ा है। सवाल यह है कि कोई विशेष ऐप जान सकता है कि सुरंग सक्रिय है, या यह कि कोई सेवा अनुमान लगा सकती है कि अनुरोध कहाँ से आया? ये अलग जाँच हैं, और एक का जवाब दूसरे के बारे में कुछ नहीं कहता।
स्थानीय प्लेटफ़ॉर्म इंटरफ़ेस क्या बता सकता है
Android एक विशिष्ट मार्कर देता है। NetworkCapabilities ऑब्जेक्ट TRANSPORT_VPN की सूचना दे सकता है, और hasTransport जाँचता है कि वह ट्रांसपोर्ट ऑब्जेक्ट पर मौजूद है या नहीं। ऐप ऑब्जेक्ट को कनेक्टिविटी सेवा से लेकर पढ़ता है, नेटवर्क स्थिति की अनुमति के अधीन।
परिणाम स्थानीय प्लेटफ़ॉर्म जानकारी है, किसी प्रदाता की पता-श्रेणियों में खोज नहीं। यह उस नेटवर्क का वर्णन करता है जिसका उपयोग कॉल करने वाला ऐप कर रहा है।
दो सीमाएँ मायने रखती हैं। ऐप को बाहर रखने वाला स्प्लिट-टनल नियम उसी फ़ोन पर सहकर्मी के देखे जवाब से अलग जवाब दे सकता है, क्योंकि ऐप कहीं और बँधा हो सकता है। मार्कर इसलिए भी मौजूद है कि ऑपरेटिंग सिस्टम VPN इंटरफ़ेस का मॉडल बनाता है, इसलिए नहीं कि कोई विशेष ऐप उसे इकट्ठा करता है। ऐप इस फ़ील्ड को पढ़ता है, आगे भेजता है या नज़रअंदाज़ करता है, यह उस ऐप का गुण है। उसका मैनिफ़ेस्ट और दस्तावेज़ीकरण ही उस सवाल के लिए भरोसेमंद स्रोत हैं।
adb shell dumpsys connectivity | grep -i -m5 vpn
दूर की सेवा क्या देख सकती है
सर्वर कनेक्शन का स्रोत पता, ट्रांसपोर्ट और समय देखता है, और वह पते को रजिस्ट्री या रूटिंग डेटा से समृद्ध कर सकता है। वह ऐप द्वारा भेजा गया सब कुछ भी प्राप्त कर सकता है, जिसमें स्थान भी शामिल है जब ऐप उसे माँगता है और उपयोगकर्ता सहमत होता है। ये चैनल अलग हैं, और केवल एक ही पता-खोज जैसा दिखता है।
होस्टिंग प्रदाता पर पंजीकृत पता सुरंग का संकेत देता है, जबकि आवासीय नेटवर्क पर पंजीकृत पता घरेलू कनेक्शन का संकेत देता है। दोनों सांख्यिकीय संकेत हैं, डिवाइस के बारे में तथ्य नहीं।
आवासीय पता व्यक्ति को उस पते पर नहीं रखता, और होस्टिंग पता ऑपरेटर या देश का नाम नहीं बताता। जो सेवा अनुमान को निश्चितता मानती है, वह कभी गलत होगी और उसे पकड़ भी नहीं पाएगी। यदि आवश्यकता अनुमान नहीं बल्कि विश्वसनीयता है, तो पता डेटा वह नहीं दे सकता, और ऐसा कहने वाला डिज़ाइन अनुमान छिपाने वाले डिज़ाइन से अधिक ईमानदार है।
| सबूत | यह किसका जवाब देता है | यह क्या नहीं दिखा सकता |
|---|---|---|
| स्थानीय ट्रांसपोर्ट मार्कर | क्या यह नेटवर्क ऑब्जेक्ट VPN है | एग्ज़िट कौन चलाता है या डिवाइस कहाँ है |
| दूर का स्रोत पता | कौन सा पता सेवा तक पहुँचा | क्या डिवाइस में सुरंग भी है |
| एप्लिकेशन पेलोड | ऐप ने क्या भेजना चुना | वह सब जो ऐप ने नहीं भेजा |
स्वयं होस्ट किया गया एग्ज़िट केवल एक पक्ष क्यों बदलता है
अपना एंडपॉइंट चलाने से वह स्रोत पता बदल जाता है जो दूर की सेवा देखती है, और यह उसे उन श्रेणियों से बाहर ले जा सकता है जिन्हें वह सेवा वाणिज्यिक प्रदाताओं से जोड़ती है। स्थानीय नेटवर्क मॉडल में कुछ नहीं बदलता, क्योंकि सुरंग सुरंग ही रहती है और ऑपरेटिंग सिस्टम अब भी उसकी सूचना देता है।
सबूत का एक पक्ष हिलता है; दूसरा स्थिर रहता है। उनके बीच का अंतराल वह जगह है जहाँ अपेक्षाएँ टूटती हैं।
ब्राउज़र अपने इंटरफ़ेस और प्रतिबंधों के साथ तीसरा मामला है। वेब सामग्री मूल क्षमता ऑब्जेक्ट नहीं पढ़ सकती, और मोबाइल ऑपरेटिंग सिस्टम की सुविधा को वेब पेज के लिए उपलब्ध मानना श्रेणी की भूल है। यदि सवाल किसी वेबसाइट से जुड़ा है, तो प्लेटफ़ॉर्म API की नकल लिखने के बजाय अध्ययन करें कि वेबसाइट वास्तव में क्या प्राप्त कर सकती है।
आप जो सवाल पूछ रहे हैं उसी से तय करें
यदि सवाल यह है कि कोई विशेष ऐप सुरंग की स्थिति देख सकता है या नहीं, तो प्लेटफ़ॉर्म इंटरफ़ेस देखने की सही जगह है, और जवाब उस ऐप के कोड और अनुमतियों में है। यदि सवाल यह है कि कोई सेवा क्या अनुमान लगा सकती है, तो कनेक्शन मेटाडेटा सबूत है। कानूनी या संविदात्मक सवाल दोनों में से कोई तय नहीं करता।
कुछ भी इकट्ठा करने से पहले सवाल को एक वाक्य में नाम दें। वही वाक्य तय करता है कि कौन सा अवलोकन बिंदु मायने रखता है और जाँच को किसी दूसरी बहस की ओर बहकने से रोकता है।
रिपोर्ट करते समय हर अवलोकन को उसके स्रोत के अनुसार लेबल करें, क्योंकि बिना लेबल का दावा समीक्षा योग्य नहीं होता। स्थानीय मार्कर और पते का अनुमान दोनों उपयोगी हैं और कोई भी निर्णायक नहीं, इसलिए उन्हें एक फ़ैसले में मिला देना भूल है।
जब कोई सेवा अधिकृत कनेक्शन अस्वीकार करे, तो संकेत छिपाने के लिए स्थानीय सेटिंग बदलने के बजाय उसका समर्थित समीक्षा मार्ग अपनाएँ। एक अवलोकन हटाना कभी साबित नहीं करता कि बाकी गायब हो गए।