VPN में सिमेट्रिक बनाम पब्लिक-की एन्क्रिप्शन: प्रत्येक क्या करता है
VPN पब्लिक की से साथियों को प्रमाणित करता है, फिर व्युत्पन्न सत्र कुंजियों से पैकेट एन्क्रिप्ट करता है। प्रमाणपत्रों और ट्राफ़िक कुंजियों को अलग ऑब्जेक्ट मानें।
लोग VPN को „पब्लिक-की एन्क्रिप्शन उपयोग करने वाला“ बताते हैं और फिर कल्पना करते हैं कि हर पैकेट सर्वर के प्रमाणपत्र से बंद है। यह तस्वीर उस तरह गलत है जो तब मायने रखती है जब आप कॉन्फ़िग फ़ाइल या पैकेट कैप्चर पढ़ते हैं। VPN का पब्लिक-की आधा हिस्सा यह साबित करने के बारे में है कि साथी कौन है और गुप्त सामग्री पर सहमत होना है; सिमेट्रिक आधा हिस्सा वह है जो वास्तव में ट्राफ़िक की रक्षा करता है, पैकेट दर पैकेट, सत्र के पूरे जीवनकाल तक।
दोनों हिस्सों की आयु, विफलता के तरीके और सुरक्षित रूप से प्रकाशित की जा सकने वाली चीज़ें अलग हैं। एक बार जब आप उन्हें अलग कर देते हैं, „क्या RSA 2048 AES-128 से कमज़ोर है“ जैसे प्रश्न उलझाना बंद कर देते हैं, क्योंकि वे कभी तुलनीय थे ही नहीं।
तीन क्रियाएँ जिन्हें एक साथ मिलाया जाता है
पब्लिक-की क्रिप्टोग्राफी कम से कम तीन अलग क्रियाओं का एक छत्र है। हस्ताक्षर साबित करता है कि निजी कुंजी का धारक किसी विशेष संदेश को स्वीकृत करता है। कुंजी समझौता दो साथियों को सार्वजनिक रूप से आदान-प्रदान किए गए मानों से साझा रहस्य प्राप्त करने देता है। पब्लिक-की एन्क्रिप्शन डेटा को किसी की सार्वजनिक कुंजी के अंतर्गत छिपाता है ताकि केवल निजी कुंजी ही उसे खोल सके।
VPN हैंडशेक अधिकतर पहले दो का उपयोग करते हैं। प्रमाणपत्र एन्क्रिप्शन कुंजी नहीं है; यह एक हस्ताक्षरित कथन है जो नाम को सार्वजनिक कुंजी से बांधता है और दूसरे पक्ष को यह तय करने देता है कि अभी प्राप्त कुंजी पर भरोसा करे या नहीं। उदाहरण के लिए, TLS 1.3 कुंजी स्थापना (EC)DHE कुंजी समझौते और प्रमाणपत्र हस्ताक्षरों पर आधारित है, सर्वर की सार्वजनिक कुंजी से सत्र एन्क्रिप्ट करने पर नहीं।
हैंडशेक वास्तव में क्या उत्पन्न करता है
आधुनिक हैंडशेक में, प्रत्येक पक्ष एक क्षणिक कुंजी युग्म बनाता है, सार्वजनिक हिस्सों का आदान-प्रदान करता है और एक साझा रहस्य की गणना करता है जो कभी तार पर नहीं जाता। वह रहस्य फिर एक कुंजी-व्युत्पत्ति फ़ंक्शन से गुज़रता है ताकि हर दिशा के लिए अलग कुंजियाँ बनें, साथ में नॉन्स और IV सामग्री जो रिकॉर्ड परत को चाहिए। WireGuard यह अपने Noise-आधारित निर्माण से करता है; TLS 1.3 यह हैंडशेक ट्रांसक्रिप्ट पर HKDF से करता है।
दीर्घकालिक क्रेडेंशियल — प्रमाणपत्र और निजी कुंजी, या एक स्थिर WireGuard कुंजी — उस आदान-प्रदान को प्रमाणित करता है। यह ट्रांसक्रिप्ट पर हस्ताक्षर करता है या उसमें मिल जाता है ताकि कोई अजनबी साथी की जगह हैंडशेक पूरा न कर सके। उसके बाद, क्रेडेंशियल प्रति पैकेट काम नहीं करता। यदि करता, तो हर पैकेट को निजी-कुंजी क्रिया चाहिए होती और व्यस्त टनल स्टैक की सबसे धीमी क्रिया से सीमित होती।
इसके दो दुष्प्रभाव होते हैं। पहला, सत्र कुंजियाँ हर बार नई होती हैं, इसलिए जो हमलावर बाद में दीर्घकालिक कुंजी चुराता है वह पहले रिकॉर्ड किए गए सत्रों को डिक्रिप्ट नहीं कर सकता, बशर्ते समझौता क्षणिक रहा हो। दूसरा, रिसी सत्र कुंजी एक सत्र से समझौता करती है, पहचान से नहीं।
बड़े डेटा वॉल्यूम सिमेट्रिक कुंजियाँ क्यों उपयोग करते हैं
सिमेट्रिक साइफ़र मात्रा को अच्छी तरह संभालते हैं: AES-GCM या ChaCha20-Poly1305 हर पैकेट को पहले से मेमोरी में मौजूद कुंजी से संसाधित करते हैं, हेडर को प्रमाणित करते हैं और काउंटर बढ़ाते हैं। प्राप्त करने वाला पक्ष नॉन्स और प्रमाणीकरण टैग जाँचता है, और विफल या दोहराया गया सब कुछ छोड़ देता है। यह सामान्य हार्डवेयर पर लाइन दर पर चलाने के लिए काफ़ी सस्ता है, और वही निर्माण एक ही पास में गोपनीयता और अखंडता देता है।
यह निर्माण वह जगह भी है जहाँ अधिकांश कार्यान्वयन बग रहते हैं। GCM में दोहराया गया नॉन्स एक साथ गोपनीयता और प्रामाणिकता तोड़ता है, इसलिए प्रोटोकॉल हर दिशा के लिए कुंजियाँ व्युत्पन्न करते हैं और स्पष्ट काउंटर या युग रखते हैं। यदि आप पैकेट कैप्चर पढ़ रहे हैं और साइफ़रटेक्स्ट की लंबाई प्लेनटेक्स्ट और एक निश्चित ओवरहेड के बराबर है, तो सिमेट्रिक परत काम कर रही है, हर पैकेट पर पब्लिक-की क्रिया नहीं।
आयु, कुंजी नवीनीकरण और फ़ॉरवर्ड सीक्रेसी
सत्र कुंजियाँ समाप्त होने के लिए हैं। TLS 1.3 एक KeyUpdate संदेश को ट्राफ़िक कुंजियाँ घुमाने देता है; WireGuard कॉन्फ़िगर किए गए समय या संदेश संख्या के बाद सत्र नवीनीकृत करता है और पुरानी को मार्ग में रहे पैकेटों के लिए थोड़ी देर रखता है। OpenVPN अपनी डेटा-चैनल कुंजियों पर अनुसूची के अनुसार फिर से बातचीत करता है, reneg-sec अंतराल नियंत्रित करता है।
उन घुमावों में से कोई भी प्रमाणपत्र नवीनीकरण जैसा नहीं है। प्रमाणपत्र एक वर्ष वैध रह सकता है जबकि सत्र कुंजियाँ हर कुछ मिनट में बदलती हैं, और चल रही टनल की कुंजियों को छुए बिना प्रमाणपत्र बदला जा सकता है। जब आप समाप्ति की योजना बनाएँ, तो पूछें कि आप कौन-सा ऑब्जेक्ट घुमा रहे हैं; उत्तर तय करता है कि क्लाइंट फिर से जुड़ेंगे या केवल कुंजियाँ नवीनीकृत करेंगे।
ऑब्जेक्ट मिलाए बिना कॉन्फ़िग और डायग्नोस्टिक्स पढ़ना
व्यवहार में आप एक पूर्ण प्रोटोकॉल और उसके समर्थित प्रिमिटिव चुनते हैं, अपना स्वयं का जोड़ते नहीं। OpenVPN की --tls-crypt कुंजी नियंत्रण चैनल की रक्षा करती है; डेटा चैनल बातचीत की गई सिमेट्रिक साइफ़र उपयोग करता है। WireGuard की PrivateKey और PublicKey प्रविष्टियाँ पहचान सामग्री हैं, जबकि उसकी ट्रांसपोर्ट कुंजियाँ आंतरिक रूप से व्युत्पन्न होती हैं। उन फ़ील्डों को एक ही प्रकार का रहस्य पढ़ना उन गलतियों की ओर ले जाता है जैसे सार्वजनिक कुंजी को वहाँ चिपकाना जहाँ निजी कुंजी की जगह है।
सार्वजनिक सामग्री को निजी से अलग रखें। प्रमाणपत्र, WireGuard सार्वजनिक कुंजी और फ़िंगरप्रिंट टिकट में साझा करने के लिए सुरक्षित हैं। निजी कुंजी, पूर्व-साझा कुंजी और निर्यात की गई सत्र कुंजी नहीं हैं। जब शक्ति की तुलना करें, एक ही प्रकार में तुलना करें: एक दीर्घवृत्तीय वक्र पहचानकर्ता, RSA मापांक आकार और AES कुंजी आकार विभिन्न धारणाओं के तहत अलग-अलग चीज़ें मापते हैं। TLS 1.3 विनिर्देश इस बात के लिए उपयोगी संदर्भ है कि दोनों परतें कैसे मेल खाती हैं, तब भी जब आपकी टनल TLS न हो।