HTTPS प्रॉक्सी का अर्थ दो TLS कनेक्शन हैं, एक नहीं
प्रॉक्सी हॉप और वेबसाइट अलग TLS संबंध हैं, अलग भरोसे के साथ। कोई भी प्रमाणपत्र सेटिंग बदलने से पहले पढ़ें कि कौन-सा सिरा विफल हुआ।
HTTPS प्रॉक्सी का लेबल केवल आपके क्लाइंट और प्रॉक्सी के बीच के परिवहन का वर्णन करता है, और कुछ नहीं। यह नहीं कहता कि इसके पीछे की वेबसाइट उसी कनेक्शन से एन्क्रिप्ट है, और यह भी नहीं कहता कि प्रॉक्सी पेज पढ़ सकता है। जैसे ही आप दोनों कनेक्शन अलग करते हैं, प्रमाणपत्र की त्रुटियाँ रहस्यमय रहना बंद कर देती हैं और VPN से तुलना ठोस हो जाती है।
दो सिरों के जोड़े, दो सत्यापन
सामान्य टनल मोड में दो TLS संबंध होते हैं। पहला आपके क्लाइंट से प्रॉक्सी तक जाता है और प्रॉक्सी को प्रमाणित करता है। दूसरा आपके क्लाइंट से टनल के भीतर की वेबसाइट तक जाता है और वेबसाइट को प्रमाणित करता है। वे स्वतंत्र रूप से विफल होते हैं और स्वतंत्र रूप से कॉन्फ़िगर होते हैं।
उनके अलग भरोसा निर्णय, अलग प्रमाणपत्र श्रृंखलाएँ और अलग विफलता संदेश हैं। संगठनात्मक CA वाली प्रॉक्सी और सार्वजनिक श्रृंखला वाली सार्वजनिक वेबसाइट को वैध रूप से अलग सत्यापन कॉन्फ़िगरेशन की आवश्यकता हो सकती है, और यह गलत कॉन्फ़िगरेशन नहीं है।
उन्हें दो ऐसे कनेक्शन मानें जो संयोगवश एक सॉकेट साझा करते हैं, क्योंकि वे वही हैं।
CONNECT वास्तव में क्या टनल करता है
क्लाइंट होस्ट और पोर्ट का नाम लेते हुए CONNECT अनुरोध भेजता है, और प्रॉक्सी उस लक्ष्य तक TCP कनेक्शन खोलता है। प्रॉक्सी के उत्तर देने के बाद, आगे के बाइट बिना व्याख्या के रिले होते हैं, इसलिए वेबसाइट का TLS हैंडशेक प्रॉक्सी से अछूता गुज़रता है। इस तरह प्रॉक्सी गंतव्य का नाम और कनेक्शन का मेटाडेटा जान लेता है, परंतु उस व्यवस्था से डिक्रिप्ट किए गए पेज नहीं पाता।
यही अंतर टनल मोड का पूरा सुरक्षा तर्क है, और यही उसकी सीमा भी है।
प्रॉक्सी हॉप पर TLS के बिना HTTP प्रॉक्सी फिर भी CONNECT के ज़रिए HTTPS वेबसाइट ले जाती है। क्लाइंट-से-प्रॉक्सी आदान-प्रदान खुला रहता है जबकि वेबसाइट कनेक्शन नहीं, और पूरी बात को HTTPS प्रॉक्सी कहना उस अंतर को छिपाता है।
कौन-सा प्रमाणपत्र विफल हुआ
जब सत्यापन विफल हो, तो कोई भी भरोसा सेटिंग बदलने से पहले त्रुटि में नामित सिरे को पढ़ें। दोनों विफलताएँ टर्मिनल में एक जैसी दिखती हैं और पूरी तरह अलग सुधारों की ओर इशारा करती हैं, इसलिए पहला प्रश्न हमेशा यही होता है कि कौन-सा कनेक्शन अस्वीकार हुआ।
curl ठीक इसी कारण विकल्पों को अलग रखता है। प्रॉक्सी की CA फ़ाइल प्रॉक्सी का सत्यापन कॉन्फ़िगर करती है, जबकि CA फ़ाइल सर्वर का सत्यापन कॉन्फ़िगर करती है, और लागू ट्रस्ट स्टोर का व्यवहार भी इस पर निर्भर करता है कि curl कैसे बनाया गया।
curl -v --proxy https://proxy.example.net:443 \
--proxy-cacert org-ca.pem --cacert public-ca.pem https://www.example.com/जाँच को दबाना कोई मरम्मत नहीं है। यह दोनों में से किसी भी सिरे के बारे में कुछ सिद्ध नहीं करता।
निरीक्षण एक अलग व्यवस्था है
TLS निरीक्षण टनलिंग नहीं है। एक निरीक्षक मध्यस्थ वेबसाइट की ओर के भरोसा संबंध को समाप्त करता है और क्लाइंट को अपना प्रमाणपत्र प्रस्तुत करता है, इसलिए क्लाइंट साइट के बजाय मध्यस्थ को सत्यापित करता है। यह मंज़ूर डिज़ाइन के अंतर्गत वैध हो सकता है, और यह बाइट-दर-बाइट रिले से मूल रूप से अलग दावा है। यह न मानें कि हर प्रॉक्सी निरीक्षण करती है, और यह भी न मानें कि एन्क्रिप्टेड प्रॉक्सी हॉप इसे रोकता है।
आपके ट्रस्ट स्टोर में संगठनात्मक CA इस बात का संकेत है कि आप किस व्यवस्था में हैं, प्रमाण नहीं। डिज़ाइन के बारे में पूछें, प्रमाणपत्र श्रृंखला से अनुमान न लगाएँ।
वे दोनों व्यवस्थाएँ इस प्रश्न के अलग उत्तर देती हैं कि पेज कौन पढ़ सकता है।
प्रॉक्सी और VPN की तुलना उन्हीं चार पंक्तियों पर करें
तुलना तभी उपयोगी होती है जब दोनों परिनियोजन एक ही तरह से वर्णित हों।
| Line | What to state |
|---|---|
| Protected segments | Which hops are encrypted, and between which endpoints |
| Verified identities | What each end proves, and against which trust anchor |
| Trusted intermediaries | Who can read or alter traffic by design |
| Traffic included | Which processes and destinations the policy actually covers |
एक अनुरोध के लिए कॉन्फ़िगर की गई प्रॉक्सी उस अनुरोध को कवर करती है। यह डिवाइस की हर प्रक्रिया को अपने से नहीं गुज़ारती, और उदाहरण कमांड ठीक उतना ही सीमित है। VPN का कवरेज उसके रूटिंग और एप्लिकेशन नीति पर निर्भर करता है, जिन्हें भी मानने के बजाय जाँचना चाहिए। कोई भी विकल्प केवल इसलिए सब कुछ कवर नहीं करता कि वह इंस्टॉल किया गया।
हर विकल्प के लिए चार पंक्तियाँ लिखें और तर्क सामान्यतः स्वयं हल हो जाता है। उपयोगी तुलना यह नहीं है कि कौन-सा लेबल अधिक एन्क्रिप्टेड लगता है। बल्कि यह है कि कौन-से खंड सुरक्षित हैं, उनके सिरों पर किसका सत्यापन होता है, किन मध्यस्थों पर आप भरोसा करते हैं, और नीति वास्तव में कौन-सा ट्रैफ़िक शामिल करती है।