Маскування дійсно необхідне при надсиланні з клієнта Websocket


10

Поточна RFsocket Websocket вимагає, щоб клієнти websocket маскували всі дані в межах кадрів під час надсилання (але сервер цього не потрібно). Причиною, що протокол був розроблений таким чином, є запобігання зміні даних кадру шкідливими службами між клієнтом та сервером (проксі-сервери тощо). Однак маскуючий ключ досі відомий таким службам (він надсилається на основі кадру на початку кожного кадру)

Чи я помиляюсь, якщо такі сервіси все ще можуть використовувати ключ, щоб розкрити, змінити та повторно замаскувати вміст, перш ніж передати кадр до наступної точки? Якщо я не помиляюся, як це виправляє передбачувану вразливість?

Відповіді:


13

Розділ 10.3 RFC пояснює, чому саме маскування потрібно. Це дуже специфічна відповідь на конкретну техніку злому. Проблема, яку вона намагається вирішити, описана в документі 2010 року під назвою « Розмовляючи з собою заради розваги та прибутку » деякими найгострішими людьми з безпеки в Інтернеті.

Маскування клієнт-сервер використовується протоколом Websocket, щоб запобігти ненавмисному проксі-серверу обробляти дані WebSockets як HTTP-запит, що кешується. Ви можете сперечатися, чи це відхилення від дурних довірених осіб (і я думаю, що це є), але це причина.


Так, але, працюючи з повною рукою служб Websocket (як на стороні клієнта, так і на стороні сервера), я відчуваю, що я добре розумію протокол, і не бачу, як було б проблемою розкрити та змінити проксі. кадри на льоту. а) Маскувальний ключ не заснований на даних [таких, як хеш], б) маскувальний ключ не передбачуваний, тому людина, що перебуває в середині, може змінити дані і сам ключ, в) (я вважаю) проксі може швидше за все, пройдуть абсолютно нові, непотрібні кадри [належним чином замасковані і все], як дійсний клієнт, коли створений / дозволений / прокрадений через нього дійсний клієнтський сеанс
JSON

Зважаючи на це, я також розумію, що, швидше за все, я не маю знань та досвіду багатьох установ на своїй раді, коли було прийнято це рішення.
JSON

3
Здається, ви не прочитали цей розділ чи папір, на який посилаєтесь. Маскування не перешкоджає проксі-серверам зчитувати дані, це запобігати ненавмисному трактуванню даних WebSockets як кеш-запиту HTTP. Ви можете сперечатися, чи це відхилення від дурних довірених осіб (і я думаю, що це є), але це причина.
Росс Паттерсон

+1 для пояснення. Це виглядає так, що це зробило б кращу відповідь. Якщо ви можете перейти до редагування оригінальної відповіді, було б чудово.
JSON

2

Маскування марно з wss://ака WebSockets через SSL / TLS. Оскільки рекомендується використовувати SSL / TLS, коли це можливо, ви можете обґрунтувати висновок, що маскування охоплює випадок граничного використання.


1
Це дійсно повинно було бути коментарем, але ви ще не маєте достатньої репутації ....
Адам Цукерман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.