C# 在WCF中,为什么我们说运输是最不安全的选择?

C# 在WCF中,为什么我们说运输是最不安全的选择?,c#,wcf,security,C#,Wcf,Security,我读过关于加强WCF错误配置的文章:启用了传输安全。交通安全似乎是最不安全的选择。。。。而且运输安全选项容易受到中间人攻击 我不确定原因。。。。谁能告诉我更具体的细节吗?如果你的信息从A到C再到B如下: A > https > B > https > C 服务器B可以查看并篡改它 在下列情况下: A > https > B > http > C 外部MITM是可能的: A > https > B > http > X &

我读过关于加强WCF错误配置的文章:启用了传输安全。交通安全似乎是最不安全的选择。。。。而且运输安全选项容易受到中间人攻击


我不确定原因。。。。谁能告诉我更具体的细节吗?

如果你的信息从AC再到B如下:

A > https > B > https > C
服务器B可以查看并篡改它

在下列情况下:

A > https > B > http > C
外部MITM是可能的:

A > https > B > http > X > http > C
但在两个端点的简单情况下:

A > https > C

这将非常安全。

基本上,在WCF中提供安全性有两种方法

传输安全性-保护传输通道的安全性称为传输安全性。每个(http、tcp等)都有自己的方式提供传输安全性,如实现SSL(安全套接字层)

传输安全性的主要缺点是,该安全性仅适用于将信道的一个端点传输到另一个端点,并且没有为多跳或通过中间节点的路由提供安全性

例如,在消息或数据包到达从服务器的端点到客户端的端点,并且有一个反向代理或负载平衡器将消息传输/转发到另一个目的地之后,消息可能会被中间人篡改(中间人)谁/谁正在转发数据包,因为安全性仅终止/限制到通道,而不是通道外部。因此,传输安全是WCF中考虑的最不安全的选项

要克服这个问题,您可以使用消息安全性

消息安全性-通过在客户端和服务器之间的每个SOAP请求中封装安全凭据来保护消息本身称为消息安全性


它提供了端到端的安全性,因为消息安全性直接对具有中介的消息进行签名和加密不会破坏安全性,但会影响性能。

消息安全性的另一个好处是,它可以在安全性完好的情况下传输许多不同类型的网络和跳+1您可能需要谈谈基于消息的安全性