HTTPS हेडर एन्क्रिप्ट किए गए हैं?


598

HTTPS पर डेटा भेजते समय, मुझे पता है कि सामग्री एन्क्रिप्ट की गई है, हालाँकि मैं हेडर एन्क्रिप्टेड है, या हेडर कितना एन्क्रिप्ट किया गया है, इस बारे में मिश्रित उत्तर सुनता हूं।

HTTPS का कितना हेडर रहे हैं एन्क्रिप्टेड?

जिसमें GET / POST रिक्वेस्ट URL, कूकीज़ आदि शामिल हैं।


9
HTTPS पर HTTP हेडर्स एन्क्रिप्ट किए गए हैं, और HTTP- संकुचित (भले ही बॉडी हो) नहीं है। यह उन्हें कम से कम संपीड़न से संबंधित हमलों जैसे BEAST
नील मैकगिन

जवाबों:


551

पूरे बहुत एन्क्रिप्टेड है the - सभी हेडर। यही कारण है कि vhosts पर SSL बहुत अच्छी तरह से काम नहीं करता है - आपको एक समर्पित आईपी पते की आवश्यकता है क्योंकि होस्ट हेडर एन्क्रिप्टेड है।

Means सर्वर नाम पहचान (SNI) मानक का अर्थ है कि यदि आप TLS का उपयोग कर रहे हैं तो होस्टनाम को एन्क्रिप्ट नहीं किया जा सकता है। इसके अलावा, आप एसएनआई का उपयोग कर रहे हैं या नहीं, टीसीपी और आईपी हेडर कभी एन्क्रिप्ट नहीं किए जाते हैं। (यदि वे थे, तो आपके पैकेट नियमित नहीं होंगे।)



2
Afaik URL स्वयं एन्क्रिप्टेड नहीं है।
टेडी

4
@ टेडडू का क्या अर्थ है "URL स्वयं एन्क्रिप्टेड नहीं है।" यह हेडर का हिस्सा होने के कारण एन्क्रिप्टेड है।
दिमित्री पॉलुशिन

1
यदि FIDler का उपयोग https संचार को पकड़ने के लिए किया जाता है, तो यह अभी भी कुछ हेडर प्रदर्शित करता है, क्यों? विशेष रूप से, जब इंटरनेट कनेक्शन एक प्रॉक्सी के माध्यम से होता है जिसे प्रमाणीकरण की आवश्यकता होती है, तो यह प्रॉक्सी-प्राधिकरण हेडर प्रदर्शित करता है जब अनुरोध पहले भेजने पर 407 मिलने के बाद नाराजगी होती है।
बोचेन लिन

1
@ इसी तरह पेगासस करता है। यदि आप HTTPS सुरंग के दोनों छोर पर हैं तो आप सब कुछ देख सकते हैं। उसी तरह मैं ब्राउज़र devtools में कुछ भी देख सकते हैं।
नक्स

97

हेडर पूरी तरह से एन्क्रिप्टेड हैं। केवल नेटवर्क पर 'स्पष्ट' में जाने वाली जानकारी एसएसएल सेटअप और डी / एच कुंजी एक्सचेंज से संबंधित है। इस एक्सचेंज को सावधानीपूर्वक बनाया गया है कि यह किसी भी उपयोगी जानकारी को ईवेस्ट्रॉपरों के पास नहीं पहुंचाता है, और एक बार यह हो जाने के बाद, सभी डेटा एन्क्रिप्ट किया जाता है।


4
सभी एसएसएल सेटअप में डीएच
डोरी

30
थोड़ा पांडित्यपूर्ण होने के लिए: क्लाइंट और सर्वर का आईपी पता, सर्वर का होस्टनाम, और उनके एसएसएल कार्यान्वयन के बारे में संकेत ईगरवॉडर के लिए उपयोगी होते हैं और दिखाई देते हैं।
पूल

66

पुराने प्रश्न का नया उत्तर, क्षमा करें। मुझे लगा कि मैं अपना $ .02 जोड़ूंगा

ओपी ने पूछा कि क्या हेडर एन्क्रिप्ट किए गए थे।

वे हैं: पारगमन में।

वे नहीं हैं: जब पारगमन में नहीं।

