我的任务是创建一次性密码(OTP)系统,该系统最终将用于在移动设备上创建OTP生成器。
我们正在考虑使用HOTP (rfc 4226)使用计数器,但可能会有一些变化。我们不需要符合OATH。
这是我在安全/加密领域的第一次经历,所以我试图避免(并了解)诱捕安全新手的安全隐患,以及更好地理解我需要做什么和知道完成这项任务。
除了这个一般建议之外,我还有一些关于实施这个项目的具体问题:
HOTP是否仍然被认为是安全的,即使它只是使用SHA-1?我的一位同事建议我们应该使用HMAC-SHA-512。看起来很容易切换我们正在使用的基础算法。我应该知道这里有副作用吗?如增加处理时间?
我对计数器同步感到担忧。对于可能的计数器值,我应该使用什么作为一个理智的预测?如果用户提前点击超过我们的预测限制,那么恢复同步的最佳方法是什么?是否更容易显示和发送计数器以及相应的OTP,或者这会显着削弱安全性?
我也不太了解安全存储相关信息的最佳做法,例如共享密钥和计数器值。
当你回答时,请记住我是这个领域的新手,我仍然试图赶上行话和缩略词。提前谢谢。
答案 0 :(得分:2)
HMAC-SHA1比SHA-1强一点,我相信它有been broken。我的记忆有些模糊,但谷歌上搜索了更多关于HMAC-SHA-1和SHA-1 here的信息。