การปิดบังจำเป็นจริงๆเมื่อส่งจากไคลเอนต์ Websocket


10

Websocket RFCปัจจุบันกำหนดให้ไคลเอ็นต์ websocket ปิดบังข้อมูลทั้งหมดภายในเฟรมเมื่อส่ง (แต่ไม่จำเป็นต้องใช้เซิร์ฟเวอร์) เหตุผลที่โปรโตคอลออกแบบมาเพื่อป้องกันข้อมูลเฟรมไม่ให้ถูกแก้ไขโดยบริการที่เป็นอันตรายระหว่างไคลเอนต์และเซิร์ฟเวอร์ (พร็อกซี่ ฯลฯ ) อย่างไรก็ตามคีย์การปิดบังยังคงเป็นที่รู้จักสำหรับบริการดังกล่าว (จะถูกส่งแบบต่อเฟรมที่จุดเริ่มต้นของแต่ละเฟรม)

ฉันผิดที่คิดว่าบริการดังกล่าวยังคงสามารถใช้กุญแจเพื่อเปิดโปงแก้ไขและปิดบังเนื้อหาอีกครั้งก่อนที่จะผ่านเฟรมไปยังจุดถัดไปได้หรือไม่? ถ้าฉันไม่ผิดวิธีนี้จะแก้ไขช่องโหว่ที่ควรทำอย่างไร

คำตอบ:


13

ส่วนที่10.3 ของ RFCอธิบายอย่างชัดเจนว่าเหตุใดจึงต้องมีการปิดบัง เป็นการตอบสนองที่เฉพาะเจาะจงมากต่อเทคนิคการแฮ็คเฉพาะ ปัญหาที่พยายามจะกล่าวถึงอยู่ในบทความปี 2010 ชื่อTalking to Yourself for Fun และ Profitโดยกลุ่มผู้ให้บริการขนส่งทางอินเทอร์เน็ตที่คมชัดที่สุด

การปิดบังไคลเอ็นต์กับเซิร์ฟเวอร์ถูกใช้โดยโปรโตคอล Websocket เพื่อป้องกันไม่ให้ผู้รับมอบฉันทะจัดการข้อมูล WebSockets เป็นการร้องขอ HTTP ที่แคชได้ คุณสามารถโต้เถียงได้ว่านั่นคือการเสแสร้งต่อพร็อกซี่โง่ (และฉันคิดว่ามันเป็น) แต่นั่นคือเหตุผล


ใช่ แต่หลังจากทำงานกับบริการ Websocket (ทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์) ฉันรู้สึกว่าฉันเข้าใจโพรโทคอลดีและฉันไม่เห็นว่าจะเป็นการท้าทายสำหรับพร็อกซีที่จะเปิดโปงและแก้ไขอย่างไร เฟรมได้ทันที a) คีย์การปิดบังไม่ได้ขึ้นอยู่กับข้อมูล [เช่นแฮช], b) คีย์การปิดบังไม่สามารถคาดเดาได้ดังนั้นคนตรงกลางสามารถเปลี่ยนข้อมูลและคีย์เองได้ c) (ฉันเชื่อว่า) พร็อกซีสามารถ มีแนวโน้มที่จะผ่านเฟรมใหม่ที่ไม่ได้ร้องขออย่างสมบูรณ์ [ถูกปิดบังอย่างเหมาะสมและทั้งหมด] ในฐานะลูกค้าที่ถูกต้องเมื่อสร้างเซสชั่นไคลเอนต์ที่ถูกต้อง / อนุญาต / ย่องผ่าน
JSON

จากที่กล่าวมาฉันก็เข้าใจว่าฉันอาจไม่มีความรู้และประสบการณ์ในการตั้งค่าหลายอย่างบนกระดานของพวกเขาเมื่อทำการตัดสินใจครั้งนี้
JSON

3
ดูเหมือนคุณจะไม่ได้อ่านหัวข้อนั้นหรือเอกสารอ้างอิง การปิดบังไม่ได้เป็นการป้องกันไม่ให้พร็อกซีอ่านข้อมูล แต่เป็นการป้องกันไม่ให้พวกเขาจัดการกับข้อมูล WebSockets โดยไม่ได้ตั้งใจให้เป็นคำขอ HTTP ที่แคชได้ คุณสามารถโต้เถียงได้ว่านั่นคือการเสแสร้งต่อพร็อกซี่โง่ (และฉันคิดว่ามันเป็น) แต่นั่นคือเหตุผล
Ross Patterson

+1 สำหรับคำอธิบาย ดูเหมือนว่าจะเป็นคำตอบที่ดีกว่า หากคุณสามารถย้ายแก้ไขคำตอบเดิมของคุณมันจะดี
JSON

2

การปิดบังไม่มีประโยชน์กับwss://aka WebSockets ผ่าน SSL / TLS เนื่องจากแนะนำให้ใช้ SSL / TLS ทุกครั้งที่เป็นไปได้คุณจึงสามารถสรุปได้อย่างสมเหตุสมผลว่าการปิดบังนั้นครอบคลุมกรณีการใช้งานเล็กน้อย


1
นี้จริงๆควรจะได้รับความคิดเห็น, แต่คุณไม่ได้มีชื่อเสียงเพียงพอเลย ....
อดัมซัคเกอร์แมน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.