fab*_*bio 0 security authentication http one-time-password web
我想实现一个登录机制来验证我的Web应用程序的管理员.但由于我不使用ssl,我不能依赖用户通过html表单发送密码.
所以我考虑过使用一次性密码(我实际上并不知道这个东西,我最终重新发明了这个概念,最终发现这样的东西已经存在)
我想要的只是你对我的实施安全性的看法:
1)客户端请求随机且唯一的哈希.服务器生成该哈希值,将其存储在会话变量中并将哈希值返回给客户端.
2)从该散列中,客户端使用仅由他和服务器知道的自定义算法来导出密码.该密码将发送回服务器.
3)服务器执行相同操作并检查密码是否匹配,如果用户已通过身份验证.
这根本可以破解吗?
"只有他和服务器才知道的自定义算法".这是设计破坏,因为你完全依赖于秘密算法.
一旦分发实现(例如作为客户端JavaScript),它就不再是秘密了,更不用说协议中的任何内在弱点了.
我的2:除非你是加密专家,否则永远不要推出自己的解决方案.坚持公共,健全和经过验证的协议,只使用信誉良好的实施.