Websocket istemcisinden gönderirken maskeleme gerçekten gerekli mi


10

Geçerli Websocket RFC , websocket istemcilerinin gönderirken çerçevelerdeki tüm verileri maskelemesini gerektirir (ancak sunucunun bunu yapması gerekmez). Protokolün bu şekilde tasarlanmasının nedeni , çerçeve verilerinin istemci ve sunucu (proxy'ler vb.) Arasındaki kötü amaçlı hizmetler tarafından değiştirilmesini önlemektir. Ancak, maskeleme anahtarı bu tür hizmetler tarafından hala bilinir (her çerçevenin başında kare başına gönderilir)

Bu tür hizmetlerin yine de çerçeveyi bir sonraki noktaya geçmeden önce içeriği kaldırmak, değiştirmek ve yeniden maskelemek için anahtarı kullanabileceğini varsaymak yanlış mıyım? Eğer yanılmıyorsam, bu varsayılan güvenlik açığını nasıl düzeltir?

Yanıtlar:


13

RFC'nin Bölüm 10.3'ü maskelemenin neden gerekli olduğunu tam olarak açıklamaktadır. Belirli bir bilgisayar korsanlığı tekniğine çok özel bir yanıt. Sorun gidermeye çalıştığı sorun , en keskin İnternet ulaşım güvenliği uzmanlarından bazıları tarafından Eğlenmek ve Kâr için Kendinizle Konuşmak adlı 2010 tarihli bir makalede açıklanmıştır .

İstemciden Sunucuya maskeleme, proxy'lerin farkında olmadan WebSockets verilerini önbelleğe alınabilir bir HTTP isteği olarak işlemesini önlemek için Websocket protokolü tarafından kullanılır. Bunun aptal vekillere panding olup olmadığını tartışabilirsiniz (ve sanırım öyle), ama nedeni bu.


Evet, yine de Websocket hizmetleriyle dolu bir el ile çalıştıktan sonra (hem istemci tarafı hem de sunucu tarafı) Protokol hakkında iyi bir anlayışa sahip olduğumu hissediyorum ve bir proxy'nin maskesini kaldırması ve değiştirmesinin nasıl bir zorluk olacağını görmüyorum kareler anında. a) Maskeleme anahtarı verilere dayanmaz [karma gibi], b) maskeleme anahtarı tahmin edilemez, böylece ortadaki bir adam verileri ve anahtarın kendisini değiştirebilir, c) (sanırım) bir vekil geçerli bir istemci oturumu oluşturulduktan / buna izin verildiğinde / gizlendikten sonra geçerli bir istemci olarak büyük olasılıkla tamamen yeni, istenmeyen çerçeveler [uygun şekilde maskelenmiş ve tümü] iletilir
JSON

Bununla birlikte, bu karar verildiğinde büyük olasılıkla tahtalarında birçok ortamın bilgi ve deneyimine sahip olmadığımı da anlıyorum.
JSON

3
Bu bölümü veya referans aldığı kağıdı okumadığınız anlaşılıyor. Maskeleme, proxy'lerin verileri okumasını engellemez, istemeden WebSockets verilerini önbelleğe alınabilir bir HTTP isteği olarak işlemesini engeller . Bunun aptal vekillere panding olup olmadığını tartışabilirsiniz (ve sanırım öyle), ama nedeni bu.
Ross Patterson

Açıklama için +1. Bu daha iyi bir cevap yapmış gibi görünüyor. Orijinal cevabınızı düzenleyebilirseniz harika olur.
JSON

2

wss://SSL / TLS üzerinden diğer WebSockets ile maskeleme işe yaramaz . Mümkün olduğunca SSL / TLS kullanılması önerildiğinden, maskelemenin marjinal bir kullanım durumunu kapsadığı sonucuna varabilirsiniz.


1
Bu gerçekten bir yorum olmalıydı, ama henüz yeterli üne sahip değilsin ....
Adam Zuckerman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.