连接两台服务器并防止MITM攻击的最佳方法


Best way to connect two servers and prevent MITM attacks

您认为通过 C# Web 服务连接两台服务器的最佳方式是什么?我不想使用 SSL,因为它消耗了大量的服务器 CPU,而且我不想在机器上增加更多负载。此外,它更慢。

也许

OAuth2,WS-Security或任何自定义服务,如发送令牌(nonce+timestamp),也许是为了防止重新发送攻击。感谢您的任何建议。

我的赌注仍然在SSL上。使用客户端证书来验证传入的请求。它被大规模用于保护敏感信息交换,特别适合防止MITM。

SSL的开销很可能不会显着影响您的CPU使用率,您是否测量过?如果您正在处理大量小请求,握手可能是一个问题,但如果我理解正确,您只有两台服务器,在这种情况下,开销(如果我对 SSL/TLS 的理解是正确的)将在 SSL 会话的生命周期内摊销。

简短回答:添加 SSL 不太可能对您的 CPU 使用率产生不利影响,但在得出结论之前,您应该始终分析您的方案。

更多阅读

  • HTTP vs HTTPS performance (StackOverflow)
  • SSL 会产生多少开销?(堆栈溢出)

WS-Security 具有相互身份验证和消息签名功能。 此模式要求发送服务器具有接收方的证书(公共 ky)。 然后,发送方可以通过验证签名来检查响应是否未被篡改,并可以检查用于对响应进行签名的签名证书是否为接收方的正确证书。