我担心我正在编写的 Silverlight 应用程序中的 MITM 攻击。该站点将通过 SSL 运行。如果我的站点是 MITM 攻击的受害者,据我所知,我现在唯一的防御措施是当站点的证书不受信任时浏览器显示的警告页面。由于它只是一个浏览器,它能做的最好的事情就是简单地警告用户然后让他们通过。用户可以点击快乐,并且倾向于不阅读东西。因此,他们很可能会阅读此警告,挠头,然后继续访问该站点。我的想法是,因为我正在编写一个健壮的 Silverlight 应用程序,所以我应该能够检测浏览器是否看到证书错误,或者执行浏览器执行的相同验证。然后,如果我确定存在问题,我可以简单地锁定我的整个应用程序,这样用户就不会向 MITM 暴露任何关键信息。我遇到的问题是,我似乎无法在 Silverlight 的有限 .NET 子集中找到合适的类来完成我需要做的事情。有谁知道我如何才能实现这个目标,或者解决这个问题的不同方法?
据我所知,这是不可能的 - Silverlight 使用浏览器的网络堆栈,因此依赖于它的网络警告和安全基础设施。
Silverlight 3 添加了一个新的网络堆栈,但我相信一般情况下同样适用:当浏览器下载 .xap(Silverlight 应用程序)时,您的主机服务器的证书得到验证,而不是您可以检查或与之交互的东西在代码中。
我是一名优秀的程序员,十分优秀!