Защита веб-сокетов - PullRequest
       8

Защита веб-сокетов

19 голосов
/ 07 августа 2011

В настоящее время наше приложение предназначено для облегчения всех коммуникаций через веб-сокеты после начальной загрузки.

Мы пытаемся найти решение для безопасной передачи конфиденциальных данных через этот транспорт.

ИтакПока мы думаем о нескольких вещах:

  1. Аутентификация транспорта веб-сокетов путем передачи уникального хэша, сохраненного в файле cookie сеанса, доставляемого через SSL при начальной загрузке.
  2. Шифрование на стороне клиента с использованием чего-то вроде реализации javascript bcrypt для шифрования всего перед его транспортировкой.

  3. Просто передача всех конфиденциальных данных с обычной записью через SSL, даже если мы этого не хотим.

Что-то вроде числа 1 было бы лучшим результатом, но мы не знаем, уязвимы ли веб-пакеты для таких вещей, как человек в середине атаки, даже после аутентификации.

Любая помощь в разыскиваниивозможные падения безопасности или любые другие идеи о том, как добиться истинной безопасности через веб-сокетыБуду очень признателен!

Ответы [ 3 ]

38 голосов
/ 07 августа 2011

При подключении к URL-адресу wss:// WebSocket вместо ws:// для подключения к серверу будет использоваться стандартное шифрование TLS / SSL браузера.Это эквивалентно HTTPS против HTTP.Если вы доверяете реализации вашего браузера SSL / TLS, вы можете доверять соединениям WebSocket wss://, поскольку они используют один и тот же механизм.Вам понадобится настроить подписанный SSL-сертификат на вашем сервере веб-сокетов, но это в любом случае требуется.

2 голосов
/ 21 сентября 2015

Защита (шифрование с использованием SSL / TLS) очень важна для ваших данных.Но вы должны рассмотреть аутентификацию также.Любое устройство с ws-совместимым устройством, которое знает вашу конечную точку для вашего сервера, сможет получать данные, если сначала не требуется аутентификация.См. http://simplyautomationized.blogspot.com/2015/09/5-ways-to-secure-websocket-rpi.html Включает трехэтапный метод рукопожатия (CHAP), который требует, чтобы и клиент, и сервер имели «общий секретный ключ».
Другие способы подробно описаны в посте.

Приветствия

1 голос
/ 14 августа 2011

Что касается файлов cookie, возможно, стоит учесть, что (в настоящее время) спецификация протокола WebSockets не требует браузера для предоставления всех или даже любых файлов cookie, которые были установлены в Интернете.сервер, изначально обслуживающий JavaScript, который вы используете для открытия соединения WebSockets с этим сервером.

См. здесь для описания поведения Firefox (от разработчика FF).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...