【问题标题】:Where to store the sensitive data in vb.net securely在 vb.net 中安全存储敏感数据的位置
【发布时间】:2012-01-22 07:37:01
【问题描述】:

我有一个 vb.net 应用程序,它使用我的 gmail smtp 服务器设置和密码通过电子邮件向我发送用户反馈,(我不想向用户显示我的电子邮件)

问题是我想将这些数据安全地存储在 vb.net 应用程序中,这样任何黑客/破解者都很难通过(逆向工程或作弊引擎等程序)获取我的 gmail 帐户数据。

欢迎提出任何想法。

【问题讨论】:

  • 安全地在 winforms 应用程序中?:简短的回答:你不能。您可以躲避窥探,但不是熟练的“黑客”。此外,出于多种原因,以这种方式使用您的 gmail 帐户可能不是一个好主意。
  • 好的,你想把它存放在哪里?
  • 我认为您不应该隐藏电子邮件地址。您正在尝试解决症状而不是原因; IE。因为这是您不想显示的 gmail 地址。创建一个单独的电子邮件帐户并使用它;让用户看到,这不是什么大秘密。
  • 是的,我知道我可以再发一封电子邮件,但我遇到了这样的情况,我正在寻求解决方案
  • 如果你想忽略好的建议,这取决于你。

标签: vb.net security rsa aes public-key-encryption


【解决方案1】:

您不可能 100% 安全,您可以将电子邮件存储在资源文件中并使用 obsficator 使获取字符串变得更加困难,但有可能破坏它(加密的资源文件和字符串)。但是,即使您使用不同的电子邮件地址并设置了转发规则,该帐户的密码仍然可能受到损害。您在代码中可以访问的任何内容都可能被黑客破解,因为密钥有时会以明文形式出现。

您有许多安全选项:

  1. 设置网络服务以接收您的消息并将它们通过电子邮件发送给您/将它们记录到数据库中

  2. 将您的消息记录到第 3 方系统(irc?新闻?一些 p2p 网络、IM 系统),然后再挑选消息。

  3. 为您的系统、google 代码/bitbucket/其他能够通过 api 接收问题的东西设置源代码控制/问题站点。

【讨论】:

    【解决方案2】:

    我不知道这是否有意义,但我要做的是让程序运行一个发送邮件的外部 PHP 脚本。

    【讨论】:

    • +1 因为它是一个有效的想法,尽管可能没有很好地解释。恕我直言,不值得匿名投票
    • 我可以这样做,但它需要一个服务器,当客户端应用程序数量增加时,您将超载服务器而不是在客户端 PC 上分配工作
    【解决方案3】:

    基本上,如果我理解您的问题,您不希望 .exe 中的密码以明文形式显示。对吗?

    解决方案只是在程序中加密字符串,然后在运行时解密(将解密后的变量传递给电子邮件函数)。

    任何双向加密都可以使用。例如:

    http://www.vbdotnetforums.com/security/1240-encrypt-password.html

    【讨论】:

    • 对坚定的黑客来说不是一种威慑。他们可以用Reflector反编译EXE并读取解密方法。或者在调试器中运行它并逐步完成解密和电子邮件发送。
    【解决方案4】:

    正如其他人指出的那样,将密码保存到您的应用程序中的电子邮件是不安全的,因为有人可能会破解您的代码并找回您的密码。 对于记录错误,我建议创建一个非常小的 PHP 脚本并将其放在 PHP 服务器上。当您的 VB.NET 应用程序发生错误时,应用程序可以将数据发送到此 .php 脚本。该脚本可以将数据保存在文件或 MySQL 数据库中。 将数据发送到 PHP 脚本所需的所有东西都可以在 VB.NET 的“System.Net.WebRequest”命名空间中找到。 如果您不能使用 PHP 脚本,您可以结合使用 IsolatedStorage(“System.IO.IsolatedStorage”命名空间)和 Cryptography(“System.Security.Cryptography”命名空间)来保存敏感数据。但是,这对于精明的攻击者来说并不完全安全。

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2013-08-01
      • 1970-01-01
      • 2012-03-28
      • 2017-09-15
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多