WireGuard हैंडशेक का टाइमस्टैम्प असल में आपको क्या बताता है
हैंडशेक का समय ब्राउज़िंग इतिहास नहीं है, लेकिन यह किसी खाते को घटना से जोड़ता है। तुलना करें कि WireGuard और OpenVPN क्या दर्ज करते हैं और सटीकता क्या छिपाती है।
«पिछला हैंडशेक, दो मिनट पहले» कहने वाली एक पंक्ति लगातार गतिविधि का सबूत लगती है और उससे कमज़ोर है। यह एक पीयर के लिए अंतिम पूर्ण हुआ कुंजी-विनिमय दर्शाती है, जो ट्रैफ़िक बहते समय तय कुंजी-नवीनीकरण टाइमर पर होता है और पीयर के शांत होते ही रुक जाता है। वह समय किसी व्यक्ति को किसी चीज़ से जोड़ता है या नहीं, यह उसके पास संग्रहीत पहचानकर्ताओं और दोनों प्रणालियों की घड़ियों पर निर्भर करता है। दो सबसे आम स्टैक में यह रिकॉर्ड कैसे व्यवहार करता है और इसका पाठ कहाँ गलत होता है, यह आगे है।
दो रिकॉर्ड, दो अलग अर्थ
WireGuard प्रत्येक पीयर के लिए एक हैंडशेक टाइमस्टैम्प रखता है, जो हर कुंजी-नवीनीकरण पर बदल जाता है, साथ में हर दिशा में बाइट काउंटर। OpenVPN आम तौर पर सत्र की शुरुआत, कनेक्शन टूटना और कॉन्फ़िगर की गई वर्बोसिटी जो जोड़ती है, वह दर्ज करता है, जिससे रिकॉर्ड की इकाई कुंजी-विनिमय नहीं बल्कि सत्र हो जाती है।
यही अंतर तय करता है कि अनुपस्थिति का अर्थ क्या है:
| Question | WireGuard handshake | OpenVPN session log |
|---|---|---|
| Did the peer send recently? | Strong hint within the rekey window | Not answered by start time alone |
| Did the peer stop? | Weak, because idle peers also stop rekeying | Only if a disconnect was written |
| What was visited? | Nothing | Nothing |
हैंडशेक लगातार उपयोग क्यों नहीं है
जब तक सुरक्षित करने योग्य डेटा है, WireGuard लगभग हर दो मिनट में कुंजियाँ नवीनीकृत करता है, और निष्क्रिय हो चुका पीयर बस रुक जाता है। इसलिए पुराना हैंडशेक इसका अर्थ हो सकता है कि लैपटॉप सो रहा है, उपयोगकर्ता ने काम रोक दिया है, या नेटवर्क ने वे पैकेट गिरा दिए जो अगला विनिमय शुरू करते। टाइमस्टैम्प गतिविधि की निचली सीमा है, ध्यान का ट्रैकर नहीं।
उलटी गलती भी उतनी ही आसान है। लगातार keepalive ट्रैफ़िक निष्क्रिय डिवाइस पर सुरंग को गर्म रखता है, इसलिए एक घंटे से किसी के न छुए मशीन पर भी ताज़ा हैंडशेक दिख सकता है। यहाँ बाइट काउंटर मदद करते हैं, क्योंकि वे असली डेटा भेजने वाले पीयर को केवल keepalive बदलने वाले से अलग करते हैं और यह भी बताते हैं कि मात्रा किस दिशा में गई। इनमें से कुछ भी गंतव्य, पृष्ठ या क्वेरी प्रकट नहीं करता।
पहचानकर्ता टाइमस्टैम्प के साथ यात्रा करते हैं
खाते, सार्वजनिक कुंजी या स्रोत पते के बिना समय अनाथ है। टाइमस्टैम्प को पीयर की पहचान से जोड़िए और अवलोकन जोड़ने योग्य हो जाता है: सार्वजनिक कुंजी पते बदलने पर भी टिकी रहती है, जबकि स्रोत पता ऑपरेटर के पता-अनुवाद के पीछे कई ग्राहकों में साझा हो सकता है।
यही असमानता अधिकांश गोपनीयता चर्चाओं से छूट जाती है। पता अनाम लगता है क्योंकि वह साझा है, और कुंजी तकनीकी लगती है क्योंकि वह लंबी है, पर स्थिर पहचानकर्ता कुंजी ही है। एक फ़ील्ड रखना और दूसरी छोड़ देना दिखने वाली सटीकता बदले बिना सहसंबंध जोखिम बदल देता है।
सहसंबंध स्वयं दर्ज चिंता है। कनेक्शन के समय को किसी प्रदाता की लॉगिन घटना, सहायता टिकट या भुगतान रिकॉर्ड से जोड़ना पहचान को गतिविधि से जोड़ सकता है, तब भी जब कोई गंतव्य कभी लिखा ही न गया हो, और इसीलिए जोड़ी बनाना प्रारूपण से अधिक मायने रखता है।
प्रणालियों के बीच सहसंबंध में घड़ियों की देखभाल चाहिए
एक ही क्षण की सूचना देने वाली दो प्रणालियाँ सेकंड तक शायद ही सहमत हों। एक अपने आउटपुट में समय क्षेत्र का अंतर लागू कर सकती है, दूसरी कुछ सेकंड गलत घड़ी पर चल सकती है, और वर्चुअल मशीन निलंबन के बाद खिसक सकती है।
यह निष्कर्ष निकालने से पहले कि दो घटनाएँ साथ हुईं, दोनों को एक ही क्षेत्र में बदलिए और अंतर को प्रदर्शन में नहीं, कच्चे रिकॉर्ड में जाँचिए। यदि आप जो अंतराल माप रहे हैं वह संभावित विचलन से छोटा है, तो आपके पास कोई क्रम ही नहीं है।
व्यावहारिक नियम यह है कि समस्या-निवारण कार्य को जितनी सटीकता चाहिए उतनी रखिए, उससे अधिक नहीं। प्रति घंटा सत्रों की गिनती हर खाते का इतिहास रखे बिना उपलब्धता के प्रश्न का उत्तर देती है, और एक समग्र को उन कच्ची पंक्तियों से कहीं अधिक समय तक रखा जा सकता है जिनसे वह आया।
रिकॉर्ड को आदेशों से पढ़िए, कल्पना से नहीं
जिन फ़ील्डों पर आप तर्क करने वाले हैं, उन्हें उन इकाइयों में छापिए जिनमें टूल संग्रह करता है, उनमें नहीं जिनमें डैशबोर्ड दिखाता है।
ये दो पंक्तियाँ हर WireGuard पीयर के लिए हैंडशेक की आयु और बाइट काउंटर दिखाती हैं, और फिर OpenVPN स्टेटस फ़ाइल से वही प्रकार की सामग्री:
wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.statusनिष्कर्ष निकालने से पहले आयु की कुंजी-नवीनीकरण अंतराल से तुलना कीजिए और काउंटर भी उसके साथ पढ़िए। ताज़ा हैंडशेक और लगभग शून्य स्थानांतरण वाला पीयर keepalive बदल रहा है, जबकि पुराने हैंडशेक और बड़े काउंटर वाला पीयर रुकने तक व्यस्त था। दोनों में से कोई पंक्ति यह नहीं कहती कि क्या किया गया, और यह स्पष्ट कहना टाइमस्टैम्प के विज़िट साबित करने का संकेत देने से अधिक सटीक है।