तो, आपके ब्राउज़र का URL (और शीर्षक, कुछ मामलों में) querystring प्रदर्शित कर सकता है (जिसमें आमतौर पर सबसे संवेदनशील विवरण होते हैं) और हेडर में कुछ विवरण; ब्राउज़र कुछ हेडर जानकारी (सामग्री प्रकार, यूनिकोड, आदि) जानता है; और ब्राउज़र का इतिहास, पासवर्ड प्रबंधन, पसंदीदा / बुकमार्क, और कैश्ड पृष्ठ सभी में क्वेरिस्ट्रिंग होंगे। दूरस्थ छोर पर सर्वर लॉग में क्वेरिस्ट्रिंग के साथ-साथ कुछ सामग्री विवरण भी हो सकते हैं।

इसके अलावा, URL हमेशा सुरक्षित नहीं होता है: डोमेन, प्रोटोकॉल और पोर्ट दिखाई देते हैं - अन्यथा राउटर को यह नहीं पता होता है कि आपके अनुरोध कहां भेजें।

इसके अलावा, यदि आपको एक HTTP प्रॉक्सी मिला है, तो प्रॉक्सी सर्वर को पता पता होता है, आमतौर पर वे पूरे क्वेरिस्ट्रिंग को नहीं जानते हैं।

इसलिए यदि डेटा बढ़ रहा है, तो यह आम तौर पर संरक्षित है। यदि यह पारगमन में नहीं है, तो यह एन्क्रिप्टेड नहीं है।

नाइट पिक लेने के लिए नहीं, लेकिन अंत में डेटा को भी डिक्रिप्ट किया जाता है, और इच्छाशक्ति पर पार्स, पढ़ा, बचाया, अग्रेषित या खारिज किया जा सकता है। और, अंत में मैलवेयर, एसएसएल प्रोटोकॉल में प्रवेश करने (या बाहर निकलने) के डेटा का स्नैपशॉट ले सकता है - जैसे कि (खराब) HTTPS के अंदर एक पृष्ठ के अंदर जावास्क्रिप्ट जो अधिमानतः http (या https) कॉल कर सकता है लॉगिंग वेबसाइटों (स्थानीय हार्डड्राइव तक पहुंच के बाद से) अक्सर प्रतिबंधित है और उपयोगी नहीं है)।

इसके अलावा, HTTPS प्रोटोकॉल के तहत कुकीज़ एन्क्रिप्टेड नहीं हैं। कुकीज़ (या उस मामले के लिए कहीं और) में संवेदनशील डेटा संग्रहीत करने के इच्छुक डेवलपर्स को अपने स्वयं के एन्क्रिप्शन तंत्र का उपयोग करने की आवश्यकता है।

कैश के रूप में, अधिकांश आधुनिक ब्राउज़र HTTPS पृष्ठों को कैश नहीं करेंगे, लेकिन यह तथ्य HTTPS प्रोटोकॉल द्वारा परिभाषित नहीं है, यह पूरी तरह से ब्राउज़र के डेवलपर पर निर्भर है कि HTTPS के माध्यम से प्राप्त पृष्ठों को कैश न करें।

इसलिए यदि आप पैकेट सूँघने से चिंतित हैं, तो आप शायद ठीक हैं। लेकिन अगर आप अपने इतिहास, बुकमार्क, कुकीज़, या कैश के माध्यम से मैलवेयर या किसी व्यक्ति के बारे में चिंतित हैं, तो आप अभी तक पानी से बाहर नहीं हैं।


20
मुझे पता है कि अच्छे उत्तर शीर्ष पर हैं, लेकिन यह एक बार फिर दोषपूर्ण जानकारी सम्मिलित करता है। जब तक SNI का उपयोग नहीं किया जाता है, तब तक डोमेन दिखाई नहीं देता है। प्रोटोकॉल, आईपी और टीसीपी के अलावा अन्य दिखाई नहीं दे रहे हैं । यदि आप HTTP 1.1, SPDY या HTTP2 का उपयोग कर रहे हैं तो आप नहीं बता सकते। दो एंडपॉइंट्स पर जो दिखाई दे रहा है वह अप्रासंगिक है, क्योंकि एन्क्रिप्शन का लक्ष्य चीजों को अदृश्य बनाना नहीं है, बल्कि चीजों को केवल विश्वसनीय पार्टियों को दिखाई देना है। तो समापन बिंदु प्रश्न में निहित हैं और आपके उत्तर के लगभग 2/3 को हटाया जा सकता है। प्रॉक्सी की जानकारी होनी चाहिए: यदि आप HTTPS प्रॉक्सी का उपयोग करते हैं, तो इसके पास हर चीज की पहुंच है
मेल्विन

