微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为2FA实施生成恢复代码

如何解决为2FA实施生成恢复代码

我已经在一个项目上实现了2FA身份验证,并且可以与其他身份验证器一起很好地工作,这很棒。

现在,我正在开发流程的恢复代码部分,该代码由实现2FA的服务(例如Google和GitHub)提供。

我正在生成一定长度和任意数量的它们。我的疑问是如何正确存储它们?

  • 我应该对它们进行哈希处理吗?我问这个问题是因为这是一个简单的答案,是的,它更加安全,但是我看到类似Github的页面允许您在激活2FA之后显示代码,因此我需要使用其他类型的哈希。
  • 那秘密密钥(TOTP 2FA)又该如何被散列呢?

谢谢大家

解决方法

您应该对恢复代码进行哈希处理,而不是对机密进行哈希处理。如果您对机密进行哈希处理,则在检查 TOTP 代码时将无法恢复它。

根据RFC6238

  • 每个证明者必须有一个唯一的秘密(密钥)。
  • 应该使用密钥派生算法随机生成或派生密钥。
  • 密钥可以存储在防篡改设备中,并应受到保护以防止未经授权的访问和使用。

您可以存储加密的 TOTP 秘密,并在用户尝试验证代码时对其进行解密,但出于显而易见的原因,您无法将其散列存储。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。