这不是通常的问题“存储纯文本用户的密码是否安全?”。不,这不安全,我们都知道。存储密码以便与另一个系统进行身份验证
我正在写一个小程序应针对外部系统进行身份验证,以做一些东西,唯一可用的身份验证方法是通过用户名和密码。它用于人类,不能改变。
有可以访问我的应用程序,每一个被单独认证多个用户,但他们所有的“份额”反对外部系统,在理想情况下是由应用程序透明管理,相同的验证数据。
“哑巴”解决方案是将用户名/密码以纯文本,并使用它进行认证,但显然这不是安全的。密码可以加密,但如果有人闯入系统会怎么样?
可能的解决方案:使用DPAPI透明地加密/解密密码(甚至可能是用户名)。这是一个好主意吗?这安全吗?怎么样设置多台机器(机器间加密兼容)?
您有任何其他建议吗?
我认为DPAPI可能是你最好的选择。我不明白你对web农场的意思,尽管... – 2009-11-03 06:57:29
我不确定这是否正是你想要的,但是像DBM等哈希解决方案如何使用?散列用户的密码以进行存储,并在进行身份验证时,散列它们提供的密码并将其与现有散列进行比较。这是一种常用的存储密码的方式。 P.S. - 根据你想要/需要的安全级别,我肯定会推荐腌制你的哈希以避免彩虹表类型的攻击。有关Microsoft长期以来如何使用无残留哈希存储用户密码的文章,请参阅最新一期的“2600”。 – 2009-11-03 07:01:00
@Bob:不是什么被问到!他需要提供密码,因为他将密码发送给外部系统。他正在对别人进行身份验证,而不是对他的系统进行身份验证。 – 2009-11-03 07:03:40