2012-06-21 13 views
36

wikipedia infers को websockets सुरक्षित हैं प्रकट होता है:websockets सुरक्षित हैं या नहीं?

वेब ब्राउज़र समर्थन के लिए, WebSocket प्रोटोकॉल के सुरक्षित संस्करण फ़ायरफ़ॉक्स 6 (MozWebSocket नाम) में लागू किया जाता है, [2] गूगल क्रोम 14 [3] और इंटरनेट एक्सप्लोरर 10 डेवलपर पुनरीक्षण। ... कोई ज्ञात कारनामे देखते हैं हालांकि, यह फ़ायरफ़ॉक्स 4 और 5 में अक्षम था ...

लेकिन w3 राज्यों वे असुरक्षित हैं:

निम्न HTTP यहाँ प्रक्रियाओं एक में गंभीर सुरक्षा समस्याओं को लागू कर सकता है वेब ब्राउज़र संदर्भ। उदाहरण के लिए, एक पथ पर एक वेबसाकेट सर्वर के साथ एक मेजबान और एक दूसरे पर एक खुला HTTP पुनर्निर्देशक पर विचार करें। अचानक, किसी भी स्क्रिप्ट को जिसे किसी विशेष वेबसॉकेट यूआरएल दिया जा सकता है, इंटरनेट पर किसी भी मेजबान (और संभावित रूप से रहस्यों को साझा करने) के साथ संवाद करने के लिए धोखा दिया जा सकता है, भले ही स्क्रिप्ट जांचता है कि यूआरएल का सही होस्टनाम है।
  1. http websockets (ws :) सुरक्षित है या नहीं कर रहे हैं?

  2. https websockets (wss :) सुरक्षित हैं या नहीं?

  3. यदि नहीं # 2, क्या प्रोफाइलैक्टिक उपायों को दस्तावेज किया गया है?

+0

WebSockets संचार के किसी अन्य रूप की तरह सादे-पाठ लेनदेन (गोपनीयता और अखंडता) – Adi

+2

ऐ से संबंधित सुरक्षा समस्याओं के वारिस - परिभाषित "सुरक्षित"। HTTPS का उपयोग करते समय HTTPS के रूप में सुरक्षित है? यीप। Erm, जब तक कुछ भी गलत हो जाता है। –

+0

मुझे डर है कि कुछ भी सुरक्षित नहीं है। "सुरक्षित" – kbec

उत्तर

66

वेबसॉकेट सुरक्षा के लिए कई अलग-अलग पहलू हैं।

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

एक तरफ, आईईटीएफ वेबसॉकेट प्रोटोकॉल (आईईटीएफ 6455) के लिए ज़िम्मेदार है जबकि डब्ल्यू 3 सी एचटीएमएल 5 वेबसॉकेट एपीआई (जावास्क्रिप्ट ऑब्जेक्ट, विधियों और घटनाओं) के लिए ज़िम्मेदार है।

वेबसॉकेट सुरक्षा का एक और पहलू क्रॉस-मूल सुरक्षा है। W3C WebSocket API spec से उद्धृत दूसरा स्निपिट क्रॉस-मूल सुरक्षा से संबंधित है। वेबसाकेट्स क्रॉस-मूल कनेक्शन का समर्थन करते हैं (एक अलग मेजबान के लिए जो HTML पृष्ठ से परोसा गया था)। यह चेतावनी यह कह रही है कि यदि वेब HTTP के लिए सामान्य HTTP क्रॉस-मूल प्रक्रियाओं का उपयोग किया गया था, तो यह एक विशाल सुरक्षा छेद खोल देगा। हालांकि, वेबसाकेट प्रक्रिया बिल्कुल इस कारण से अलग है। एक बात के लिए, वेबसॉकेट हैंडशेक और प्रतिक्रिया डिज़ाइन की गई है ताकि WebSocket कनेक्शन HTTP सर्वर पर नहीं किए जा सकें जो वेबसॉकेट कनेक्शन का समर्थन नहीं करता है: सर्वर को वेबशॉट विशिष्ट तरीके से एक कुंजी हस्ताक्षर/हैश करना होगा और इसे हैंडशेक प्रतिक्रिया में वापस करना होगा। दूसरा भाग यह है कि ब्राउज़र को हैंडशेक के हिस्से के रूप में मूल हेडर भेजना होगा (यह इंगित करता है कि HTML/जावास्क्रिप्ट मूल रूप से लोड किया गया था)।यह सर्वर को यह चुनने की अनुमति देता है कि यह कौन से डोमेन वेबसेट कनेक्शन से उत्पन्न होगा।

अंत में, दो वेबसॉकेट कनेक्शन मोड हैं: अनएन्क्रिप्टेड (ws: //) और एन्क्रिप्टेड (wss: //)। एन्क्रिप्टेड मोड सर्वर से (और प्रारंभिक हैंडशेक और प्रतिक्रिया सहित) से भेजे गए सभी डेटा को एन्क्रिप्ट करने के लिए टीएलएस/एसएसएल एन्क्रिप्शन का उपयोग करता है। यह वही एन्क्रिप्शन तंत्र है जो HTTPS कनेक्शन के लिए उपयोग किया जाता है (और ब्राउज़र में एक ही एन्क्रिप्शन इंजन का उपयोग करता है)। यह तीसरे पक्ष को स्थानांतरित होने वाले डेटा पर स्नूपिंग से रोकता है।

वास्तव में के बारे में जानने लायक WebSocket प्रोटोकॉल के केवल दो संस्करणों रहे हैं:

  • Hixie76: प्रोटोकॉल के इस संस्करण को क्रॉस-ओरिजिन सुरक्षा और हैडर हैशिंग/हस्ताक्षर करने के लिए जोड़ा। हालांकि, प्रोटोकॉल को डिज़ाइन किए जाने के तरीके के कारण मौजूदा वेब सर्वर पर इसके लिए समर्थन जोड़ना मुश्किल है। यह WebSocket प्रोटोकॉल IETF पिछले साल नवंबर (नवंबर 2011) द्वारा मानकीकृत किया गया का संस्करण है: यह वर्तमान में iOS में समर्थन (उम्मीद IOS 6 अंत में IETF 6455 को अद्यतन करेगा)

  • IETF 6455 संस्करण है। यह आईईटीएफ हाइबी कार्य समूह द्वारा काम की समाप्ति थी (इसके लिए अग्रणी प्रोटोकॉल के पुनरावृत्तियों को हाइबी एक्सएक्स लेबल किया गया था)। यह संस्करण क्रोम और फ़ायरफ़ॉक्स के वर्तमान संस्करणों और आईई 10 और जल्द ही ओपेरा द्वारा समर्थित संस्करण है।

9

वेबसॉकेट प्रोटोकॉल का संस्करण हिक्सी -76 पिछले संस्करणों की तुलना में अधिक सुरक्षित है, और संस्करण hybi-07 और भी सुरक्षित है। Hixie-76 संस्करण में protection against fake requests जोड़ा गया है। Hybi-07 संस्करण में message masking जोड़ा गया है।

+0

महान जानकारी! क्या ये वर्तमान में क्रोम और फ़ायरफ़ॉक्स द्वारा कार्यान्वित किए गए 'websockets' में तब्दील हो गए हैं, उदाहरण के लिए? विकिपीडिया में –

+0

देखें [कार्यान्वयन स्थिति] (http://en.wikipedia.org/wiki/Web_Sockets#Browser_support_2)। –

+0

समझ में आता है। आरएफसी 6455 पिछले संस्करणों का एक संग्रह है, जैसा कि यह था। एक बार फिर धन्यवाद! –

संबंधित मुद्दे