如何与我自己的Windows服务安全地通信

Pay*_*aya 4 .net security windows-services ipc named-pipes

我有一个.NET application和一个.NET Windows Service.如何在这两者之间建立安全的通信渠道

Internet上的大多数人都建议使用命名管道与Windows服务进行通信.但似乎这可能会在系统中造成很大的安全漏洞.如果一些家伙反向设计我的应用程序,他将知道管道名称和我使用的协议,这使他能够连接到我的服务并做他想做的任何事情.

示例:我的客户端安装我的应用程序并为其提供安装服务的完全权限.然后他下载了一些其他软件,并没有给它完整的权限.但该软件使用管道名称和反向工程协议找到我的服务并利用它.

那么如何设计安全的通信渠道呢?该服务可以以某种方式访问​​刚连接到其管道的程序(这样我可以比较其哈希,只要服务已安装到安全位置)?或者可能使用不同的IPC?Microsoft如何在这个安全漏洞中保护自己的服务?

小智 7

您只需要为命名管道设置安全描述符,这样只有您的客户端代码才能访问它.

细节在这里:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365600%28v=vs.85%29.aspx