我们有一个公开的员工网站,可以访问一些敏感的公司信息。为了使登录过程更加安全,我们希望实现TOTP。设置和实现是非常直接的。我不清楚的是为每个用户存储种子的最佳方法。
显然,它不能被盐析和散列,因为您需要它来生成基于时间的代码。考虑到MD5类型加密的解密速度,它似乎有点毫无意义,所以我的问题是,存储种子的最佳方法是什么,以及是否可以将其存储在与用户名和密码相同的表中?
发布于 2013-09-23 06:25:15
考虑到MD5类型加密的解密速度,它似乎有点毫无意义,
不要混淆你的术语。MD5是一种哈希算法,而不是加密算法。两者之间有着天壤之别。
为了回答您的问题,我不认为在数据库中将未加密的种子与用户名和密码一起存储的问题。一个TOTP种子很容易重置,如果你曾经被破坏。无论如何,您都需要明文中的种子才能使算法工作。
发布于 2022-02-21 05:30:10
根据涉及TOTP的RFC 6238,您应该通过使用抗篡改的硬件加密来安全地存储您的密钥,只在需要时公开它们,并将RAM中的时间限制为未加密的密钥。
发布于 2015-10-02 09:05:30
我强烈建议对种子进行加密。无论如何容易地为您的TOTP应用程序重新分发种子,妥协意味着对手能够立即计算您的2FA登录的第二个因素。
https://security.stackexchange.com/questions/42795
复制相似问题