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त्या फाइलमध्ये डिक्रिप्ट केलेली आतील रहदारी असते: स्रोत म्हणून क्लायंटचा टनेल पत्ता, गंतव्य पत्ता व पोर्ट, पॅकेटचे आकार आणि वेळ. कुठेतरी TLS संपवले नसेल तर त्यात HTTP मार्ग किंवा प्रतिसादाचा मुख्य भाग नसतो, आणि हा संवेदनशील डेटा आहे; तो ठेवणे डीबग सोय नसून धोरणाचा निर्णय आहे.
भौतिक इंटरफेसवरील कॅप्चर वेगळे काही दाखवते. तिथे 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 बाबत चुकीचा असू शकतो.
तपासणी पुनरुत्पादनीय ठेवा: तीच रिझॉल्व्हर क्वेरी, तोच कॅप्चर इंटरफेस आणि तीच तुलना. नामनिर्देशित स्तरावर तपासता न येणारा गोपनीयतेचा दावा घोषणावाक्य आहे, कार्यान्वयीन तथ्य नाही.