Как настроить безопасную связь между настольным приложением с сервером веб-сокетов и веб-страницей? - PullRequest
0 голосов
/ 20 апреля 2020

Я разрабатываю настольное приложение, которое запускает сервер веб-сокетов, чтобы веб-страницы / клиенты, обслуживаемые другими веб-серверами, могли вызывать настольное приложение для выполнения некоторых действий, требующих API-интерфейсов ОС, недоступных для браузеров, соответственно. веб-страница. Я намеренно решил не использовать родные сообщения. Веб-страница вызывает настольное приложение через ws: // localhost: 8765. Соединение инициируется веб-страницей / клиентом. Если веб-страница с указанного веб-сервера c впервые обращается к настольному приложению, настольное приложение спрашивает пользователя, следует ли доверять входящим соединениям из этого домена и разрешено ли связываться с настольным приложением.

Насколько я понимаю, поток данных через localhost никогда не покидает аппаратную систему и поэтому не уязвим для атак извне. Но какие еще меры безопасности мне следует применить?

  • Использовать безопасные сокеты (wss)? Я не хочу, чтобы пользователи обрабатывали сертификаты. Размещение закрытого ключа для защищенной SSL-сокетом в установщике настольного приложения не очень надежно. Как я могу все еще зашифровать трафик c? Нужно ли шифровать трафик c, если он не покидает систему?

  • Как проверить, что веб-страница / клиент действительно обслуживается в домене, который пользователь ранее признал доверенным? Если веб-страница / клиент обслуживается веб-сервером с SSL-сертификатом, могу ли я каким-то образом использовать эту информацию для проверки клиентом приложения на рабочем столе, соответственно? что клиент не работает в поддельном домене?

  • Как проверить, что приложение настольного компьютера, с которым связались, не является вредоносным приложением, использующим тот же порт для перехвата входящего трафика c?

Есть ли у кого-нибудь советы или указатели на «хорошие практики»?

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