WCF命名管道安全性和多个用户会话?

Luk*_*uke 10 .net wcf named-pipes

我已经使用Mutex设置了一个单实例的WPF应用程序,如果您使用用户切换,这允许应用程序在每个用户帐户中运行.应用程序设置一个名为WCF的管道,以便我可以从另一个进程与单个实例进行通信(即第二个进程在由于Mutex而终止之前运行).

我想知道是否应该采取任何措施(最佳实践)来保护命名管道?

此外,我想知道命名管道消息是否会到达系统内的所有正在运行的进程,或者仅在当前用户会话中.如果在系统范围内发送命名管道,那么限制与当前用户会话的通信的最佳方法是什么?

Ste*_*ven 7

无法从网络访问WCF中的命名管道,并且不需要加密来保护它们.但是,WCF服务不能抵御romkyns提到的攻击.

我建议你阅读这篇文章:

探索WCF命名管道绑定 - 第1部分

探索WCF命名管道绑定 - 第2部分

探索WCF命名管道绑定 - 第3部分

探索WCF命名管道绑定 - 第4部分

关于涉及的安全问题.

简而言之,WCF允许任何进程将自己伪装成服务并且:

  1. 模拟服务OR
  2. 假设恶意进程本身连接到服务,窃听和篡改数据.但是,如果服务使用访问安全性来检查主叫用户的身份,则可能无法实现.


Tad*_*ghe 2

命名管道意味着通信在同一台机器上是点对点的。我相信默认情况下它是安全的,但由于通信永远不会离开机器,即使在同一网络上,安全性并不是最需要担心的事情 - 至少在命名管道组件与其组件之间的通信方面。消费者。

查看 Juval Lowy 撰写的“WCF 服务编程第二版”。第 10 章主要讲述组件安全性。在第 514 页,他写道“通过 IPC 使用消息安全性是没有意义的,因为使用 IPC 时,从客户端到服务始终只有一跳。该页上的图表显示,默认情况下,指定的传输安全性处于打开状态。”管道。