我将在我的.net桌面应用程序中使用电子邮件服务(gmail或yahoo等)。我将使用电子邮件服务发送错误报告,提交联系表格和采购请求(经用户许可)
我不会将我的登录信息存储在我的应用程序源中。登录信息(即用户名和密码)将以加密的形式从网上抓取。然后我的软件会在抓取后对其进行描述。
-
没有人可以从源代码中获取登录信息。(因为它不在那里,它将从网上刮下来)
-
没有人可以从网上获取登录信息。(因为它是隐藏的路径,也是我自己加密的形式)
但我仍然担心在桌面程序中使用电子邮件服务是否安全,因为一些反病毒软件,如"Avast",会监控SMPT端口,并在我们的每个传出电子邮件中添加徽标和标题。因此,我们的电子邮件可以在没有登录信息的情况下阅读。如果Avast可以编辑我们的电子邮件,它也可以获得我们的密码。
没有人可以从web获取登录信息。(因为它是隐藏的路径,也是我自己加密的形式)
隐藏路径不是存储安全信息的好地方。这就好比把钥匙放在花盆下面。由于用户控制着客户端机器,他们也可能能够通过内存转储或其他方式来检索。
你应该做什么
与其直接从桌面应用程序发送邮件,不如在服务器上创建并托管web服务。桌面应用程序将向您的web服务发出web服务请求,web服务将处理电子邮件的发送。这样,您的电子邮件凭据和发件人/收件人地址将在桌面应用程序、其用户和任何防病毒软件的控制之外,从您的web服务中得到安全控制。
您还应该使用证书固定通过HTTPS访问您的服务,以确保您的应用程序仅与受信任的web服务通信,并确保用于web服务的任何凭据保持安全。您可以在每次安装时拥有一个私钥,以便通过web服务对每个桌面应用程序进行身份验证。如果发生任何违规行为,您只需撤销密钥服务器端,而不是将整个电子邮件系统置于风险之中。
但我仍然担心在桌面程序中使用电子邮件服务是否安全,因为一些杀毒软件,如"Avast",会监控SMPT端口,并在我们的每个传出电子邮件中添加徽标和标题。
使用加密连接进行SMTP传输(例如带SSL的SMTP)。这应该可以防止反病毒软件拦截和解密数据。
大多数现代电子邮件托管服务都允许使用SSL进行SMTP连接。
在应用程序中设置PGP加密,它非常安全,并且可以对信息进行签名,以便接收方可以检查发送方的真实性。
http://en.wikipedia.org/wiki/Pretty_Good_Privacy