我的一次性密码是否足够安全?

时间:2014-02-22 00:45:59

标签: security http authentication web one-time-password

我想实现一种登录机制,用于验证我的Web应用程序的管理员。但由于我没有使用ssl,我不能依赖用户通过html表单发送密码。

所以我想过使用一次性密码(我实际上并不知道这件事,我最终重新发明了这个概念,最终发现这样的事情已经存在)

我想要的只是你对我的实施安全性的看法:

1)客户端请求随机且唯一的哈希。服务器生成该哈希值,将其存储在会话变量中并将哈希值返回给客户端。

2)客户端从该哈希值使用自己和服务器所知的自定义算法来获取密码。该密码将被发送回服务器。

3)服务器执行相同操作并检查密码是否匹配,如果用户已通过身份验证。

这可以解决吗?

1 个答案:

答案 0 :(得分:5)

“只有他和服务器才知道的自定义算法”。这是设计破坏,因为你完全依赖于秘密算法。

一旦分发实现(例如作为客户端JavaScript),它就不再是秘密了,更不用说协议中的任何内在弱点了。

我的2:除非你是加密专家,否则永远不要推出自己的解决方案。坚持公共,健全和经过验证的协议,只使用信誉良好的实施。

相关问题