我正在制作一个推特客户端,我正在评估保护用户登录信息的各种方法.
重要提示:我需要保护用户的数据免受其他其他应用程序的攻击.例如,想象一下如果机器人开始在用户桌面上运行的应用程序中窃取Twhirl密码或Hotmail/GMail/Yahoo/Paypal,会发生什么.
澄清:我之前没有"重要"部分就问过这个问题,但是stackoverflow的UI对于在Q/A对话中稍后添加细节没有帮助.
哈希显然不会这样做
以可逆的方式混淆就像试图隐藏在我的手指后面
纯文本听起来很可能是混杂的
要求用户每次输入密码会使应用程序变得令人厌烦
有任何想法吗 ?
这是一个捕获22.要么每次都让用户输入密码,要么不安全地存储密码(混淆,加密,等等).
解决这个问题的方法是让更多的操作系统加入内置的密码管理器 - 比如OS X的Keychain.这样您只需将密码存储在钥匙串中,操作系统就可以保证其安全,用户只需键入1个主密码即可.OS X上的许多应用程序(如Skype)使用Keychain来完成您所描述的内容.
但是既然你可能正在使用Windows,我会说只需要进行一些混淆和加密.我认为你可能对密码窃取机器人略显偏执; 如果你的应用程序没有庞大的用户群,那么有人会针对它并且特别是试图窃取密码的可能性非常低.除此之外,他们还必须能够访问受害者的文件系统.如果是这种情况,他们可能有病毒/蠕虫,并有更大的问题.
我想你在这里错过了更大的图景:
如果桌面遭到入侵,那么你就是F#*%ED!
要从程序中窃取密码,必须以管理员身份在系统上运行病毒.如果病毒已经实现了这一点,那么从您的程序中窃取密码就会降低它想要做的恶意事件列表.
以纯文本格式存储并让用户知道.
这样,对于您实现的安全级别没有任何误解.如果用户开始抱怨,请考虑在网站上发布一个已发布的网站常量.如果用户继续抱怨,请"隐藏"代码中的常量并告诉他们安全性不好.
如果用户不能将坏人保持在开箱即用状态,那么他们所拥有的所有秘密数据实际上都是Evil博士所知道的.无论是否加密都无关紧要.如果他们能够阻止邪恶的人,为什么要担心以纯文本形式存储密码?
当然,我可以在这里说出我的屁股.是否有研究表明以明文形式存储密码会导致比将其存储混淆更糟糕的安全性?