आप कब प्राप्त करोगे
https://encrypted.google.com/search?q=%s
%s
क्वेरी एन्क्रिप्टेड है? या सिर्फ प्रतिक्रिया? यदि ऐसा नहीं है, तो Google को सार्वजनिक सामग्री भी एन्क्रिप्शन के साथ क्यों परोसनी चाहिए?
आप कब प्राप्त करोगे
https://encrypted.google.com/search?q=%s
%s
क्वेरी एन्क्रिप्टेड है? या सिर्फ प्रतिक्रिया? यदि ऐसा नहीं है, तो Google को सार्वजनिक सामग्री भी एन्क्रिप्शन के साथ क्यों परोसनी चाहिए?
जवाबों:
संपूर्ण अनुरोध URL सहित, और यहां तक कि कमांड ( GET
) भी एन्क्रिप्ट किया गया है । केवल एक हस्तक्षेप करने वाली पार्टी जैसे कि प्रॉक्सी सर्वर चमक सकता है गंतव्य पता और पोर्ट।
ध्यान दें, हालांकि, टीएलएस हैंडशेक के क्लाइंट हैलो पैकेट SNI एक्सटेंशन (धन्यवाद @hafichuk) के माध्यम से प्लेटेक्स्ट में पूरी तरह से योग्य डोमेन नाम का विज्ञापन कर सकते हैं , जिसका उपयोग सभी आधुनिक मुख्यधारा ब्राउज़रों द्वारा किया जाता है, हालांकि कुछ केवल नए एरेस पर।
संपादित करें: (जब से यह मुझे एक "अच्छा जवाब" बिल्ला मिला है, मुझे लगता है कि मुझे पूरे प्रश्न का उत्तर देना चाहिए ...)
संपूर्ण प्रतिक्रिया भी एन्क्रिप्टेड है; परदे के पीछे के किसी भी हिस्से को रोक नहीं सकते।
Google https पर खोजों और अन्य सामग्री परोसता है क्योंकि यह सब सार्वजनिक नहीं है, और आप कुछ सार्वजनिक सामग्री को MITM से छुपाना चाह सकते हैं । किसी भी घटना में, Google को अपने लिए जवाब देना सबसे अच्छा है ।
URL स्वयं एन्क्रिप्ट किया गया है, इसलिए क्वेरी स्ट्रिंग में पैरामीटर तार के पार सादे में यात्रा नहीं करते हैं।
हालाँकि, ध्यान रखें कि GET डेटा सहित URL अक्सर वेबसर्वर द्वारा लॉग किए जाते हैं, जबकि POST डेटा शायद ही कभी होता है। तो अगर आप कुछ करने की योजना बना रहे हैं /login/?username=john&password=doe
, तो नहीं; इसके बजाय एक POST का उपयोग करें।
एचटीटीपीएस किसी भी HTTP डेटा को स्थानांतरित करने से पहले एक अंतर्निहित एसएसएल कॉन्वोकेशन स्थापित करता है। यह सुनिश्चित करता है कि सभी URL डेटा (होस्टनाम के अपवाद के साथ, जो कनेक्शन को स्थापित करने के लिए उपयोग किया जाता है) पूरी तरह से इस एन्क्रिप्टेड कनेक्शन के भीतर किया जाता है और किसी भी HTTPS डेटा के उसी तरह से मानव-में-मध्य हमलों से सुरक्षित है।
उपरोक्त Google उत्तर से एक बहुत व्यापक उत्तर का एक हिस्सा है:
http://answers.google.com/answers/threadview/id/758002.html#answer
होस्ट नाम के बाद URL का हिस्सा सुरक्षित रूप से भेजा जाता है।
उदाहरण के लिए, https://somewhere.com/index.php?NAME=FIELD
/index.php?NAME=FIELD
भाग एन्क्रिप्टेड है। somewhere.com
नहीं है।
सब कुछ एन्क्रिप्ट किया गया है, लेकिन आपको याद रखने की ज़रूरत है, कि आपकी क्वेरी सर्वर के लॉग में रहेगी और विभिन्न लॉग एनालाइज़र आदि (जो आमतौर पर POST अनुरोध के मामले में नहीं है) तक पहुंच होगी।
हाँ, यह सुरक्षित है। एसएसएल सब कुछ एन्क्रिप्ट करता है।
POST अनुरोध के अंश:
POST /foo HTTP/1.1
... some other headers
GET अनुरोध के अंश:
GET /foo?a=b HTTP/1.1
... some other headers
दोनों मामलों में सॉकेट पर जो कुछ भी भेजा जाता है वह एन्क्रिप्ट किया जाता है। तथ्य यह है कि ग्राहक देखता है GET अनुरोध के दौरान अपने ब्राउज़र में पैरामीटर है इसका मतलब यह नहीं है कि बीच में एक आदमी को वही दिखाई देगा।
मैं बस HTTPS के माध्यम से एक वेबसाइट से जुड़ा और GET मापदंडों का एक समूह पारित किया। फिर मैंने नेटवर्क को सूँघने के लिए वायरशार्क का इस्तेमाल किया। HTTP का उपयोग करके, URL को अनएन्क्रिप्टेड भेजा जाता है, जिसका अर्थ है कि मैं आसानी से URL में सभी GET पैरामीटर देख सकता हूँ। HTTPS का उपयोग करते हुए, सब कुछ एन्क्रिप्ट किया गया है और मैं यह भी नहीं देख सकता कि कौन सा पैकेट GET कमांड है, अकेले इसकी सामग्री दें!
SSL शीर्ष लेख पार्सिंग से पहले होता है, इसका मतलब है:
Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
एक अनुरोध कुछ इस तरह दिखता है (सटीक वाक्यविन्यास याद नहीं कर सकता है, लेकिन यह काफी करीब होना चाहिए):
GET /search?q=qwerty HTTP/1.1
Host: www.google.de
यही कारण है कि एक ही आईपी पर कई मेजबानों के लिए अलग-अलग एसएसएल सर्टिफिकेट होने से समस्याएँ होती हैं, अनुरोधित होस्टनाम को डिक्रिप्शन तक नहीं जाना जाता है।
HTTP/1.1
पहली पंक्ति के अंत में आता है।
HTTPS का उपयोग करते समय GET अनुरोध एन्क्रिप्ट किया गया है - वास्तव में इस कारण सुरक्षित वेबसाइटों को एक विशिष्ट आईपी पता होना चाहिए - अनुरोध किए जाने के बाद तक अनुरोध से इच्छित होस्टनाम (या वर्चुअल निर्देशिका) प्राप्त करने का कोई तरीका नहीं है।