Android पर प्रति-ऐप VPN और Chrome इनकॉग्निटो: नियम क्या कवर करता है
प्रति-ऐप नियम पैकेज चुनते हैं, ब्राउज़र टैब नहीं, और सूचना पहले अनुरोध के बाद आती है। दायरा, समय और ज़रूरी प्रवर्तन जाँचें।
किसी ने एक ऑटोमेशन बनाया है जो इनकॉग्निटो टैब दिखने पर VPN चालू कर देता है, और वह भरोसेमंद तरीके से काम नहीं करता। इसका एक संरचनात्मक कारण है, और ऑटोमेशन को ट्यून करने से पहले उसे समझना उचित है। Android के प्रति-ऐप VPN नियम ऐप्लिकेशन पैकेज चुनते हैं, और इनकॉग्निटो एक ही पैकेज के भीतर की स्थिति है, इसलिए नियम दोनों में फ़र्क़ नहीं कर सकता। सूचना ब्राउज़र के काम शुरू करने के बाद आती है, इसलिए सही ट्रिगर भी देर से पहुँचता है। नीचे दी जाँचें क्रम में करें; चौथी जाँच में विफलता का अर्थ है कि बदलने की ज़रूरत दृष्टिकोण में है, कॉन्फ़िगरेशन में नहीं।
जाँच एक: पुष्टि करें कि प्रति-ऐप नियम क्या चुन सकता है
Android VPN ऐप अपना टनल अनुमत या अस्वीकृत ऐप्लिकेशन सूचियों से बनाता है, और वे सूचियाँ पैकेज नाम लेती हैं। सामान्य मोड में Chrome और इनकॉग्निटो मोड में Chrome एक ही पैकेज हैं, एक ही उपयोगकर्ता आईडी और एक ही नेटवर्क अनुमति के साथ, इसलिए Chrome को शामिल या बाहर रखने वाला नियम दोनों पर एक जैसा लागू होता है। प्लेटफ़ॉर्म के पास मिलान के लिए टैब-आधारित पहचान नहीं है।
यह बचने योग्य ख़राबी नहीं है; यह वही बारीकी है जो API देता है। अगर आपकी आवश्यकता है कि Chrome का ट्रैफ़िक टनल से जाए और बाकी सब बाहर, तो प्रति-ऐप नियम उसे ठीक-ठीक व्यक्त करता है। अगर आपकी आवश्यकता है कि केवल निजी टैब टनल से जाएँ जबकि सामान्य टैब सीधे जाएँ, तो कोई भी प्रति-ऐप नियम उसे व्यक्त नहीं कर सकता, और सूचना तर्क की कोई भी मात्रा ऐसा चयनक नहीं जोड़ेगी जो प्लेटफ़ॉर्म के पास नहीं है।
जाँच के दौरान पैकेज पहचान के जाल पर ध्यान दें। बीटा या विक्रेता का बिल्ड स्थिर ब्राउज़र से अलग पैकेज है, इसलिए एक को कवर करने वाला नियम दूसरे को चुपचाप छोड़ देता है:
adb shell pm list packages | grep -i chrome
जाँच दो: जाँचें कि क्या ट्रिगर कभी इतना जल्दी हो सकता है
सूचना श्रोता उन सूचनाओं का निरीक्षण करता है जिन्हें देखने की उसे अनुमति है। निरीक्षण अवरोधन नहीं है: सूचना बनने तक ब्राउज़र नाम हल कर चुका होता है और कनेक्शन खोल चुका होता है, और उस मार्ग में कुछ भी आपके ऑटोमेशन के पूरा होने की प्रतीक्षा नहीं करता। फिर VPN क्लाइंट शुरू करने वाले कार्य को क्लाइंट UI, किसी सहमति संकेत और टनल हैंडशेक की प्रतीक्षा करनी पड़ती है, जो सेकंड में मापे जाते हैं जबकि पहला अनुरोध मिलीसेकंड में मापा जाता है।
पहचान स्वयं दूसरे कारण से भी नाज़ुक है। सूचना का पाठ संस्करणों और स्थानीयकरणों के बीच बदलता है, इसलिए एक रिलीज़ से मेल खाने वाला पैटर्न अपडेट के बाद मेल खाना बंद कर देता है, और विफलता चुपचाप होती है। सूचना का न होना इस बात का प्रमाण नहीं है कि निजी ब्राउज़िंग नहीं है; इसका अर्थ केवल यह हो सकता है कि स्ट्रिंग बदल गई या चैनल म्यूट कर दिया गया।
इस कार्यप्रवाह का एक वैध संस्करण है, और वह प्रतिक्रियात्मक नहीं बल्कि क्रमबद्ध है: पहले स्वीकृत VPN कनेक्ट करें, ऐसा तैयारी संकेत पुष्ट करें जो वास्तव में सिद्ध करे कि टनल ट्रैफ़िक ले जा रहा है, फिर समर्थित ब्राउज़र नियंत्रणों से इनकॉग्निटो सत्र खोलें, और यदि तैयारी जाँच विफल हो तो रुकें। यह उस सत्र की रक्षा करता है जिसे आप शुरू करने वाले हैं, बिना यह दिखावा किए कि आप पहले से चल रहे सत्र की रक्षा कर रहे हैं।
जाँच तीन: उस अनुमति का ऑडिट करें जो आप देने वाले हैं
सूचना पहुँच एक संवेदनशील अनुमति है जो किसी सेवा को हर ऐप की सूचनाएँ पढ़ने देती है, केवल ब्राउज़र की नहीं। इसे किसी अपरिचित ऑटोमेशन उपकरण को एक ब्राउज़र स्थिति देखने के लिए देना ख़राब सौदा है, और प्रयोग ख़त्म होने के बाद भी पहुँच बनी रहती है। सुलभता-चालित टैप और भी बुरे हैं: वे UI के ऊपर एक स्क्रिप्ट परत हैं, समर्थित VPN नियंत्रण इंटरफ़ेस नहीं, और किसी भी लेआउट बदलाव पर टूट जाते हैं।
कुछ भी देने से पहले पूछें कि क्या वही परिणाम समर्थित तंत्र से मिल सकता है। यदि उत्तर नीति आवश्यकता है, तो आमतौर पर हाँ: प्लेटफ़ॉर्म किसी भी सुनने वाली सेवा के बिना किसी ऐप या प्रोफ़ाइल के लिए टनल लागू कर सकता है।
जाँच चार: जब आवश्यकता प्रवर्तन हो तो हमेशा-चालू और ब्लॉकिंग का उपयोग करें
यदि ब्राउज़र को कभी भी टनल के बाहर संवाद नहीं करना चाहिए, तो प्रवर्तन प्लेटफ़ॉर्म सेटिंग्स में आता है, मैक्रो में नहीं। Android टनल स्थापित न होने पर ट्रैफ़िक रोकने वाले ब्लॉकिंग मोड के साथ हमेशा-चालू VPN का समर्थन करता है, और प्रबंधित डिवाइस इसे नीति से प्राप्त कर सकते हैं। मान लेने के बजाय पुष्टि करें कि डिवाइस में अभी क्या है:
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown
ग़ैर-शून्य ऐप मान का अर्थ है कि एक पैकेज हमेशा-चालू के रूप में कॉन्फ़िगर है, और ब्लॉकिंग मान 1 का अर्थ है कि टनल के बाहर के कनेक्शन अवरुद्ध हैं। यही जोड़ी सर्वोत्तम-प्रयास की आदत को गारंटी में बदलती है, और यह दौड़ को पूरी तरह हटा देती है, क्योंकि ऐप्लिकेशन ट्रैफ़िक की अनुमति से पहले टनल स्थापित हो जाता है।
यहाँ दो सीमाएँ बताने योग्य हैं। कार्य प्रोफ़ाइलों की अपनी VPN कॉन्फ़िगरेशन होती है, इसलिए व्यक्तिगत प्रोफ़ाइल में सत्यापित नियम कार्य प्रोफ़ाइल के बारे में कुछ नहीं कहता। और अलग से स्थापित ब्राउज़र, किसी दूसरे ऐप द्वारा खोला गया कस्टम टैब, या ऐप के भीतर का वेबव्यू अपने स्वयं के रूटिंग वाला अलग पैकेज या संदर्भ है, इसलिए असली पैकेज सत्यापित करें, यह मानने के बजाय कि अलग शैली की विंडो अलग डोमेन है।
जाँच पाँच: कार्यप्रवाह लिखें और विफलता पथ का परीक्षण करें
आप जो भी चुनें, क्रम और रोकने की शर्त दर्ज करें। सुविधा कार्यप्रवाह के लिए इसका अर्थ है: टनल ऊपर, तैयारी सिद्ध, इनकॉग्निटो खुला, और यदि तैयारी विफल हो तो कड़ा ठहराव। प्रवर्तन पथ के लिए इसका अर्थ है: हमेशा-चालू ऐप कॉन्फ़िगर, ब्लॉकिंग सक्षम, और अपेक्षित व्यवहार जब टनल बिल्कुल भी न उठ सके, यानी असुरक्षित ट्रैफ़िक के बजाय कोई ट्रैफ़िक नहीं।
फिर केवल सफलता नहीं, विफलता का परीक्षण करें। सत्र के दौरान टनल डिस्कनेक्ट करें और देखें कि ब्राउज़र क्या करता है; VPN ऐप की प्रक्रिया अवरुद्ध करें और पुष्टि करें कि कुछ भी लीक नहीं होता। अंत में, उपयोगकर्ता दस्तावेज़ में दो गोपनीयता मॉडल अलग रखें: इनकॉग्निटो ब्राउज़र की अस्थायी स्थिति नियंत्रित करता है और नेटवर्क से ट्रैफ़िक नहीं छिपाता, जबकि VPN ट्रैफ़िक ले जाता है पर लॉगिन या निजी सत्र में भेजा गया कुछ भी मिटाता नहीं।