我正在制作一个推特客户端,我正在评估保护用户登录信息的各种方法.
重要提示:我需要保护用户的数据免受其他其他应用程序的攻击.例如,想象一下如果机器人开始在用户桌面上运行的应用程序中窃取Twhirl密码或Hotmail/GMail/Yahoo/Paypal,会发生什么.
澄清:我之前没有"重要"部分就问过这个问题,但是stackoverflow的UI对于在Q/A对话中稍后添加细节没有帮助.
有任何想法吗 ?
似乎我创建的每个应用程序都需要能够发送不定期的电子邮件.例如状态电子邮件.对于这个问题,假设我的应用程序是一个备份工具,本地安装在许多Windows客户端上,每个安装需要发送每日状态邮件.它可以安装在组织的服务器上或私人计算机上.
我要求用户将凭据提供给他拥有的电子邮件帐户(STMP主机,端口,用户名,密码,来自地址).我从像Atlassian Jira/Confluence或JFrog Artifactory这样的应用程序中复制了这种方法.他们在哪里以及如何存储SMTP密码?
我目前的理解是:Salting/Hashing方法不适用于此,因为我需要能够检索明文密码以实际发送电子邮件.我不想将密码存储在明文中,所以它必须是某种加密/解密方法(对吗?).
我可以告诉用户不要使用他的主电子邮件帐户,而是使用一些辅助帐户,或者更好的是,设置一个特殊的电子邮件帐户,供我的应用程序使用.如果用户是组织的管理员,他可能能够在其Exchange服务器上设置电子邮件帐户或配置SMTP中继.但是,我了解我,而且我了解我的私人用户,其中一些人只会使用他们的主电子邮件帐户,所以我想尽我所能保证他们的凭据尽可能安全(我的意思是"遵循最佳做法").
我希望将加密的密码存储在应用程序的数据库中.
我花了几个小时阅读有关stackoverflow的问题,但我看不到共识(就像用户帐户登录凭据一样).我觉得这很令人惊讶,因为我希望基本上每个开发人员迟早都要面对这个问题.
必须有一些最佳实践可以遵循,一些既定的方法来解决这个问题,但我还没有找到它.
请指出我在SO /网上的资源,解释如何解决这个问题.如果可能的话,由该领域的一些专家撰写.
我看过一些SO问题:
security passwords email-integration password-protection password-encryption
在Linux中,有一个KDE钱包(和GNOME钱包)应用程序,用于存储密码和其他敏感数据。这些钱包默认情况下会阻止除存储数据的应用程序之外的应用程序意外访问数据。
例如,如果某条数据是由存储的/bin/app1,/bin/app2则将无法完全访问该数据,钱包将首先询问用户是否真的要允许/bin/app2访问由存储的数据/bin/app1。
我发现此功能对于我参与的应用程序的本地数据安全性的某些方面很重要。
在Windows上,所提供的UX有点类似wincred.h,但据我目前所知,其中没有针对每种应用程序的任何限制。它将提供对当前用户启动的任何应用程序的数据访问,从而提供比应用程序范围的Linux钱包默认值低的安全性。
是否有任何方法可以仅使用标准API在Windows中实现类似的应用程序(或供应商)范围的安全性?