我正在使用 WebClient 在客户使用我的应用程序之前实现安全帐户检查。但我担心的是“使用 HTTPS 协议(protocol)连接到使用 SSL 证书的网站是否可以防止 MATM 攻击并使整个通信加密?”。
换句话说:Wireshark
等程序是否能够像使用普通 HTTP 请求一样以纯文本形式获取请求和响应?是否有能力改变发送和接收的数据包?为了改变我的应用程序行为或其他东西。
[注意] 我不是在谈论让我的应用程序被盗版,因为我知道没有办法摆脱这种命运。
最佳答案
HTTPS does prevent Man in the middle
attack ,只要双方都正确地实现了协议(protocol)并且我假设 WebClient
被正确地实现了。
这意味着即使是安装在本地盒子上的 wireshark 也无法解密流量
如果中间的某个人在途中更改数据包,另一方将无法读取它们,通信就会中断。
根据我们在您的评论中的讨论做出的一些澄清:
如果您的客户端没有受到损害(HTTPS
确实有效),上述情况成立,因为您假设您的客户端会 self 损害并使用将通过欺骗您的应用程序的工具>添加伪造的可信证书(需要管理员权限),我建议您使用two way ssl .
我所知道的像 Fiddler
这样的工具将无法仅通过添加其受信任的证书来解密它,从而使您的客户更难以以这种方式攻击您的应用程序,并带给他们使用调试器或对其进行修补,因为它比实现双向 ssl 代理更容易。
您还可以执行 this post 中描述的操作使用需要一个特定证书的代码覆盖框架的证书验证并忽略系统的受信任证书,这些证书被 Fiddler
等工具破坏(这实现了 Mark 建议的内容)。
关于c# - 连接到 SSL 加密网站的安全性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132057/