0
我想实现一个登录机制来验证我的web应用程序的管理员。但由于我不使用ssl,我不能依靠用户通过html表单发送密码。我的一次性密码的安全性是否足够安全?
所以我想过使用一次性密码(其实我不知道这件事情,我结束了重塑的概念,并最终发现了这样的东西已经存在)
我要的是你的意见我的实现有多安全:
1)客户端请求一个随机且唯一的散列。服务器生成该散列,将其存储在会话变量中并将散列返回给客户端。
2)通过该散列,客户端使用仅由他和服务器知道的自定义算法派生密码。该密码被发送回服务器。
3)服务器做同样的事情,并检查密码是否匹配,如果他们确实认证了用户。
这可以破解吗? “
但你看,我不必也不会“分发”实现。实现的唯一部分是服务器和单个客户端。 – fabio
它不会发生太大的变化......底线是,自从很久以前,通过obscurity_的安全性已被证明是无效的。密码分析技术可以用来发现算法。如果连接没有安全加密,任何人都可以观察你与服务器交换的内容,并有可能“偷走”你的身份作为最后的手段。 –
交换哈希对任何观察者都是没用的,我想这很清楚。现在我看不出有什么技术可以发现自定义哈希生成器的所有实现(它可以是任何东西!例如,我可以在每次迭代中使用不同的salt来完成md5 + sha1 + md5 7204134次)。只有攻击者能够进行数万亿次的测试,当然我不会允许这么多的尝试。如果我每分钟只允许一次尝试,那么任何人都几乎不可能破解我。也许到了2099年,这个可怜的家伙会进入一些事情。 – fabio