为什么服务会提供用于双因素身份验证的恢复代码列表,而不是只提供一个?

Why do services provide a list of recovery codes for two factor authentication instead of just one?

标题几乎说明了一切。我目前正在实施双因素身份验证,想知道我是否应该提供恢复代码列表。我自己甚至都不会想到它,但我在野外看到的大多数实现都是这样做的。 Github 例如一次生成 16 个恢复代码的列表。

有什么安全方面的好处吗?

好问题 - 我很确定这对双方来说都是一个易于实施的事情 - 如果你预先生成一个恢复代码列表,那么你就不必在用户每次使用备份时都重新生成一个代码代码。这个想法是用户将 print/save 它们放在某个地方,因此从可用性的角度来看,这使用户不必重新打印或重新保存代码。

不过,您不必使用恢复代码。 GitHub 支持一个 few different recovery options。一些公司使用安全问题或允许您退回到 SMS。 一些公司让您致电支持人员并提供帐户详细信息(适用于有可信 contact/if 您希望有少量帐户恢复 cases/have 的企业用例 verifying identity over the phone [免责声明我为 Twilio 写了 post])。 Facebook lets you choose friends to vouch for your identity 如果您被锁定。

gave a talk about this last year and have some more recommendations in the slides。希望这对您有所帮助!