Il mascheramento è veramente necessario quando si invia dal client Websocket

9

L'attuale Websocket RFC richiede che websocket clients maschera tutti i dati all'interno dei frame durante l'invio (ma il server non è obbligato a). La ragione per cui il protocollo è stato progettato in questo modo serve a impedire che i dati del frame vengano alterati da servizi malevoli tra il client e server (proxy, ecc.). Tuttavia, la chiave di mascheramento è ancora nota a tali servizi (viene inviata su base per frame all'inizio di ciascun frame)

Mi sbaglio supponendo che tali servizi possano ancora usare la chiave per smascherare, modificare e re-mascherare il contenuto prima di passare il frame al punto successivo? Se non sbaglio, come risolve la presunta vulnerabilità?

    
posta JSON 01.02.2014 - 12:06
fonte

2 risposte

12

La sezione 10.3 della RFC spiega esattamente perché è richiesto il mascheramento. È una risposta molto specifica a una tecnica di hacking specifica. Il problema che sta cercando di affrontare è descritto in un documento del 2010 chiamato Parlare con te stesso per divertimento e profitto da parte di alcuni dei più autorevoli esperti di sicurezza del trasporto su Internet.

Il mascheramento da client a server viene utilizzato dal protocollo Websocket per impedire ai proxy di trattare inconsapevolmente i dati WebSocket come una richiesta HTTP memorizzabile nella cache. Puoi discutere se questo è assurdo a stupidi proxy (e penso che lo sia), ma questa è la ragione.

    
risposta data 01.02.2014 - 15:03
fonte
2

Il mascheramento è inutile con wss:// aka WebSockets su SSL / TLS. Poiché è consigliabile utilizzare SSL / TLS quando possibile, è ragionevole concludere che il mascheramento copre un caso d'uso marginale.

    
risposta data 18.05.2016 - 09:32
fonte

Leggi altre domande sui tag