.Net应用程序和网站之间的安全通信

时间:2014-03-17 02:07:56

标签: c# security

最近,我们开发了一个应用程序,我们希望它的用户支付每月订阅费用才能使用它。所以我们首先想到的是如何为我们的应用程序实现一种安全的方式来检查用户的有效性并提出这些想法

  1. 使用WebClient使用该用户进入我们的网站和Login 提供凭据:但是,这可能容易受MITM攻击 攻击。
  2. 使用第一种方法,但使用SSL证书(以确保 我们连接到我们的服务器而不是攻击者'): 但是,Fiddler可以轻松执行MITM攻击并解密SSL 沟通,这将导致与之相同的漏洞 第一种方法。
  3. 由于互联网缺乏我们需要的文件,我们不得不在这里要求某人解释我们如何确保:

    1. 我们的应用程序only连接到我们的服务器,而不是任何假的托管 服务器(由攻击者)。
    2. 沟通安全。没有改变或编辑一些如何 非常不公平地访问我们的申请。 (通过发送虚假回复 应用程序或在应用程序收到之前编辑原始响应。)

    3. Note: we totally understand that the attacker may just deobfuscate the application and do whatever he want to it. So we are planning to get a good {混淆{1}}

1 个答案:

答案 0 :(得分:1)

您可以使用SSL证书固定。

ServerCertificateValidationCallback设置为仅接受证书的公钥或其签名者之一。 (这意味着你永远不能更改证书)

这将完全阻止SSL MITM(通过使用不同的证书并使计算机信任它)。

当然,它并不能阻止攻击者破解您的应用程序并完全绕过检查,特别是如果您存储本地状态。