У меня есть .NET application
и .NET Windows Service
. Как я могу установить безопасный канал связи между этими двумя?
Большинство людей в Интернете рекомендуют общаться с Windows Services, используя Именованные каналы . Но, похоже, это может создать большую дыру в безопасности системы. Если какой-то чувак перепроектирует мое приложение, он узнает имя канала и протокол, который я использую, и это позволяет ему подключаться к моему сервису и делать все, что он захочет.
Пример: Мой клиент устанавливает мое приложение и дает ему полные права для установки службы. Затем он загружает некоторое другое программное обеспечение, и не не дает ему полных привилегий. Но это программное обеспечение находит мой сервис и использует его, используя имя канала и обратный инженерный протокол.
Так как спроектировать безопасный канал связи? Может ли служба каким-то образом получить доступ к программе, которая только что подключилась к своему каналу (чтобы я мог сравнить ее хеш при условии, что служба была установлена в безопасном месте)? Или, может быть, использовать другой IPC ? Как Microsoft защищает свои собственные службы от этой дыры в безопасности?