सुझाव चाहिए: निजी नेटवर्क के सीओआरएस (RFC1918)

क्लाइंट के इंटरनल नेटवर्क पर मौजूद डिवाइसों और सर्वर को अनजाने में वेब पर एक्सपोज़ होने से जुड़े जोखिमों को कम करना.

निजी नेटवर्क पर होस्ट किए गए डिवाइसों और सर्वर से अनुरोध करने वाली नुकसान पहुंचाने वाली वेबसाइटों से, लंबे समय से खतरा बना हुआ है. उदाहरण के लिए, हमलावर Man-in-the-Middle हमले करने के लिए, वायरलेस राउटर का कॉन्फ़िगरेशन बदल सकते हैं. CORS-RFC1918 एक ऐसा प्रस्ताव है जिससे ब्राउज़र पर डिफ़ॉल्ट रूप से ऐसे अनुरोधों को ब्लॉक किया जा सकता है. साथ ही, यह भी ज़रूरी है कि इंटरनेट पर मौजूद डिवाइसों से आने वाले अनुरोधों के लिए, संगठन के अंदर मौजूद डिवाइसों को ऑप्ट-इन करना होगा.

इस बदलाव का वेब नेटवर्क पर क्या असर पड़ेगा, यह समझने के लिए Chrome टीम, निजी नेटवर्क के लिए सर्वर बनाने वाले डेवलपर से सुझाव, शिकायत या राय मांग रही है.

मौजूदा स्थिति में क्या गड़बड़ी है?

कई वेब सर्वर, निजी नेटवर्क में काम करते हैं. इनमें वायरलेस राउटर, प्रिंटर, इंट्रानेट वेबसाइटें, एंटरप्राइज़ सेवाएं, और इंटरनेट ऑफ़ थिंग्स (IoT) डिवाइस शामिल हैं. ऐसा हो सकता है कि वे सार्वजनिक तौर पर ऐक्सेस किए जा सकने वाले सर्वर की तुलना में ज़्यादा सुरक्षित हों, लेकिन वे सर्वर, हमलावर किसी वेब पेज को प्रॉक्सी के तौर पर इस्तेमाल करके उनका गलत इस्तेमाल कर सकते हैं. उदाहरण के लिए, नुकसान पहुंचाने वाली वेबसाइटें ऐसा यूआरएल जोड़ सकती हैं जिसे ज़रूरत से ज़्यादा बार देखने पर, डीएनएस सर्वर की सेटिंग बदलने की कोशिश की जाती है. ऐसा, ज़रूरत से ज़्यादा बार देखने पर, JavaScript की सुविधा वाले ब्राउज़र पर किया जाता है. इस तरह के हमले को "ड्राइव-बाय फ़ार्मिंग" कहा जाता है. यह हमला साल 2014 में हुआ था. 3,00,000 से ज़्यादा ऐसे वायरलेस राउटर का इस्तेमाल किया गया जिनकी डीएनएस सेटिंग बदली गई थी. साथ ही, हमलावरों को उपयोगकर्ताओं को नुकसान पहुंचाने वाले सर्वर पर रीडायरेक्ट करने की अनुमति दी गई थी.

CORS-RFC1918

इस तरह के हमलों के खतरे को कम करने के लिए, वेब कम्यूनिटी CORS-RFC1918 पेश कर रही है. यह क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) का एक खास वर्शन है, जो RFC1918 में बताए गए निजी नेटवर्क के लिए है.

सीओआरएस लागू करने वाले ब्राउज़र, टारगेट रिसॉर्स से यह जांच करते हैं कि उन्हें किसी दूसरे ऑरिजिन से लोड किया जा सकता है या नहीं. ऐसा, ऐक्सेस की जानकारी देने वाले अतिरिक्त हेडर इनलाइन या प्रीफ़्लाइट अनुरोध नाम के एक तरीके का इस्तेमाल करके किया जाता है. यह तरीका, जटिलता के हिसाब से तय किया जाता है. ज़्यादा जानने के लिए, क्रॉस-ओरिजिन रिसॉर्स शेयरिंग के बारे में पढ़ें.

