Vb.net 应用程序在线安全

Vb.net 应用程序在线安全,vb.net,security,Vb.net,Security,我正在用vb.net winxp+(windows xp以上)开发和应用程序。应用程序必须通过Internet从位于不同pc上的客户端软件接收备份数据。但是我担心这个应用程序在互联网上的安全性 在vb.net 2008中实现安全性的最佳方法是什么,以确保数据不被嗅探或干扰 我想在发送之前对数据进行加密,这样保存数据,直到需要在解密之前查看数据 您建议采用哪种加密方式? 你有没有其他方法建议发送数据? < P> >这里有两个不同的事情你应该考虑。 是否要求在服务器上加密备份数据,在这种情况下,客户

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

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

我想在发送之前对数据进行加密,这样保存数据,直到需要在解密之前查看数据

您建议采用哪种加密方式?
你有没有其他方法建议发送数据?

< P> >这里有两个不同的事情你应该考虑。

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

  • 首先,服务器应用程序必须是Windows服务。我认为您的服务器将始终处于运行状态,因此Windows服务是正确的实现方式

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

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

    • 对称:AES、3DES、河豚等。 等等
    • 非对称:SSL或您的家 制定协议
    symmetric选项(例如)具有硬密钥管理,因为您必须将所有客户端密钥存储到服务器上。或者您可以使用相同的密钥,但它不安全,因为您必须很好地保护客户端密钥。如果攻击者获得了客户端的密钥,那么整个安全基础设施就掌握在敌人手中

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

    不对称选项(就是一个例子)是我的最佳选择,因为您可以:

    • 客户端对服务器的身份验证 (服务器拥有所有客户端的 公钥和验证签名)
    • 客户端的服务器身份验证 (客户端具有服务器的公共 钥匙)
    • 通道加密(通道加密) 使用对称会话加密 客户端和 服务器(通过公钥和私钥)
    实现最后一个协议的最著名的协议是SSL。您必须找到实现它的API,或者您必须自己完成(如果没有bug和安全问题,很难实现)


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

    感谢您的回复。两个问题。1). 加密是一个好主意,但是有了关于大多数加密的大多数知识,AES可能很容易解密。2) 我不知道如何用vb(vb6或vb.net)来实现ssl,尤其是ssl2或ssl3。一个示例代码或教程可能会很有帮助。