क्या VPN ऑपरेटर देख सकता है कि आप कौन सी साइटें खोलते हैं?
डिफ़ॉल्ट OpenVPN सर्वर सत्र दर्ज करता है, URL नहीं। ऑपरेटर क्या देखता है, यह दावा करने से पहले कनेक्शन लॉग, टनल कैप्चर और DNS लीक जाँच की तुलना करें।
VPN क्या देख सकता है, यह इस पर निर्भर करता है कि आप इस पथ में कहाँ खड़े हैं। सत्र परत पर ऑपरेटर के पास प्रमाणीकरण की घटनाएँ और बाइट की गिनती होती है। पैकेट परत पर उसके पास गंतव्य पते और समय होता है। DNS परत पर उसके पास नाम भी हो सकते हैं। हर परत अलग सवाल का जवाब देती है, और कोई एक स्विच आपको एक से दूसरी में नहीं ले जाता।
दावा करने से पहले परत तय करें
एक ही कनेक्शन हर बिंदु पर अलग रिकॉर्ड बनाता है, और गोपनीयता के बारे में कोई बात तभी अर्थ रखती है जब वह उस बिंदु का नाम ले। तालिका को स्तंभ-दर-स्तंभ पढ़ें: उस परत पर क्या मौजूद है, वहाँ ऑपरेटर क्या देख सकता है, और वही रिकॉर्ड उसे क्या नहीं बता सकते।
| Layer | Visible there | Not visible there |
|---|---|---|
| Session and authentication | Account, client address, start and stop times, assigned address, byte counts | URLs, page content, search terms |
| Forwarded packets | Destination address and port, sizes, timing, often the TLS server name | HTTP path, headers, response body |
| DNS resolver | Queried names and the client that asked | Page content and later requests |
| TLS-terminating proxy | Full request line, headers and body | Nothing, by design |
एक परत को पूरी तस्वीर मान लेना ही अतिशयोक्ति और झूठे भरोसे दोनों की शुरुआत है। कोई प्रदाता जो कहता है कि वह ब्राउज़िंग लॉग नहीं रखता, URL लॉगिंग के बारे में सही हो सकता है और फिर भी सत्र रिकॉर्ड रख सकता है, और केवल पते दिखाने वाला पैकेट कैप्चर रिवर्स लुकअप और अंदाज़े के बिना ब्राउज़िंग इतिहास नहीं बन जाता।
किसी नीति को परखते समय वह वाक्य खोजें जो हर परत का वर्णन करता है। अगर नीति इन्हें अलग नहीं करती, तो एन्क्रिप्शन के बारे में सामान्य बयान स्वीकार करने के बजाय पूछें कि कौन से रिकॉर्ड मौजूद हैं।
सत्र सूची: सामान्य OpenVPN सर्वर क्या रखता है
डिफ़ॉल्ट रूप से OpenVPN सर्वर ट्रैफ़िक कैप्चर नहीं करता। सामान्य आउटपुट एक सत्र सूची होती है: कौन सा खाता प्रमाणित हुआ, वह किस स्रोत पते से आया, शुरू और अंत के टाइमस्टैम्प, दिया गया टनल पता और दोनों दिशाओं में कुल बाइट। यह सत्रों की सूची है, गंतव्यों की सूची नहीं।
लॉगिंग विकल्प विवरण जोड़ सकते हैं। अधिक वर्बोसिटी स्तर हैंडशेक के बारे में अधिक लिखता है, और स्टेटस फ़ाइल जुड़े क्लाइंट की सूची दे सकती है, लेकिन इनमें से कोई भी सर्वर को पारदर्शी प्रॉक्सी नहीं बनाता। URL बनाने के लिए TLS समाप्त करना या स्पष्ट प्रॉक्सी चलाना ज़रूरी है, और दोनों ही किसी छिपी सुविधा को चालू करने के बजाय भरोसे का ढाँचा बदल देते हैं।
इसीलिए ब्राउज़िंग लॉग नहीं रखने वाले दावे का सही संस्करण जितना सुनाई देता है उससे संकीर्ण है। सर्वर पेज नहीं जानता, पर वह जानता है कि एक सत्र था और उसमें लगभग कितना डेटा गुजरा। वह सत्र रिकॉर्ड रखा जाता है या नहीं, और कितने समय तक, यह अलग नीति का सवाल है।
अंदरूनी और बाहरी पैकेट अलग सबूत हैं
पैकेट कैप्चर से आप देखते हैं कि टनल से वास्तव में क्या गुजरता है। सर्वर पर टनल इंटरफ़ेस का नाम दें और ऐसी फ़ाइल में लिखें जिसे बाद में ऑफ़लाइन जाँचा जा सके:
sudo tcpdump -ni tun0 -w /tmp/tun.pcap
sudo tcpdump -r /tmp/tun.pcap -nn | headउस फ़ाइल में डिक्रिप्ट किया हुआ अंदरूनी ट्रैफ़िक होता है: स्रोत के रूप में क्लाइंट का टनल पता, गंतव्य पता और पोर्ट, पैकेट का आकार और समय। इसमें HTTP पथ या रिस्पॉन्स बॉडी नहीं होती, जब तक कहीं TLS समाप्त न किया गया हो, और यह संवेदनशील डेटा है जिसे रखना या न रखना डिबगिंग की सुविधा नहीं, नीति का फ़ैसला है।
फ़िज़िकल इंटरफ़ेस पर कैप्चर कुछ और दिखाता है। वहाँ आप VPN एंडपॉइंट को संबोधित बाहरी पैकेट देखते हैं, जिनके अंदर एन्क्रिप्टेड पेलोड होता है। उस फ़ाइल में असंबंधित पते दिखना सामान्य है जब वर्चुअल अडैप्टर मौजूद हो, क्योंकि टनल डिवाइस अंदरूनी प्रवाह ढोता है जबकि एन्क्रिप्टेड ट्रांसपोर्ट बाहरी प्रवाह ढोता है।
पूछें कि कैप्चर किस सवाल का जवाब देने के लिए है। किसी एप्लिकेशन का टनल का उपयोग वर्चुअल अडैप्टर पर दिखता है; एंडपॉइंट तक टनल की पहुँच फ़िज़िकल अडैप्टर पर दिखती है। किसी एक फ़ाइल को पूरी तस्वीर मानकर नतीजे निकालना ऐसे निष्कर्ष देता है जिन्हें डेटा सहन नहीं करता।
DNS वह जगह है जहाँ नाम दिखाई देते हैं
DNS व्यवहारिक अपवाद बना रहता है। रिज़ॉल्वर उन नामों को देखता है जो उसे हल करने को दिए जाते हैं, इसलिए जो भी उसे चलाता है वह जान लेता है कि क्लाइंट कौन सी साइटें खोजता है, भले ही बाद के कनेक्शन एन्क्रिप्टेड हों। टनल कैप्चर पते दिखाता है; रिज़ॉल्वर नाम दिखाता है।
जाँचें कि रिज़ॉल्वर ने किस पते से बाहरी सेवा तक पहुँच बनाई। जवाब रिज़ॉल्वर का एग्रेस पता है, और उसकी तुलना VPN एग्ज़िट से करने पर पता चलता है कि क्वेरी टनल से गुजरी या नहीं:
dig +short myip.opendns.com @resolver1.opendns.com
dig example.com
sudo tcpdump -ni any udp port 53अगर वह पता टनल एग्ज़िट के बजाय स्थानीय कनेक्शन से मेल खाता है, तो लुकअप ने VPN को बायपास किया और नाम स्थानीय पथ पर दिखाई दिया। क्लाइंट अपडेट के बाद जाँच दोहराएँ, क्योंकि नया संस्करण बदल सकता है कि प्रोफ़ाइल कौन सा रिज़ॉल्वर इंस्टॉल करता है।
एन्क्रिप्टेड DNS दृश्यता को हटाता नहीं, खिसका देता है। नेटवर्क अब क्वेरी नहीं देखता, पर रिज़ॉल्वर अब भी देखता है, और भरोसे का सवाल बस हाथ बदल लेता है। कनेक्शन हैंडशेक में TLS सर्वर नाम एक और आधा-अधूरा संकेत है: पेलोड अपारदर्शी होने पर भी वह अक्सर बचा रहता है, इसलिए गंतव्य पते ही वह मेटाडेटा नहीं हैं जो फ़ॉरवर्डिंग सर्वर देख सकता है।
तीन तरह के रिकॉर्ड और उन्हें कौन पढ़ सकता है
सत्र लेखा, प्रति-नाम रिकॉर्ड और लीक सबूत तीन अलग उत्पाद हैं जिनके तीन अलग दायित्व हैं। सत्र लॉग सस्ते और कम संवेदनशील होते हैं, और वे बताते हैं कि कौन कब जुड़ा। प्रति-नाम रिकॉर्ड के लिए लॉगिंग रिज़ॉल्वर या स्पष्ट प्रॉक्सी चाहिए, और वे प्रभावित लोगों के प्रति प्रकटीकरण का दायित्व बनाते हैं। लीक सबूत क्लाइंट-पक्ष की जाँच है जो रिज़ॉल्वर जो दिखाता है उसकी तुलना टनल एग्ज़िट से करती है।
लिख लें कि इन तीनों में से आप क्या चलाते हैं, इसे कौन पढ़ सकता है और कितने समय तक रहता है। सेवा कोई लॉग नहीं रखती जैसे बयान एक परत का वर्णन करते हैं, और वे केवल उसी दायरे में सही रहते हैं। एक ही प्रदाता सत्रों के बारे में सही और DNS के बारे में गलत हो सकता है।
जाँच को दोहराने योग्य रखें: वही रिज़ॉल्वर क्वेरी, वही कैप्चर इंटरफ़ेस और वही तुलना। जिस गोपनीयता दावे को किसी नामित परत पर जाँचा न जा सके, वह नारा है, परिचालन तथ्य नहीं।