CORS-RFC1918 के साथ, ब्राउज़र डिफ़ॉल्ट रूप से निजी नेटवर्क पर रिसॉर्स लोड करने की अनुमति नहीं देगा. हालांकि, सीओआरएस और एचटीटीपीएस का इस्तेमाल करके सर्वर से साफ़ तौर पर अनुमति मिलने पर, ब्राउज़र रिसॉर्स लोड करने की अनुमति देगा. उन रिसॉर्स का अनुरोध करने वाली वेबसाइट को सीओआरएस हेडर भेजने होंगे. साथ ही, सर्वर को साफ़ तौर पर यह बताना होगा कि वह सीओआरएस हेडर के साथ जवाब देकर, क्रॉस-ऑरिजिन अनुरोध स्वीकार करता है. (सही सीओआरएस हेडर पर अब भी काम चल रहा है.)

ऐसे डिवाइसों या सर्वर के डेवलपर से दो काम करने के लिए कहा जाएगा:

  • पक्का करें कि निजी नेटवर्क से अनुरोध करने वाली वेबसाइट, एचटीटीपीएस पर उपलब्ध हो.
  • CORS-RFC1918 के लिए सर्वर की सहायता सेट अप करें और उम्मीद के मुताबिक एचटीटीपी हेडर के साथ जवाब दें.

किस तरह के अनुरोधों पर असर पड़ता है?

जिन अनुरोधों पर असर पड़ा है उनमें ये शामिल हैं:

  • सार्वजनिक नेटवर्क से निजी नेटवर्क पर किए गए अनुरोध
  • निजी नेटवर्क से स्थानीय नेटवर्क के लिए अनुरोध
  • सार्वजनिक नेटवर्क से लोकल नेटवर्क पर किए गए अनुरोध

निजी नेटवर्क ऐसा डेस्टिनेशन जो IPv4 में RFC1918 के सेक्शन 3 में बताए गए निजी पते के स्पेस पर रीज़ॉल्व होता है. यह IPv4 पर मैप किया गया ऐसा IPv6 पता भी हो सकता है जिसमें मैप किया गया IPv4 पता खुद निजी हो या ::1/128, 2000::/3, और ff00::/8 सबनेट के बाहर का IPv6 पता हो.

लोकल नेटवर्क ऐसा डेस्टिनेशन जो IPv4 के RFC1122 के सेक्शन 3.2.1.3 में बताए गए "लूपबैक" स्पेस (127.0.0.0/8), IPv4 के RFC3927 में बताए गए "लिंक-लोकल" स्पेस (169.254.0.0/16), IPv6 के RFC4193 के सेक्शन 3 में बताए गए "यूनीक लोकल ऐड्रेस" प्रीफ़िक्स (fc00::/7) या IPv6 के RFC4291 के सेक्शन 2.5.6 में बताए गए "लिंक-लोकल" प्रीफ़िक्स (fe80::/10) पर रीज़ॉल्व होता है.

सार्वजनिक नेटवर्क अन्य सभी.

CORS-RFC1918 में सार्वजनिक, निजी, और स्थानीय नेटवर्क के बीच का संबंध
सीओआरएस-आरएफ़सी1918 में सार्वजनिक, निजी, और लोकल नेटवर्क के बीच का संबंध.

Chrome में सीओआरएस-RFC1918 को चालू करने की योजना

Chrome, CORS-RFC1918 को दो चरणों में लॉन्च कर रहा है:

पहला चरण: निजी नेटवर्क के रिसॉर्स के लिए अनुरोध सिर्फ़ एचटीटीपीएस वेब पेजों से किए जा सकेंगे

Chrome 87 में एक फ़्लैग जोड़ा गया है. इससे, निजी नेटवर्क संसाधनों के लिए अनुरोध करने वाली सार्वजनिक वेबसाइटों को एचटीटीपीएस पर होना ज़रूरी है. इसे चालू करने के लिए, about://flags#block-insecure-private-network-requests पर जाएं. इस फ़्लैग के चालू होने पर, एचटीटीपी वेबसाइट से निजी नेटवर्क के किसी संसाधन के लिए किया गया कोई भी अनुरोध ब्लॉक कर दिया जाएगा.

Chrome 88 से, CORS-RFC1918 से जुड़ी गड़बड़ियों को कंसोल में, सीओआरएस नीति से जुड़ी गड़बड़ियों के तौर पर रिपोर्ट किया जाएगा.

