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