我的任务是创建一个一次性密码 (OTP) 系统,该系统最终将用于在移动设备上创建 OTP 生成器。
我们正在考虑使用计数器使用HOTP (rfc 4226),但可能会有一些变化。我们不需要遵守 OATH。
这是我在安全/加密领域的第一次体验,所以我试图避免(并了解)让安全新手陷入困境的安全陷阱,并更好地了解我需要做什么和知道要完成什么这个任务。
除了这个一般性建议之外,我还有一些关于实施这个项目的具体问题:
即使只是使用 SHA-1,HOTP 是否仍然被认为是安全的?我的一位同事建议我们应该使用 HMAC-SHA-512。切换我们使用的底层算法看起来很容易。我应该知道这里有什么副作用吗?比如增加处理时间?
我对计数器同步感到担忧。我应该使用什么作为可能的计数器值的理智前瞻?如果用户的点击超过了我们的前瞻限制,那么恢复同步的最佳方法是什么?与相应的 OTP 一起显示和发送计数器会更容易,还是会显着削弱安全性?
我对安全存储相关信息(例如共享密钥和计数器值)的最佳实践也没有很好的理解。
当您回答时,请记住我是这个领域的新手,并且仍在努力了解行话和首字母缩略词。提前致谢。