VPN में nonce क्या है, और इसका दोबारा उपयोग टनल को क्यों तोड़ता है
nonce प्रत्येक संदेश के लिए एक मान है जो एक ही कुंजी के अंतर्गत कभी नहीं दोहराया जाना चाहिए, और यह आमतौर पर खुले रूप में यात्रा करता है। इसे हाथ से संपादित करना वह गलती है जिससे बचना चाहिए।
अधिकांश लोग VPN प्रोफ़ाइल में nonce शब्द से मिलते हैं और मान लेते हैं कि यह साथियों के बीच कॉपी करने के लिए एक और साझा रहस्य है। ऐसा नहीं है। nonce एक मान है जो एक ही कुंजी के अंतर्गत कभी नहीं दोहराया जाना चाहिए, और अधिकांश nonce-आधारित एन्क्रिप्शन में यह खुले रूप में यात्रा करता है। यह भ्रम तब तक नुकसानरहित रहता है जब तक कोई इसे हाथ से संपादित न करे, और असली टूटन वहीं से शुरू होती है।
nonce असल में कहाँ से आता है
प्रमाणित एन्क्रिप्शन को एक कुंजी के अंतर्गत एन्क्रिप्ट किए गए प्रत्येक संदेश के लिए अलग nonce चाहिए। प्रोटोकॉल इस आवश्यकता को अलग-अलग तरीकों से पूरा करते हैं: एकरूपता से बढ़ता काउंटर, पैकेट पहचानकर्ता के साथ मिलाया गया सॉल्ट, या पर्याप्त लंबा यादृच्छिक मान। IKEv2 प्रारंभिक आदान-प्रदान के दौरान nonce का आदान-प्रदान करता है, और वे कुंजी व्युत्पत्ति के लिए सार्वजनिक इनपुट हैं, रहस्य नहीं।
विशिष्टता संरचनात्मक या संभाव्य हो सकती है। काउंटर तब तक दोहराया नहीं जा सकता जब तक वह रैप न हो, इसीलिए प्रोटोकॉल उससे बहुत पहले कुंजी-नवीनीकरण बिंदु परिभाषित करता है। यादृच्छिक मान पर्याप्त बिट्स पर निर्भर करता है ताकि संदेश सीमा के भीतर टकराव असंभवनीय हो, जो अलग विफलता विधि वाला अलग तर्क है। प्रोटोकॉल दस्तावेज़ बताता है कि कौन-सी विधि लागू होती है, और दोनों केवल तब तक सुरक्षित हैं जब तक घोषित सीमा का पालन हो।
| Design | Where uniqueness comes from | Exhaustion is handled by |
|---|---|---|
| AES-GCM records | An IV, typically a counter | Rekey before the counter wraps |
| ChaCha20-Poly1305 | A 96-bit nonce from a counter or generator | A message limit per key |
| WireGuard | A per-key 64-bit counter | Rekey at a message cap |
| OpenVPN AEAD | Packet identifier plus implicit key material | Rekey on the packet-id limit |
| IKEv2 | Fresh nonces per exchange | A new security association |
दोबारा उपयोग की असली कीमत
एक कुंजी के अंतर्गत nonce का दोबारा उपयोग करना दक्षता का छोटा सवाल नहीं है। GCM के साथ, एक IV साझा करने वाले दो संदेश एक पर्यवेक्षक को प्रमाणीकरण कुंजी पुनःप्राप्त करने और दो स्पष्ट पाठों के विशेष-या की गणना करने देते हैं। स्ट्रीम-आधारित संरचनाएँ उसी तरह कुंजी-स्ट्रीम का दोबारा उपयोग करती हैं, जो सिफरटेक्स्ट को रहस्य के बजाय पहेली बना देता है।
इसीलिए कार्यान्वयन काउंटर रैप होने से पहले कुंजी नवीनीकृत करते हैं, और इसीलिए जब उनकी स्थिति अनिश्चित होती है तो वे जारी रखने के बजाय रुक जाते हैं। काउंटर को रीसेट करने वाला रीबूट जब साथी अभी भी पुरानी कुंजी रखता है, या सत्र के बीच में लिए गए स्नैपशॉट से बहाल की गई वर्चुअल मशीन, ठीक वही स्थिति है जिसे रोकने के लिए सीमाएँ मौजूद हैं। किसी हमलावर की ज़रूरत नहीं; सामान्य संचालन पर्याप्त हैं।
हाथ से संपादन गलत समाधान क्यों है
काउंटर, सॉल्ट और पैकेट पहचानकर्ता दोनों सिरों द्वारा साझा की गई स्थिति मशीनें हैं। एक पक्ष बदलने से दूसरा असंगत हो जाता है, और टनल ऐसे तरीकों से विफल होता है जो रूटिंग समस्या जैसे दिखते हैं। समर्थित लीवर ताज़ा कुंजी आदान-प्रदान है, जो एक साथ दोनों सिरों की स्थिति रीसेट करता है।
पासवर्ड और nonce भी अलग भूमिकाएँ निभाते हैं। पासवर्ड कुंजी व्युत्पत्ति के लिए गुप्त इनपुट है; nonce प्रत्येक संदेश के लिए सार्वजनिक इनपुट है। nonce लेबल वाला प्रोफ़ाइल फ़ील्ड जो लंबा रहस्य मांगता है, आमतौर पर किसी दूसरे नाम के अंतर्गत स्थिर कुंजी या पूर्व-साझा रहस्य होता है, इसलिए अनुमान लगाने के बजाय उस फ़ील्ड का दस्तावेज़ पढ़ें।
जब कोई सलाह nonce से निपटने के बारे में हो, तो मरम्मत अनुरक्षक का सुधारा हुआ संस्करण है, न कोई दूसरा सिफर न छोटी कुंजी। nonce शब्द से बचने के लिए सिफर बदलना समस्या को हल करने के बजाय खिसका देता है।
अनुमान लगाए बिना चेतावनी पढ़ना
काउंटर या nonce के बारे में लॉग पंक्ति आमतौर पर हमले के बजाय खोई हुई स्थिति का वर्णन करती है। जाँचें कि क्या एक साथी पुनः आरंभ हुआ, क्या क्लोन की गई वर्चुअल मशीन ने वही पहचान दोबारा इस्तेमाल की, और क्या दोनों सिरे कुंजी-नवीनीकरण सेटिंग्स पर सहमत हैं। फिर नया सत्र स्थापित करें और देखें कि संदेश लौटता है या नहीं।
निदान को असंबंधित विफलताओं से अलग रखें। जो पृष्ठ लोड नहीं होता, या जो क्रेडेंशियल प्रॉम्प्ट लूप में घूमता है, वह nonce के दोबारा उपयोग का प्रमाण नहीं है, और उसे ऐसा मानना आपको क्रिप्टोग्राफिक परत में भेजता है जबकि समस्या उसके ऊपर है।
सामान्य उपयोग के लिए, सुरक्षित नियम संक्षिप्त है: कार्यान्वयन को nonce प्रबंधित करने दें, दोनों सिरों को समर्थित संस्करणों पर रखें, और किसी भी स्थिति रीसेट को मान संपादित करने के बजाय कुंजी नवीनीकृत करने का कारण मानें। यदि कोई प्रोफ़ाइल फ़ील्ड विक्रेता के दस्तावेज़ में नहीं है, तो उसके लिए मान न गढ़ें। टनल ठीक करना यह जानने से शुरू होता है कि आप कौन-सी परत देख रहे हैं।