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

किसी क्लाइंट के इंटरनल नेटवर्क पर, डिवाइसों और सर्वर को अनजाने में सार्वजनिक करने से जुड़े जोखिमों को कम करना.

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

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

मौजूदा हालात में क्या गलत है?

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

सीओआरएस-आरएफ़सी1918

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

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

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

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

  • पक्का करें कि किसी निजी नेटवर्क को अनुरोध करने वाली वेबसाइट को एचटीटीपीएस पर दिखाया जा रहा हो.
  • सीओआरएस-आरएफ़सी1918 के लिए सर्वर सहायता सेट अप करें और अनुमानित एचटीटीपी हेडर के साथ जवाब दें.

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

इन अनुरोधों पर असर पड़ा है:

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

निजी नेटवर्क वह डेस्टिनेशन जो आईपीवी4 में RFC1918 के सेक्शन 3 में बताए गए प्राइवेट अड्रेस स्पेस, आईपीवी4 से मैप किया गया आईपीवी6 पता, जहां मैप किया गया आईपीवी4 पता खुद निजी हो या ::1/128, 2000::/3 और ff00::/8 सबनेट के बाहर कोई आईपीवी6 पता तक ले जाता हो.

लोकल नेटवर्क ऐसा डेस्टिनेशन जो आईपीवी4 के RFC1122 के सेक्शन 3.2.1.3 में बताए गए "लूपबैक" स्पेस (127.0.0.0/8) से मेल खाता हो. साथ ही, आईपीवी4 के "लिंक-लोकल" स्पेस (169.254.0.0/16) में बताया गया हो जो RFC3927 में बताया गया हो.fc00::/7RFC4193fe80::/10RFC4291

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

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

Chrome के प्लान, CORS-RFC1918 को चालू करने के बारे में हैं

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

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

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

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

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

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

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

Chrome 87 में, सीओआरएस-आरएफ़सी1918 की गड़बड़ियों को 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 पर अपने इस्तेमाल के उदाहरण के बारे में समस्या दर्ज करें. Chrome आपकी राय जानना चाहेगा.

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