2011-03-22 104 views

回答

4

摘要式身份验证提供了一些保护,尤其是如果你有一个很好的短nonce生命周期,并且很容易实现。这使得它适用于某些情况下,密码是您需要防止窥探的唯一方法。有关更多信息,请参阅RFC 2617。

它仍然不如HTTPS作为安全虽然。

+0

很好用的摘要认证可以很好地保护密码传输,但是在服务器上强制使用明文存储密码,因为考虑到人们倾向于重复使用用户名和密码,所以密码数据库应该被泄露,这是非常可怕的事情... – 2011-03-24 04:08:44

+0

@Bruno,这根本不是真的。您只需要存储用户名+“:”+ domain +“:”+密码的MD5,并且域由您设置(因此不应与存储在另一个系统中的相同MD5匹配)。这是一个共享密钥的摘要,然后在传输中再次消解。获得这个将允许人们访问有问题的系统,但不会给他们原始用户/密码。 – 2011-03-24 09:54:49

+0

是的,我错了,密码可以以不可逆的方式存储,仍然是存储密码的最危险的方法之一。 – 2011-03-24 14:12:45

1

SSL肯定是推荐和还有几个廉价(或免费)来源获得SSL证书。但是,如果绝对不能使用SSL,则可以使用像http://www.jcryption.org/这样的JavaScript加密库。请记住:

jCryption在它的当前状态没有 替代SSL,因为 没有认证,但主要目标jCryption的 应该是一个非常容易和 快速安装插件,它提供了一个 基本的安全级别。

2

Secure Remote Password协议是专为这些情况而设计的。有一些JavaScript实现可以在HTTP环境中适用。但请记住,这可以从别人从别人与交通插手被动,但不能保护,因为他们可以只发送给您的用户腐败的JavaScript来代替。

也请记住,即使客户端密码不能被破坏一个他们进行身份验证,他们将仍然容易受到中间人攻击,除非你采取保护他们的照顾,例如使用SRP Hermetic

Clipperz应该是一个很好的JavaScript库SRP适合你的目的。