存储 2FA 恢复代码的最佳做法

信息安全 密码 密码管理 多因素 一次性密码
2021-08-20 15:04:26

我最近开始在一堆服务上使用 2FA,但我不确定如何最好地存储恢复代码。我可以想到3个选项:

  • 在 LastPass 的安全说明中
  • 在 Dropbox 文件夹中
  • 在 U 盘上

不过,它们似乎都有各自的陷阱:

在 lastpass 的情况下:我的密码都是大约 20 - 30 个字符长的随机字符串(基于服务密码策略)。因此,我怀疑任何人都能够猜测或暴力破解我的一个帐户的密码。因此,如果有人泄露了 lastpass,我最有可能的帐户被盗的方式 - 在这种情况下,如果安全代码也存储在那里,2FA 将毫无意义。

就 Dropbox 而言:我需要安全码的最可能原因是如果我丢失了手机 - 但无论如何我都无法访问 Dropbox,因为我在那里也启用了 2FA,所以这些恢复码基本上都会丢失.

对于 USB 记忆棒:这似乎相当于在便笺上写密码 - 容易丢失/忘记,或者在需要时可能无法工作 10 年。

在这 3 个中,USB 记忆棒似乎是最好的选择,但我想知道是否有人想出了更好的存储恢复代码的方法?此外,如果物理存储是要走的路,是否有更好的媒介呢?也许某种存储可以在很长一段时间内持久耐用并且可能在未来保持相关性?

4个回答

首先,让我们澄清一下,2FA 恢复代码是用来绕过 2FA 本身的。

2FA 的主要目的是确保您提供来自两个不同“渠道”的秘密,例如,您知道的东西或您拥有的东西。密码是您知道的,而恢复代码(如果保存在内存(您的大脑或计算机的硬盘)中)也是您知道的。无需过多讨论这些恢复代码的安全性,在我看来,“你拥有的东西”因素在完全脱离虚拟世界时效果更好。也就是说,将代码保存在一张纸上,或者为每个代码保存一小张纸,可能是恕我直言的最佳选择。清楚地对其进行加密并将其存储在云中或单独的计算机/设备/usb 中可能会起作用,但最终您需要以纯文本形式解密和访问这些代码。在紧急情况下,它可能并不理想,或者如果您的系统/网络受到威胁,攻击者可能会访问未加密的代码。因此,我相信如果您打印代码并保存在您的钱包中,例如,您可以维护 2FA 的安全属性。如果乘飞机旅行,可能需要重新考虑,因为官员可能会强迫您提供密码并没收您的钱包。所以只是一个注意事项:)

选项 4:以硬拷贝(非数字)打印它们,并将它们保存在可以确保它们安全的地方。

我将我的文件保存在存储在 iCloud 上的加密文档中。iCloud 帐户启用了双因素身份验证,但我注册了四台设备,我认为我同时丢失笔记本电脑、台式机、手机和平板电脑的可能性非常低。自然,我将加密密码和 iCloud 密码保存在内存中。

我将我的密码保存在本地存储密码管理器中,并在不同的设备上进行备份,因为作为一个相当古老的恐龙,我并不真正相信云的强大隐私。在我的现实生活中也是如此,我把家里的钥匙放在口袋里,不会把它们放在花盆里,以便在需要时找到它们。

通过该过程,我将恢复代码与凭据一起保存在密码管理器保险库中。

风险分析:

  • 密码库入侵:攻击者必须窃取我的手机(或计算机)猜测主密码 - 2FA 级别的全局安全性
  • 密码库丢失或损坏:我有一个备份(实际上是 2 个),所以我应该能够恢复它 - 但如果发生这种情况,我应该更改我的所有密码,包括主密码和所有恢复代码......
  • (数字)注释丢失或不再可读:我在至少 2 台不同的设备上定期使用密码管理器,所以我应该注意是否有一台设备出现故障

恕我直言,将恢复代码保留在与凭据相同的位置是有意义的,因为在更改密码时出现问题后我不得不使用它们:服务器注册了我输入错误的密码,所以没有人(甚至我)知道。

对于您的用例,密码库位于云端。我不会将恢复代码存储在保险库中,因为访问已经通过您的手机进行了 2FA 保护。我要么从第二台设备配置备份访问,要么恢复到物理保险箱中的旧纸张。