एचटीटीपी जैसे प्लेनटेक्स्ट प्रोटोकॉल, छिपकर सुनने वाले हमलों के शिकार हो सकते हैं. इनमें हमलावर, ट्रांसमिट किए गए कॉन्टेंट को पढ़ सकता है. ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस), ट्रैफ़िक को एन्क्रिप्ट (सुरक्षित) कर सकती है. इससे हमलावरों के लिए, कैप्चर किए गए इस डेटा का इस्तेमाल करना काफ़ी मुश्किल हो जाता है.
हालांकि, हमलावर टीएलएस को बायपास कर सकते हैं. इसके लिए, वे एन्क्रिप्ट (सुरक्षित) किए गए कनेक्शन को सादे टेक्स्ट वाले एचटीटीपी का इस्तेमाल करने के लिए मजबूर करते हैं. इस समस्या को हल करने के लिए, एचटीटीपी स्ट्रिक्ट ट्रांसपोर्ट सिक्योरिटी (एचएसटीएस) रिस्पॉन्स हेडर का इस्तेमाल किया जा सकता है. एचएसटीएस, उपयोगकर्ता के ब्राउज़र को टीएलएस का इस्तेमाल करके किसी वेबसाइट पर जाने के लिए मजबूर करता है. साथ ही, यह उसे कुछ समय के लिए, सादे टेक्स्ट वाले एचटीटीपी पर वापस जाने की अनुमति नहीं देता.
Lighthouse ऑडिट कैसे काम नहीं करता
ऑडिट में, HSTS हेडर से जुड़ी इन समस्याओं के बारे में बताया जाता है:
- अगर कोई एचएसटीएस हेडर नहीं मिलता है.
- अगर सुझाए गए डायरेक्टिव में से कोई एक डायरेक्टिव मौजूद नहीं है (
max-age,includeSubDomains,preload) - अगर
max-ageडायरेक्टिव की अवधि एक साल (31536000 सेकंड) से कम है. - अगर हेडर को पार्स करते समय कोई सिंटैक्स गड़बड़ी होती है, जैसे कि कोई अज्ञात डायरेक्टिव.
मज़बूत एचएसटीएस नीति कॉन्फ़िगर करना
एचएसटीएस हेडर का सबसे सही कॉन्फ़िगरेशन ऐसा दिखता है:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
max-ageडायरेक्टिव से यह तय होता है कि उपयोगकर्ता के ब्राउज़र को कितने समय तक सिर्फ़ टीएलएस का इस्तेमाल करके किसी वेबसाइट पर जाने के लिए मजबूर किया जाएगा. यह समय सेकंड में होता है. समयसीमा खत्म होने के बाद, उपयोगकर्ता फिर से सामान्य एचटीटीपी का इस्तेमाल करके साइट पर पहुंच सकते हैं. ऐसा तब होता है, जब वेबसाइट ने एचएसटीएस हेडर उपलब्ध न कराया हो या एचटीटीपी से एचटीटीपीएस पर अस्थायी रीडायरेक्ट न किया हो.includeSubDomainsडायरेक्टिव सेट करने से, हेडर को शुरू में भेजने वाले पेज के यूआरएल के किसी भी सबडोमेन पर हेडर लागू हो जाता है. उदाहरण के लिए,google.comसे भेजे गए एचएसटीएस हेडर मेंincludeSubDomainsडायरेक्टिव शामिल होने पर,mail.google.comपर एचएसटीएस हेडर लागू हो जाएगा.preloadडायरेक्टिव सेट करने और डोमेन को एचएसटीएस प्रीलोड सेवा में सबमिट करने पर, डोमेन को ब्राउज़र बाइनरी में कंपाइल किया जाएगा. ये बाइनरी, पहले से लोड की गई एचएसटीएस सूची का इस्तेमाल करती हैं. यह बात Google Chrome के अलावा, अन्य ब्राउज़र पर भी लागू होती है.
एचएसटीएस हेडर को रोल आउट करने में कुछ जोखिम होते हैं. जिन सुविधाओं के लिए, बिना एन्क्रिप्ट (सुरक्षित) किए गए एचटीटीपी कनेक्शन की ज़रूरत होती है वे max-age डायरेक्टिव में सेट किए गए समय के लिए काम नहीं करेंगी. अगर preload डायरेक्टिव लागू किया जाता है, तो इसमें और भी ज़्यादा समय लग सकता है.
रिलीज़ से जुड़े जोखिमों को कम करने के लिए, हमारा सुझाव है कि आप इसे अलग-अलग चरणों में लागू करें:
छोटी
max-ageसे शुरू करें और सिर्फ़includeSubDomainsजोड़ें (preloadनहीं):max-age=3600; includeSubDomainsकूलडाउन पीरियड (जैसे, एक हफ़्ते) के दौरान कोई समस्या न दिखने पर,
max-ageबढ़ाएं. उदाहरण के लिए:max-age=604800; includeSubDomainsअगर शुरुआती चरण में, वेबसाइट और उसके सबडोमेन को लंबे समय तक (जैसे, तीन महीने) सुरक्षित तरीके से ऐक्सेस किया जाता है, तो उन्हें एचएसटीएस प्रीलोड सूची में जोड़ दिया जाना चाहिए. साथ ही,
preloadडायरेक्टिव को भी जोड़ दिया जाना चाहिए.max-age=63072000; includeSubDomains; preload