gpt4 book ai didi

c# - NetNamedPipeBinding 安全吗?

转载 作者:可可西里 更新时间:2023-11-01 07:50:50 26 4
gpt4 key购买 nike

我想知道 netNamedPipeBinding 是否被认为是安全的:

一方面,NetNamedPipeBinding 仅在传输层实现安全性,并且它使用 Microsoft 不再推荐的 NTLM (source)(source)

另一方面,Named Pipie 无法从远程计算机访问,并且无法窃听用于传输数据或向其写入数据的特定开放管道实例,除非可以获取句柄有关的具体实例。

这就是为什么我不知道如何考虑这个解决方案的安全性的原因。

最佳答案

您并没有真正提出正确的问题:不可能给出在所有情况下都有效的 bool 值答案。您应该始终从整体上评估解决方案的安全性,识别威胁并对相关的安全风险建模。

也就是说,WCF NetNamedPipeBinding 确实具有安全特性,这使得它与基于网络协议(protocol)的绑定(bind)有些不同:

  • 与任何网络协议(protocol)相比,NetNamedPipeBinding 本质上更安全,可以抵御传输连接上的通信威胁。在命名管道的情况下,消息不是通过网络传输的,而是通过一种机制交换的,该机制涉及将数据字节(通过操作系统 API)传入和传出由单个机器上的操作系统内核管理的内存。消息流不可能被窃听,除非攻击者已经拥有在内核模式下运行的特权代码(并且如果您的操作系统内部已经有这样的攻击者,他可能已经可以对您的应用程序进程做任何他喜欢的事情).因此 WCF“传输安全”is more or less irrelevant to the security of the message stream and should arguably often be disabled in configuration to avoid unnecessary runtime overhead .
  • 命名管道绑定(bind)用于向潜在客户发布服务端点的机制本质上也比基于网络的协议(protocol)更安全:它基于命名的共享内存对象,因此无法从任何远程计算机访问。<
  • 用于消息交换的命名管道以 GUID 命名,每次服务器重新启动时该 GUID 都会更改,并进一步受到 ACL 的保护,防止任何远程用户打开它,即使他们能够以某种方式发现当前的 GUID管道名称。

另一方面,基于通过 API 访问的操作系统设施,而不是基于网络通信的公共(public)标准,存在一些特定的安全漏洞,这些漏洞不会出现在基于网络的绑定(bind)中:

  • 服务器“抢注”攻击,其中预期 WCF 服务主机以外的某些进程成功监听命名管道。由于用于保护管道的绑定(bind)创建的 ACL 中存在错误,.NET 3.5 及之前版本中的命名管道绑定(bind)无法抵御此漏洞。 .NET 4 主要纠正了这个错误。
  • Windows 上的命名管 Prop 有内置机制来支持模拟其客户端的命名管道服务器。 WCF NetNamedPipeBinding 包含一个错误,在某些情况下,即使客户端 WCF 绑定(bind)配置为不允许模拟,管道服务器(即 WCF 服务)也可以使用客户端的 Windows 凭据进行此类模拟。

总而言之,您需要根据对您重要的威胁评估您的应用程序/系统的整体安全性,同时考虑您可能考虑的各种绑定(bind)的特定特征。 NetNamedPipeBinding 通常是同机场景的最佳选择。

关于c# - NetNamedPipeBinding 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com