प्रॉम्प्ट और दायरा
TLS 1.3 अधिकांश हैंडशेक सामग्री को एन्क्रिप्ट करता है, लेकिन एक पारंपरिक ClientHello SNI को उजागर कर सकता है और किसी ऑब्जर्वर को लक्षित सेवा का अनुमान लगाने की अनुमति दे सकता है। ECH की प्रोटोकॉल भूमिका, की-कॉन्फ़िगरेशन डिलीवरी, और विफलता व्यवहार की व्याख्या करें, और SNI छुपाने और सभी ट्रैफ़िक विशेषताओं को छुपाने के बीच अंतर बताएं।
यह नेटवर्किंग, सुरक्षा, प्लेटफ़ॉर्म और सामान्य प्रोटोकॉल भूमिकाओं के लिए उपयुक्त है। इसका मुख्य कौशल TLS हैंडशेक और प्राइवेसी सीमाएं हैं, इसलिए यह general से संबंधित है।
इंटरव्यूअर्स क्या मूल्यांकन करते हैं
पहला, क्या आप आउटर (outer) और इनर (inner) ClientHello को समझते हैं? ClientHelloOuter कम्पैटिबिलिटी का आकार प्रदान करता है जबकि वास्तविक लक्ष्य को सर्वर की कॉन्फ़िगर की गई पब्लिक की के साथ एन्क्रिप्ट करके ClientHelloInner में रखा जाता है।
दूसरा, क्या आप कॉन्फ़िगरेशन डिलीवरी समझा सकते हैं? ECHConfig में एक पब्लिक की और एल्गोरिदम मेटाडेटा होता है; इसे DNS SVCB/HTTPS रिकॉर्ड के माध्यम से खोजा जा सकता है, लेकिन प्रामाणिकता (authenticity) और ताजगी (freshness) अभी भी मायने रखती है।
तीसरा, क्या आप जानते हैं कि ECH एंड-टू-एंड गुमनामी (anonymity) नहीं है? DNS, IP, टाइमिंग, सर्टिफिकेट और ECH के बिना वाले पाथ अभी भी जानकारी प्रकट कर सकते हैं।
चौथा, क्या आप विफलता फ़ॉलबैक समझा सकते हैं? ECH अनुपलब्ध होने पर क्लाइंट पुनः प्रयास कर सकता है या एक सामान्य ClientHello भेज सकता है। नीति को प्राइवेसी के विफल प्रयास को सफलता नहीं मानना चाहिए।
पांचवां, क्या आप सत्यापन (verification) डिज़ाइन कर सकते हैं? केवल HTTPS की सफलता की जांच करने के बजाय हैंडशेक एक्सटेंशन, एज मेट्रिक्स, कॉन्फ़िगरेशन हिट दर, और फ़ॉलबैक दर का निरीक्षण करें।
पहले स्पष्ट करने योग्य प्रश्न
- क्या क्लाइंट, एज प्रॉक्सी, और TLS लाइब्रेरी RFC 9849 का समर्थन करते हैं?
- ECHConfig कैसे डिलीवर किया जाता है, और DNSSEC या एन्क्रिप्टेड DNS को कैसे संभाला जाता है?
- क्या सेवा में एक साझा फ्रंटएंड और एकाधिक बैकएंड नाम हैं?
- क्या प्लेनटेक्स्ट-SNI फ़ॉलबैक की अनुमति है, या प्राइवेसी विफलता को हार्ड फेलियर (hard failure) होना चाहिए?
- क्या हम किसी डोमेन, टेनेंट नाम, या व्यापक ट्रैफ़िक मेटाडेटा की सुरक्षा कर रहे हैं?
- क्या टेलीमेट्री इनर नाम को लॉग किए बिना ECH की सफलता को रिकॉर्ड कर सकती है?
30-सेकंड का उत्तर ढांचा
"ECH वास्तविक लक्ष्य को ClientHelloInner में रखता है और ECHConfig में प्रकाशित पब्लिक की का उपयोग करके इसे HPKE के साथ एन्क्रिप्ट करता है; ClientHelloOuter हैंडशेक को कम्पैटिबल बनाए रखता है। ECHConfig को प्रामाणिकता और ताजगी जांच के साथ DNS SVCB/HTTPS के माध्यम से डिलीवर किया जा सकता है। विफलता पर, नीति फ़ॉलबैक या हार्ड फेलियर चुनती है, और TLS सफलता का अर्थ प्राइवेसी सफलता नहीं है। सत्यापन हैंडशेक एक्सटेंशन, एज मेट्रिक्स, कॉन्फ़िगरेशन हिट्स और फ़ॉलबैक दरों को जोड़ता है, जबकि यह स्वीकार करता है कि DNS, IP और ट्रैफ़िक पैटर्न अभी भी दिखाई देते हैं।"
चरण-दर-चरण उत्तर
चरण 1: दो ClientHello संदेशों को अलग करें
क्लाइंट वास्तविक SNI और उन एक्सटेंशन के साथ ClientHelloInner बनाता है जिन्हें वह छिपाना चाहता है, फिर एक कम्पैटिबिलिटी संदेश के रूप में ClientHelloOuter बनाता है। सर्वर या एज इनर संदेश को डिक्रिप्ट करने के लिए ECHConfig की (key) का उपयोग करता है; यदि यह नहीं कर पाता है, तो यह प्रोटोकॉल के अनुसार विफलता को संभालता है।
चरण 2: HPKE और कॉन्फ़िगरेशन को समझें
ECHConfig एक संस्करण, पब्लिक की, सिफर सुइट्स और सर्वर मेटाडेटा वहन करता है। क्लाइंट ClientHelloInner की सुरक्षा के लिए HPKE का उपयोग करता है, जबकि सर्वर संबंधित प्राइवेट की रखता है। रोटेशन के लिए ओवरलैपिंग वैधता, कैश नियंत्रण और निरसन (revocation) की आवश्यकता होती है; क्लाइंट्स में की को हार्ड-कोड न करें।
config = fetch_ech_config()
inner = build_client_hello(real_sni, extensions)
outer = build_outer_hello(public_name, ech_extension)
encrypted_inner = hpke_seal(config.public_key, inner)
send(outer, encrypted_inner)चरण 3: DNS डिलीवरी और प्रामाणिकता पर चर्चा करें
ECHConfig को SVCB/HTTPS रिकॉर्ड के माध्यम से खोजा जा सकता है। ताजगी, कैशिंग, और छेड़छाड़ के जोखिम का मूल्यांकन करें; एन्क्रिप्टेड DNS केवल पाथ के एक हिस्से की सुरक्षा करता है, जबकि DNSSEC और एप्लिकेशन नीति विश्वास का निर्धारण करते हैं। अमान्य या समाप्त हो चुके कॉन्फ़िगरेशन पर रीफ्रेश करें।
चरण 4: विफलता और फ़ॉलबैक को परिभाषित करें
डिक्रिप्शन विफलता, समाप्त हो चुका कॉन्फ़िगरेशन, GREASE, या एक्सटेंशन असंगति पुनः प्रयास या एक साधारण हैंडशेक को ट्रिगर कर सकती है। तय करें कि कौन से डोमेन फ़ॉलबैक की अनुमति देते हैं और किन प्राइवेसी आवश्यकताओं के लिए हार्ड फेलियर की आवश्यकता होती है, और कारण रिकॉर्ड करें। फ़ॉलबैक ECH की सफलता नहीं है।
चरण 5: शेष एक्सपोज़र की पहचान करें
ECH ClientHello में लक्षित नाम को छुपाता है, लेकिन DNS क्वेरीज़, गंतव्य IP, टाइमिंग, पैकेट आकार, सर्टिफिकेट और एप्लिकेशन व्यवहार अभी भी ट्रैफ़िक विश्लेषण का समर्थन कर सकते हैं। लक्ष्य को गुमनामी के बजाय विशिष्ट हैंडशेक मेटाडेटा एक्सपोज़र को कम करने के रूप में बताएं।
चरण 6: डिप्लॉयमेंट और की-रोटेशन की योजना बनाएं
न्यूनतम विशेषाधिकार और ऑडिट ट्रेल्स के साथ एज प्राइवेट कीज़ डिप्लॉय करें, और ओवरलैप होने वाले पुराने और नए कॉन्फ़िगरेशन प्रकाशित करें। मल्टी-रीजन कैश को सुसंगत संस्करणों और अमान्यकरण (invalidation) की आवश्यकता होती है। की के कॉम्प्रोमाइज़ होने पर, पुराने कॉन्फ़िगरेशन को रद्द करें, TTL को छोटा करें, और फ़ॉलबैक दरों पर नज़र रखें।
चरण 7: एंड-टू-एंड स्वीकृति का निर्माण करें
ECH के साथ और बिना ECH वाले क्लाइंट्स, एकाधिक DNS पाथ और एकाधिक एज नोड्स का परीक्षण करें। एक्सटेंशन नेगोशिएशन, कॉन्फ़िगरेशन संस्करण, डिक्रिप्शन विफलताएं, फ़ॉलबैक दर, हैंडशेक लेटेंसी, और कनेक्शन त्रुटियों को रिकॉर्ड करें। पैकेट सत्यापन में संवेदनशील इनर नाम को लॉग नहीं किया जाना चाहिए।
आदर्श उत्तर
"ECH एक TLS हैंडशेक एक्सटेंशन है, न कि कोई एप्लिकेशन-लेयर टनल। क्लाइंट ClientHelloInner में वास्तविक SNI रखता है, ECHConfig पब्लिक की का उपयोग करके इसे HPKE के साथ एन्क्रिप्ट करता है, और एक कम्पैटिबल ClientHelloOuter भेजता है। ECHConfig को SVCB/HTTPS के माध्यम से खोजा जा सकता है, इसलिए डिप्लॉयमेंट को DNS प्रामाणिकता, कैशिंग और रोटेशन को संबोधित करना चाहिए।
मैं विफलता नीति को स्पष्ट रूप से परिभाषित करूंगा: प्राइवेसी-संवेदनशील एंडपॉइंट्स पर हार्ड-फेल करें और कम्पैटिबिलिटी एंडपॉइंट्स पर सामान्य फ़ॉलबैक का निरीक्षण करें। टेलीमेट्री इनर नाम को लॉग किए बिना नेगोशिएशन, कॉन्फ़िगरेशन हिट्स, डिक्रिप्शन विफलताओं, फ़ॉलबैक, और हैंडशेक लेटेंसी को कवर करती है। DNS, IP, सर्टिफिकेट और ट्रैफ़िक पैटर्न के लिए अभी भी अलग से प्राइवेसी विश्लेषण की आवश्यकता होती है। स्वीकृति परीक्षण क्लाइंट्स, DNS पाथ और की-रोटेशन तक फैला हुआ है।"
सामान्य गलतियां
- यह दावा करना कि ECH सभी ट्रैफ़िक को छुपाता है → DNS, IP और टाइमिंग दृश्यमान रहते हैं → एक सीमित प्राइवेसी लक्ष्य बताएं।
- ECHConfig कीज़ को हार्ड-कोड करना → रोटेशन और निरसन कठिन हो जाता है → रीफ्रेश करने योग्य कॉन्फ़िगरेशन का उपयोग करें।
- केवल HTTPS की सफलता की जांच करना → सामान्य फ़ॉलबैक को ECH के रूप में गिना जाता है → एक्सटेंशन और फ़ॉलबैक कारण रिकॉर्ड करें।
- DNS छेड़छाड़ और पुराने कैश की उपेक्षा करना → क्लाइंट खराब कॉन्फ़िगरेशन का उपयोग करते हैं → प्रामाणिकता, TTL, और रीफ्रेश का मूल्यांकन करें।
- आउटर SNI को वास्तविक लक्ष्य मानना → कम्पैटिबिलिटी नाम को गलत समझा जाता है → पब्लिक नाम और इनर SNI को अलग करें।
- बिना ओवरलैप के कीज़ को रोटेट करना → मल्टी-रीजन क्लाइंट रुक-रुक कर विफल होते हैं → एक ओवरलैप और अमान्यकरण योजना का उपयोग करें।
- इनर नाम को लॉग करना → टेलीमेट्री प्राइवेसी को फिर से लीक कर देती है → केवल हैश, संस्करण और स्टेट्स लॉग करें।
- असमर्थित क्लाइंट्स की उपेक्षा करना → वास्तविक उपयोगकर्ता कनेक्ट नहीं हो पाते → स्पष्ट फ़ॉलबैक या हार्ड-फेल नियम बनाए रखें।
फॉलो-अप प्रश्न
फॉलो-अप 1: ECH और DoH/DoT कैसे संबंधित हैं?
ECH TLS ClientHello की सुरक्षा करता है; DoH/DoT DNS ट्रांसपोर्ट की सुरक्षा करते हैं। वे विभिन्न चरणों को संबोधित करते हैं और उन्हें संयोजित किया जा सकता है, लेकिन कोई भी दूसरे को प्रतिस्थापित नहीं करता है।
फॉलो-अप 2: ClientHelloOuter की आवश्यकता क्यों है?
यह एक कम्पैटिबिलिटी आकार प्रदान करता है ताकि ECH को न समझने वाले मिडलबॉक्स अभी भी हैंडशेक को प्रोसेस कर सकें, जबकि वास्तविक लक्ष्य एन्क्रिप्टेड इनर संदेश में रहता है।
फॉलो-अप 3: क्या ECH को विफलता पर हमेशा फ़ॉलबैक करना चाहिए?
नहीं। नीति प्राइवेसी और उपलब्धता आवश्यकताओं पर निर्भर करती है। प्राइवेसी-संवेदनशील एंडपॉइंट हार्ड-फेल हो सकता है; एक कम्पैटिबिलिटी एंडपॉइंट फ़ॉलबैक कर सकता है लेकिन इसे ऑब्जर्वेबल और मापने योग्य बनाया जाना चाहिए।
फॉलो-अप 4: आप कैसे सत्यापित करते हैं कि मिडलबॉक्स ने ECH को नहीं तोड़ा?
क्लाइंट, एज और सर्वर पर नेगोशिएशन को अलग-अलग रिकॉर्ड करें, फिर प्रॉक्सी पाथ पर सफलता, फ़ॉलबैक और हैंडशेक त्रुटियों की तुलना करें।
फॉलो-अप 5: की कॉम्प्रोमाइज़ होने के बाद क्या होता है?
पुराने ECHConfig को रद्द करें या प्रकाशित करना बंद करें, कैश TTL को छोटा करें, एक नई की डिप्लॉय करें, और डिक्रिप्शन विफलताओं और फ़ॉलबैक की निगरानी करें। पहले से उजागर ClientHellos को पूर्वव्यापी रूप से निजी नहीं बनाया जा सकता है।
फॉलो-अप 6: क्या ECH सर्टिफिकेट में डोमेन नाम छुपाता है?
यह मुख्य रूप से हैंडशेक में लक्षित नाम को छुपाता है। सर्टिफिकेट, DNS, IP और एप्लिकेशन जानकारी अभी भी डोमेन को सहसंबंधित कर सकती है, इसलिए पूर्ण डोमेन छिपाव का वादा नहीं किया जा सकता है।