我正在开发和应用于vb.net winxp +(windows xp向上)。应用程序必须通过Internet从位于不同PC上的客户端软件接收备份数据。但我担心这个应用程序在互联网上的安全性。
在vb.net 2008中实现安全性的最佳方法是什么,以确保数据不被嗅探或干扰?
我正在考虑在发送之前加密数据,将其保存,直到需要在解密之前查看。
您建议使用哪种加密方式? 有没有其他方法可以建议发送这些数据?
答案 0 :(得分:1)
这里你应该考虑两件不同的事情。
答案 1 :(得分:1)
首先,您的服务器应用程序必须是Windows服务。我想你的服务器总是在运行,所以Windows服务是正确的。
Here您可以找到有关如何使用.NET语言实现Windows服务的参考资料(非常简单)。
然后,为了保护频道,您必须选择要使用的加密类型:
对称选项(here是一个示例)具有硬键管理,因为您必须将所有客户端的密钥存储到服务器上。或者您可以使用相同的密钥,但它不安全,因为您必须非常好地保护客户端密钥。如果攻击者获得了客户端密钥,整个安全基础设施都掌握在敌人手中。
但是你可以为每个客户端提供不同的对称密钥,服务器选择正确的密钥。无论如何,你必须保护客户端的代码和密钥(混淆等)
非对称选项(here就是一个例子)对我来说是最好的选择,因为你可以拥有:
实施最后一个的最佳和众所周知的协议是SSL。您必须找到实现它的API,或者您必须自己完成(如果没有错误和安全问题,很难实现)。
请记住,您需要SSL通信证书。通过OpenSSL制作的X509符合您的要求,并且易于创建。