Есть ли способ создать приложение C# и API на стороне сервера, где API на стороне сервера будет разрешать данные только из приложения C#?
Проблема с приложениями .Net в том, что вы можете декомпилировать их, а затем перекомпилировать, чтобы они отправляли данные, отличные от ожидаемых. В моем случае данные не являются секретными, только возможность записи данных в API на стороне сервера является проблемой доверия.
Что, если я хочу, чтобы приложение сообщало серверу, если в настоящее время установлено определенное оперативное исправление, а затем принимало решение на стороне сервера по этой информации? Если внутренняя угроза перекомпилирует код и изменит его, чтобы сообщить ложную информацию, то этим данным нельзя доверять. Если только неизмененное приложение может взаимодействовать с API, то данным можно доверять, и на их основе можно принимать решения. Может ли приложение использовать цифровую подпись, с которой оно подписывается, для выполнения доверенного «рукопожатия» серверному API?
Любые идеи или беседы на эту тему могут оказаться полезными. Спасибо.
Ну, практически нет ничего "взломостойкого". Безопасность - это игра в кошки-мышки.
Тем не менее, я бы предложил SslStream. Довольно проста в использовании.
Это реализация SSL (Secure Sockets Layer), реализованная в .NET, которая используется в сочетании с HTTP
, которая очень часто встречается в Интернете как HTTPS
.