如何防止中间人攻击https服务器到服务器通信

时间:2017-02-06 15:19:11

标签: asp.net security

我们将通过https连接到网络服务。如果用户执行某项操作,则会在后台触发。

该链接将位于服务器和Web服务之间 - 用户将不会意识到它。

由于没有用户可以看到证书出现错误 - 因为这是服务器到服务器 - 我们如何减轻两个服务器之间中间人攻击?如果尝试了一个并且证书失败了,代码会发生什么?

我们正在使用ASP.NET。

2 个答案:

答案 0 :(得分:4)

由您决定 - 您可以通过

指定自己的验证行为
ServicePointManager.ServerCertificateValidationCallback

参考:https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback(v=vs.110).aspx

默认实现非常合理 - 在验证失败时抛出异常。

答案 1 :(得分:3)

如果您使用编写良好的HTTP客户端库来使用Web服务,则在证书验证失败时调用将失败。正确的http客户端库将进行完全验证,包括确保它连接的主机名与证书的主题名称相匹配,CA是正确的等等。我希望.NET的实现在这方面是正确的,但你绝对应该测试和验证默认行为是正确的。