应用在线安全

时间:2011-01-29 11:59:48

标签: vb.net security

我正在开发和应用于vb.net winxp +(windows xp向上)。应用程序必须通过Internet从位于不同PC上的客户端软件接收备份数据。但我担心这个应用程序在互联网上的安全性。

在vb.net 2008中实现安全性的最佳方法是什么,以确保数据不被嗅探或干扰?

我正在考虑在发送之前加密数据,将其保存,直到需要在解密之前查看。

您建议使用哪种加密方式? 有没有其他方法可以建议发送这些数据?

2 个答案:

答案 0 :(得分:1)

这里你应该考虑两件不同的事情。

  1. 是否要求在服务器上对备份数据进行加密,在这种情况下,客户端应在执行传输之前使用对称密码(例如AES)对数据进行加密。
  2. 对于传输本身,SSL(https)将是一个可靠的解决方案,只有服务器身份验证。

答案 1 :(得分:1)

首先,您的服务器应用程序必须是Windows服务。我想你的服务器总是在运行,所以Windows服务是正确的。

Here您可以找到有关如何使用.NET语言实现Windows服务的参考资料(非常简单)。

然后,为了保护频道,您必须选择要使用的加密类型:

  • 对称:AES,3DES,BLOWFISH等 等。
  • 不对称:SSL或您的家 制定协议

对称选项(here是一个示例)具有硬键管理,因为您必须将所有客户端的密钥存储到服务器上。或者您可以使用相同的密钥,但它不安全,因为您必须非常好地保护客户端密钥。如果攻击者获得了客户端密钥,整个安全基础设施都掌握在敌人手中。

但是你可以为每个客户端提供不同的对称密钥,服务器选择正确的密钥。无论如何,你必须保护客户端的代码和密钥(混淆等)

非对称选项(here就是一个例子)对我来说是最好的选择,因为你可以拥有:

  • 对服务器的客户端身份验证 (服务器拥有所有客户端 公钥并验证标志)
  • 对客户端的服务器身份验证 (客户端将服务器公开 关键)
  • 频道加密(频道是 使用对称会话加密 客户的关键握手和 服务器通过公钥和私钥)

实施最后一个的最佳和众所周知的协议是SSL。您必须找到实现它的API,或者您必须自己完成(如果没有错误和安全问题,很难实现)。

请记住,您需要SSL通信证书。通过OpenSSL制作的X509符合您的要求,并且易于创建。