6
आपका लिंक विशेष रूप से कहता है कि कुकीज़ एन्क्रिप्टेड हैं: "विज़िटर का कनेक्शन एन्क्रिप्ट किया गया है, अस्पष्ट यूआरएल, कुकीज़, और अन्य संवेदनशील मेटाडेटा।"
डायलनयुंग

1
हां यह सही है। पारगमन के दौरान कुकीज़ एन्क्रिप्टेड हैं, लेकिन एक बार जब वे ब्राउज़र तक पहुंच जाते हैं, तो वे एसएसएल प्रोटोकॉल द्वारा एन्क्रिप्ट नहीं किए जाते हैं। किसी डेवलपर के लिए कुकी डेटा एन्क्रिप्ट करना संभव है, लेकिन वह एसएसएल के दायरे से बाहर है।
एंड्रयू जेनिंग्स

4
@ डायलनयुंग एसएसएल = सुरक्षित सॉकेट परत; टीएलएस = परिवहन परत सुरक्षा। एन्क्रिप्शन सॉकेट (कनेक्शन) स्तर पर है या इसे प्रति डोमेन डेटाबेस में ब्राउज़र में संग्रहीत नहीं करते हुए परिवहन स्तर पर एक और तरीका है।
क्यूरियस गुय

@Wigwam सुरक्षा संवेदनशील HTTP कुकीज़ प्रामाणिक सत्रों के सर्वर डेटाबेस में एक रिकॉर्ड के लिए लगभग हमेशा अपारदर्शी संदर्भ हैं (आमतौर पर यह एक क्रिप्टोग्राफिक रूप से मजबूत यादृच्छिक संख्या है)। इस तरह के अर्थहीन पहचानकर्ता को एन्क्रिप्ट करने से ज्यादातर अतिरिक्त जटिलता आ जाएगी।
जिज्ञासु

53

HTTP संस्करण 1.1 में एक विशेष HTTP विधि, CONNECT को जोड़ा गया - जिसमें आवश्यक प्रोटोकॉल हैंडशेक और क्रिप्टो सेटअप सहित एसएसएल सुरंग बनाने का इरादा था।
इसके बाद सभी नियमित अनुरोध एसएसएल सुरंग, हेडर और बॉडी में लिपटे हुए हैं।


SSL सुरंग बनाने के लिए CONNECT का उपयोग कब किया जाता है?
जिज्ञासु


47

SSL के साथ एन्क्रिप्शन ट्रांसपोर्ट स्तर पर है, इसलिए अनुरोध भेजे जाने से पहले होता है।

इसलिए अनुरोध में सब कुछ एन्क्रिप्टेड है।


चूँकि SSL ट्रांसपोर्ट लेयर में होता है और पैकेट (हेडर में) में डेस्टिनेशन एड्रेस का असाइनमेंट नेटवर्क लेयर (जो ट्रांसपोर्ट से नीचे होता है) में होता है, फिर हेडर को कैसे एन्क्रिप्ट किया जाता है?
प्रतीक जोशी

@PrateekJoshi क्योंकि HTTP हेडर एप्लिकेशन लेयर पर रहते हैं और इसलिए डिफ़ॉल्ट रूप से, कम / पूर्वज परत के एन्क्रिप्टेड होने के कारण एन्क्रिप्ट किए जाते हैं।
Aquarelle

40

HTTPS (SSL पर HTTP) एक SSL सुरंग पर सभी HTTP सामग्री भेजता है, इसलिए HTTP सामग्री और हेडर भी एन्क्रिप्ट किए गए हैं।


21

हां, हेडर एन्क्रिप्टेड हैं। यह यहाँ लिखा है

HTTPS संदेश में सब कुछ एन्क्रिप्ट किया गया है, जिसमें हेडर और अनुरोध / प्रतिक्रिया लोड शामिल हैं।


37
विकिपीडिया कल्पना नहीं है, जिसे आपको उद्धृत करना चाहिए।
अरन मुल्होलैंड

8

URL भी एन्क्रिप्ट किया गया है, आपके पास वास्तव में केवल IP, पोर्ट है और यदि SNI, होस्ट नाम जो अनएन्क्रिप्टेड हैं।


यहां तक ​​कि अगर एसएनआई समर्थित नहीं है, तो HTTP कनेक्शन को इंटरसेप्ट करने में सक्षम एक मध्यस्थ अक्सर DNS प्रश्नों की निगरानी करने में सक्षम होगा (अधिकांश अवरोधक क्लाइंट के पास किया जाता है, जैसे पायरेटेड यूजर राउटर पर)। इसलिए वे DNS नाम देख पाएंगे।
क्यूरियस गुय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.