我正在构建一个使用双因素身份验证的web应用程序。
在实现恢复功能时,我看到大多数公司(如Apple、Facebook、Github)都提供了一组~15个备份代码,它们是7-10个字符--一次发送到服务器的长代码,以及用户的凭据,作为帐户恢复过程的一部分。
我不明白这种做法。为什么需要一次编码?有一个多用途的备份代码不是更简单吗?
发布于 2018-07-30 13:31:35
相比短信或电子邮件OTP,我不认为有足够的理由让这些一次性使用,但同样的论点仍然适用。
假设我把密码打印在纸上。然后,在恢复过程中,恢复代码通过以下所有节点:
关键是,即使使用HTTPS,作为恢复过程的一部分,也有许多节点将您的代码存储在内存(或日志中)中。如果代码是多用途的,那么您必须相信这些节点中的每一个都是诚实的,并且没有受到恶意软件的感染。如果代码是一次性使用的,那么一旦它被使用了,您就不关心它是否以日志或其他方式结束。
这不是一个确凿的论点,但这是我能想到的最好的。
发布于 2019-04-29 13:38:54
我不确定你对一个多用途备份代码的定义是。但是就我所知道的用于acct恢复的备份代码而言,使用较少的总代码可能会更安全一些。代码在任何时候只有效一次,但不多次有效。但是是的,我不认为需要这么多备份代码,但我确实看到至少需要2个备份代码。原因是有些人没有Fido键、固定电话或相对电话在容易的访问范围内。但同样,即使有一个(或两个)备份代码(S),也需要尽职调查才能确保保险箱(或某处)的安全。
但我全心全意地认为,某种多因素恢复备份必须到位。理想情况下,我觉得自己不太可能被排除在外,因为我有更多的因素选择。无论是备份代码(S)、固定电话、亲戚的电话或U2F硬件键,还是以上所有内容。你不能仅仅依靠你的手机在2FA的第二个因素。人们总是因为各种各样的原因而失去手机。
https://security.stackexchange.com/questions/190632
复制相似问题