gpt4 book ai didi

security - 2FA 密码是否应该进行散列存储?

转载 作者:行者123 更新时间:2023-12-02 20:16:30 24 4
gpt4 key购买 nike

我正在努力在我们的网站上使用 Google 身份验证器实现 2FA。如果我理解正确的话,每个用户都会有自己的密码,我在登录时需要使用该密码来验证他们输入的 6 位数代码。

将这些 secret 代码与用户密码存储在同一个数据库中似乎是一个坏主意(尽管,如果有人掌握了数据库,我们就会遇到更大的问题),有什么办法吗?或者应该将它们视为密码并进行加密?

最佳答案

您无法对用于为 Google 身份验证器生成 TOTP 代码的 key 进行哈希处理,因为您需要原始 key 才能实际生成代码。

正如你所说,如果有人拥有你的数据库,那么你的麻烦就更大了。然而,这就是双因素身份验证的工作原理。如果密码确实经过安全散列处理,并且攻击者只有 TOTP secret ,那么他们所能做的就是生成登录所需的 2 个因素中的 1 个,并且他们需要做更多的工作来破解或窃取密码。

如果您不想担心为用户存储这些 secret 并让第三方来处理,我可以建议您查看 Twilio's Two Factor Authentication API 。完全公开,我在 Twilio 工作,但如果您不想担心照顾无法散列的 secret ,也不想利用其他东西,例如 Authy app (包括无二维码的 secret 转账)和extra device data that is now available with authentications那么它可能会引起兴趣。

关于security - 2FA 密码是否应该进行散列存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46055146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com