CORS-RFC1918 से जुड़ी गड़बड़ियों को कंसोल में, सीओआरएस नीति से जुड़ी गड़बड़ियों के तौर पर रिपोर्ट किया जाएगा.
सीओआरएस-आरएफ़सी1918 से जुड़ी गड़बड़ियों की शिकायत, कंसोल में सीओआरएस नीति से जुड़ी गड़बड़ियों के तौर पर की जाएगी.

Chrome DevTools के नेटवर्क पैनल में, ब्लॉक किए गए अनुरोधों पर फ़ोकस करने के लिए, ब्लॉक किए गए अनुरोध चेकबॉक्स को चालू किया जा सकता है:

CORS-RFC1918 से जुड़ी गड़बड़ियों को नेटवर्क पैनल में, सीओआरएस से जुड़ी गड़बड़ियों के तौर पर भी रिपोर्ट किया जाएगा.
सीओआरएस-आरएफ़सी1918 से जुड़ी गड़बड़ियों की शिकायत, नेटवर्क पैनल में सीओआरएस से जुड़ी गड़बड़ियों के तौर पर भी की जाएगी.

Chrome 87 में, CORS-RFC1918 से जुड़ी गड़बड़ियों की शिकायत, DevTools कंसोल में सिर्फ़ ERR_INSECURE_PRIVATE_NETWORK_REQUEST के तौर पर की जाती है.

इस टेस्ट वेबसाइट का इस्तेमाल करके, इसे खुद आज़माया जा सकता है.

दूसरा चरण: किसी खास हेडर के साथ प्रीफ़्लाइट अनुरोध भेजना

आने वाले समय में, जब भी कोई सार्वजनिक वेबसाइट किसी निजी या स्थानीय नेटवर्क से संसाधनों को फ़ेच करने की कोशिश करेगी, तो Chrome असल अनुरोध से पहले एक प्रीफ़्लाइट अनुरोध भेजेगा.

अनुरोध में, सीओआरएस रिक्वेस्ट के अन्य हेडर के साथ-साथ Access-Control-Request-Private-Network: true हेडर भी शामिल होगा. इन हेडर से, अनुरोध करने वाले ऑरिजिन की पहचान की जाती है. इससे, ऐक्सेस को बेहतर तरीके से कंट्रोल किया जा सकता है. सर्वर, Access-Control-Allow-Private-Network: true हेडर के साथ जवाब दे सकता है, ताकि साफ़ तौर पर यह पता चल सके कि वह रिसॉर्स का ऐक्सेस देता है.

सुझाव, राय या शिकायत करना

अगर किसी निजी नेटवर्क में ऐसी वेबसाइट होस्ट की जा रही है जिसे सार्वजनिक नेटवर्क से अनुरोध मिल सकते हैं, तो Chrome की टीम आपके सुझाव, राय, और इस्तेमाल के उदाहरणों को जानने में दिलचस्पी रखती है. इस समस्या को हल करने के लिए, ये दो काम किए जा सकते हैं:

  • about://flags#block-insecure-private-network-requests पर जाएं और फ़्लैग को चालू करें. इसके बाद, देखें कि आपकी वेबसाइट, निजी नेटवर्क संसाधन को उम्मीद के मुताबिक अनुरोध भेजती है या नहीं.
  • अगर आपको कोई समस्या आती है या आपको कोई सुझाव/राय देनी है या शिकायत करनी है, तो crbug.com पर समस्या दर्ज करें और कॉम्पोनेंट को Blink>SecurityFeature>CORS>RFC1918 पर सेट करें.

सुझाव, शिकायत या राय का उदाहरण

हमारा वायरलेस राउटर, उसी निजी नेटवर्क के लिए एडमिन वेबसाइट उपलब्ध कराता है, लेकिन एचटीटीपी के ज़रिए. अगर एडमिन वेबसाइट को एम्बेड करने वाली वेबसाइटों के लिए एचटीटीपीएस ज़रूरी है, तो इसे मिले-जुले कॉन्टेंट के तौर पर माना जाएगा. क्या हमें क्लोज़्ड नेटवर्क में एडमिन वेबसाइट पर एचटीटीपीएस चालू करना चाहिए?

Chrome को इसी तरह का सुझाव चाहिए. कृपया crbug.com पर, अपने इस्तेमाल के उदाहरण के साथ समस्या दर्ज करें. हमें आपसे सुनकर खुशी होगी.

Unsplash पर स्टीफ़न फिलिप्स की हीरो इमेज.